新手 如何用C++编写类实现相关信息输出
有4个学生组队参加某比赛,每个学生信息包含学号,姓名,个人成绩,4个学生有一共同团队成绩。①编写一学生类完成其定义实现,学号唯一(6位);
②编写主程序模拟生成4个学生给其赋值、完成相关信息的输出,按个人成绩排序从高到低输出每个学生的所有信息,成绩相同则按学号大小。
学生的个人信息随机输入,怎么实现排序或按大小输出呢
程序代码:#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Student {
private:
string no;
string name;
int score;
public:
Student(){}
Student(string no,string name,int score);
void display();
static bool comparator(Student a,Student b){
if(a.score!=b.score){
return a.score<b.score;
}
return a.no<b.no;
}
};
Student::Student(string _no,string _name,int _score){
no=_no;
name=_name;
score=_score;
}
void Student::display(){
cout<<no<<'\t'<<name<<'\t'<<score<<endl;
}
int main() {
vector<Student> stus;
for(int i=0;i<4;i++){
string no="";
cout<<"请输入第"<<(i+1)<<"个学生的学号:";
cin>>no;
string name="";
cout<<"请输入第"<<(i+1)<<"个学生的姓名:";
cin>>name;
int score=0;
cout<<"请输入第"<<(i+1)<<"个学生的成绩:";
cin>>score;
Student stuEle(no,name,score);
stus.push_back(stuEle);
cout<<endl;
}
sort(stus.begin(),stus.end(),Student::comparator);
cout<<"No\tName\tScore"<<endl;
for(int i=0;i<stus.size();i++){
stus[i].display();
}
return 0;
}[此贴子已经被作者于2021-4-5 23:49编辑过]
