C++作业(学生成绩管理系统)
2018-03-23 23:24
771 查看
#include<iostream> #include<algorithm> #include<string.h> using namespace std; int n,k; //template<class T> //class Display: public binary_function<T, T,bool> //{ //public: // void operator()(const T& a) // { // cout<<a<<endl; // } //}; class stud { public: void input(); void add(); void dele(); void change(); void sorts(); void maxn(); void show(); int score1; friend bool cmp(stud a,stud b); private: long long num; char name[60]; char sex; int score; int flag; }s[1000]; void stud::show() { cout<<"成绩信息"<<endl; for(int i=1;i<=n;i++) { if(s[i].flag) cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].score<<endl; } } void stud::input() { cout<<"请输入学生人数"<<endl; cin>>n; k=n; for(int i=1;i<=n;i++) { cin>>s[i].num>>s[i].name>>s[i].sex>>s[i].score; s[i].flag=1; } cout<<"输入完成"<<endl; } void stud::add() { int a; cout<<"请输入要添加的学生数"<<endl; cin>>a; n=n+a; cout<<"请分别输入学生的学号,姓名,性别,成绩"<<endl; for(int i=k+1;i<=n;i++) { cin>>s[i].num>>s[i].name>>s[i].sex>>s[i].score; s[i].flag=1; s[i].score1=s[i].score; } cout<<"添加成功"<<endl; } void stud::dele() { int b; cout<<"请输入您要删除的学生学号"<<endl; cin>>b; for(int i=1;i<=n;i++) { if(s[i].num==b) { s[i].flag=0; } } cout<<"删除成功"<<endl; } void stud::change() { int c,k,choice; int newscore; char newname[60]; char newsex; cout<<"请输入您要修改信息的学生学号"<<endl; cin>>c; for(int i=1;i<=n;i++) { if(s[i].num==c) { k=i; break; } } cout<<"请选择要修改的选项"<<endl; cout<<"1:姓名修改"<<endl; cout<<"2 性别修改"<<endl; cout<<"3 成绩修改"<<endl; cin>>choice; if(choice==1) { cout<<"请输入新的姓名"<<endl; cin>>newname; strcpy(s[k].name,newname); } else if(choice==2) { cout<<"请输入新的性别"<<endl; cin>>newsex; s[k].sex=newsex; } else if(choice==3) { cout<<"请输入新的分数"<<endl; cin>>newscore; s[k].score=newscore; } cout<<"修改成功"<<endl; } //排序函数 //inline bool operator> (const stud& a, const stud& b) //{ // return a.Get() > b.Get(); //} // //template<class T> //class Greater: public binary_function<T, T,bool> //{ //public: // bool operator()(const T& a, const T& b) // { // return a > b; // } //}; //void stud::sorts() //{ // cout<<"排序"<<endl; // sort(Avec.begin(), Avec.end(),Greater<stud>()); // for_each(Avec.begin(), Avec.end(), Display<stud>()); // cout<<"排序完成"<<endl; //} // //bool cmp(const stud &a,const stud &b) //{ // return a.score1>b.score1; //} bool cmp(stud a,stud b) { return a.score>b.score; } void stud::sorts() { sort(s+1,s+n+1,cmp); for(int i=1;i<=n;i++) { if(s[i].flag) cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].sex<<" "<<s[i].score<<endl; } } void stud::maxn() { cout<<"the best student:"<<endl; sort(s+1,s+n+1,cmp); cout<<s[1].name<<endl; } int main() { int key; stud t1; cout<<" -----学生信息管理系统----- "<<endl; cout<<" 1:输入信息 "<<endl; cout<<" 2:增加信息 "<<endl; cout<<" 3:删除信息 "<<endl; cout<<" 4:修改信息 "<<endl; cout<<" 5:成绩排序 "<<endl; cout<<" 6:输出第一名 "<<endl; cout<<" 7:输出成绩 "<<endl; cout<<" 8:任意键退出 "<<endl; while(cin>>key) { if(key==1) { t1.input(); } else if(key==2) { t1.add(); } else if(key==3) { t1.dele(); } else if(key==4) { t1.change(); } else if(key==5) { t1.sorts(); } else if(key==6) { t1.maxn(); } else if(key==7) { t1.show(); } else return 0; } return 0; }记录一下^ _ ^
相关文章推荐
- c/c++学生成绩管理系统
- c++链表实现学生成绩管理系统(简易版)
- 《C++编写 学生成绩管理系统》
- C++ 课程设计学生成绩管理系统源代码
- 简易版学生成绩管理系统(c++)
- C++学生成绩管理系统
- 基于链表的学生成绩管理系统——C++二进制文件读写string对象时出现的错误
- 学生成绩管理系统(c++)控制台应用程序
- C++学生成绩管理系统
- 用C++写的学生成绩管理系统(比较简单的没有使用链表,只是用到了类和对象)
- C++课程设计:学生成绩管理系统
- 学生成绩信息管理系统(c++)
- 使用C++名单在文档处理和学生成绩管理系统相结合
- [置顶] 学生信息管理系统-C语言结课作业掺杂了一点c++
- C++的大作业,简单学生管理系统
- 大一作业写学生成绩管理系统,给指错好么。。。
- c++学生成绩管理系统 文件操作
- 分享这次高级JAVA的大作业..学生成绩管理系统
- C++学生信息管理系统V1(课后作业)
- c++学生成绩管理系统