冒泡法

本文通过一个具体的C++程序示例,展示了如何使用冒泡排序算法对一组包含姓名、学号及成绩的对象进行排序。该程序定义了一个Athlete类,并创建了8个Athlete对象组成的数组,然后运用冒泡法按成绩从高到低排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我要开始学习C++了,今天把C里的冒泡法用C++实现了一下


#include <string>
using namespace std;
//运动员类,姓名,学号,成绩(头文件)
class Athlete{
public:
Athlete(string,int,float);
string getname();
int getid();
float getscore();
private:
string name;
int id ;
float score;
};

#include "athlete.h"
#include <string>
using namespace std;
Athlete::Athlete(string n,int i,float s){
name=n;
id=i;
score=s;
}
string Athlete::getname(){
return name;
}
int Athlete::getid(){
return id;
}
float Athlete::getscore(){
return score;
}


// 冒泡法测试 对象排序 程序入口
#include "athlete.h"
#include <string>
#include <iostream>
using namespace std;

int main(){
//建立一组对象用于排序
Athlete ath[8]={
Athlete("yubin",27,25.8),
Athlete("zhangrui",34,34.56),
Athlete("liuhai",37,21.24),
Athlete("liema",25,67.34),
Athlete("helin",38,45.67),
Athlete("quchao",29,76.89),
Athlete("lidian",36,87.75),
Athlete("wanghai",14,53.27),
};
// cout<<"the name is "<<ath[4].getname()<<endl;
// cout<<"the score is "<<ath[2].getscore()<<endl;

//按对象组的成绩从大到小排列
//外层循环
for(int i=0;i<8;i++){
//里层循环
for(int j=i;j<8;j++){
Athlete temp("default",0,0);
//如果前面的成绩小于后者 则和后者调换
if(ath[i].getscore()<ath[j].getscore()){
temp=ath[i];
ath[i]=ath[j];
ath[j]=temp;
}
}
}

//输出排序后的名单
for(i=0;i<8;i++){
cout<<"name :"<<ath[i].getname()<<" id :"<<ath[i].getid()<<" score:"<<ath[i].getscore()<<endl;
}
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值