c++编程题输入30名学生数据包括学号和成绩,并按成绩升序输出全部学生成绩表

如题所述

//= =这是第几个学生了…
#include <iostream>
#include <vector>
#include <algorithm>
class Student{
    friend std::istream& operator >> (std::istream&,Student&);
    friend std::ostream& operator << (std::ostream&,Student&);
public:
    Student() = default;
    Student(const std::string& i, double sco):_id(i), _score(sco){ }
    double score() const {return _score;}
    const std::string& id() const {return _id;}
private:
    double _score = .0;
    std::string _id;
};
std::istream& operator >> (std::istream& is, Student& stu)
{
    if(is)
        is >> stu._id >> stu._score;
    else
        stu = Student();
    return is;
 }
std::ostream& operator << (std::ostream& os, Student& stu)
{
    os << stu._id << " " << stu._score;
    return os;
}
int main()
{
    std::vector<Student> students;
    //这里做个测试,你自己加上输入输入输出吧 (^^)/
    std::string id = "000001";
    double score = 1.0;
    for(std::size_t i = 0; i< 30; ++i) ï½›
        students.push_back({id, score++});
        ++id[id.find_last_not_of('9')];
    ï½
    //升序排序
    std::stable_sort(students.begin(), students.end(),
                              []
                              (const Student& s1, const Student& s2)
                              -> bool
                                 {
                                   if(s1.score() > s2.score())
                                       return true;
                                    return false;  
                                 });
    for( auto stu : students )
        std::cout << stu << std::endl;
    return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

c++编程题输入30名学生数据包括学号和成绩,并按成绩升序输出全部学生成 ...
_score(sco){ } double score() const {return _score;} const std::string& id() const {return _id;}private: double _score = .0; std::string _id;};std::istream& operator >> (std::istream& is, Student& stu){ if(is) is >> stu....

c 程序:能够依次从键盘输入 30 名学生的学号、姓名和成绩
int i=0; while(i<stuSize) { printf("请输入学生 学号 姓名 成绩 "); stus[i].id=malloc(sizeof(idSize)); stus[i].name=malloc(sizeof(nameSize)); stus[i].cj=malloc(sizeof(cjSize)); scanf("%s%s%s",stus[i].id,stus[i].name,stus[i].cj); i...

求一个C++程序(输入30人 要学号、姓名、三门课的成绩【语文、数学、英语...
cout<<"姓名:"<<(*beg).getname()<<" 学号:"<<(*beg).getnumber()<<" 语文:"<<(*beg).getlanguage()<<" 数学:"<<(*beg).getmath()<<" 英语:"<<(*beg).getenglish()<<endl;isfind=true;break;} } if(isfind==false){ cout<<"对不起,没有找到你需要的学生信息...

C++编写程序:定义Student类保存学生信息(包括学号、姓名和成绩),重载...
{ out<<"姓名:"<<s.name<<",学号:"<<s.id<<",成绩¨:"<

用c++编写一个学生类。输出每个学生的姓名、学号、成绩
score;};void Student::display(){ cout << "姓名:" << ends << name << endl; cout << "学号:" << ends << id << endl; cout << "成绩:" << ends << score << endl;}int main(){ Student stu("小明", 19, 97); stu.display(); system("pause"); return 0;} ...

C++高手帮小弟做条题啊!!
C++高手帮小弟做条题啊!!学生成绩管理系统要求:设计一个学生成绩管理系统(最多包括30个学生的记录),对在校某班学生课程的考试成绩进行统一管理。每个学生记录包括班级、学号、姓名、数学和英语成绩。该系... 学生成绩管理系统 要求:设计一个学生成绩管理系统(最多包括30个学生的记录),对在校某班学生课程的考试成绩...

用C++编写程序,计算输入一批学生成绩,姓名,学号成绩对应,列出所有成绩...
\/\/用结构体做#includeusingnamespacestd;#includestructStudent{stringname;intID;intscore;}stu[10];intmain(){intn=10;inti;for(i=0;i>stu[i].name;cout>stu[i].ID;cout>stu[i].score;}cout<<"不及格的同学有:\\n";cout<<"名字\\t学号\\t成绩\\n";for(i=0;i<10;++i)if(stu[i]...

c++编写程序,实现从终端输入学生信息,根据学号查询并输出相应学生的信息...
Student*)malloc(sizeof(struct Student)*M); \/\/创建一个结构体含有N个数据 for(i = 0; i < M; i++) { printf("Please input the No%d student's number:",i+1); scanf("%d",&stu[i].num); printf("Please input the No%d student'...

用c++编 能够录入学生信息,包括(学号、姓名、性别、身高、成绩等)并且...
cout<<"成绩列表创建完毕"<<endl;} \/\/+--- \/\/|设置学生信息,并求所需信息 \/\/+--- void SetAndCompute(){ for(unsigned int i = 0; i<g_nNumOfStu; i++){ cout<<"请输入第"<<i+1<<"个学生的信息:"<<endl;pArray[i].Set_stu_inf();pArray[i].average();pArray[i]....

学生成绩管理系统课程设计C++
利用线性链表实现学生成绩管理系统,学生信息包含学号、姓名、成绩1、成绩2、总分五项。【基本要求】能实现学生成绩的输入、输出、插入、删除、查找、排序、分类统计等功能;学生成绩的原始状态按学号排序;可以按成绩的高低排序;计算每个同学的总分;计算每门课程的平均分。成绩的内容保存到数据文件中。(有大神帮忙吗?) ...

相似回答