新手 如何用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编辑过]