具体内容如下
/*要求:设立程序管理学生如下信息:学生学号、姓名、班级,语文、数学、英语成绩。 至少要有10名以上学生。 能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。 能够实现按照单科成绩、总成绩、平均成绩、学号排序。 能够实现学生信息的插入、删除和修改。 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。*/ #include#include #include using namespace std; class student { int num; char name[20]; char class1[20]; double chinese; double math; double english; double youxiu;//优秀率 double bujige;//不及格率 double sum;//总成绩 double aver1;//平均成绩 public: void set() { cout<<"\t学生学号:"; cin>>num; cout<<"\t学生姓名:"; cin>>name; cout<<"\t学生班级:"; cin>>class1; cout<<"\t语文成绩:"; cin>>chinese; cout<<"\t英语成绩:"; cin>>english; cout<<"\t数学成绩:"; cin>>math; } void show() { cout<<"该学生的学号:"< >select; if(select==0) break; switch(select){ case 1: input(); //调用input函数录入数据 system("pause"); break; case 2: show(); //调用show函数显示学生信息 system("pause"); break; case 3: search(); //调用search函数查询学生信息 system("pause"); break; case 4: change(); //调用change函数修改学生信息 system("pause"); break; case 5: add(); //调用add函数添加学生信息 system("pause"); break; case 6: paixu(); //调用add函数添加学生信息 system("pause"); break; case 7: del(); // 调用del函数删除学生信息 system("pause"); break; system("pause"); default: cout<<"没有此选项,请重新选择!"< >sel; }while(sel=='Y' || sel=='y' ); } void show() { cout< >a; switch(a) { case 1: {char sel; do{ cout<<"请输入你要查的学生的姓名:"< >c; for(i=1;i<=n;i++) if(strcmp(s[i].name,c)==0) {cout<<"你要查的学生信息为:"< >sel; }while(sel=='Y' || sel=='y' ); break; } case 2: { char sel; do{ cout<<"请输入你要查的学生的学号:"< >b; for(i=1;i<=n;i++) if(s[i].num==b) { cout<<"你要查的学生信息为:"< >sel; }while(sel=='Y' || sel=='y' ); break;} default: cout<<"您的输入有误!"< >d; for(i=1;i<=n;i++) if(s[i].num==d) { cout<<"你要修改的学生信息为:"< >f; switch(f) {case 1:cout<<"\t新的学生学号为:"; cin>>s[i].num;break; case 2:cout<<"\t新的学生姓名为:"; cin>>s[i].name;break; case 3:cout<<"\t新的学生班级为:"; cin>>s[i].class1;break; case 4:cout<<"\t新的语文成绩为:"; cin>>s[i].chinese;break; case 5:cout<<"\t新的数学成绩为:"; cin>>s[i].math;break; case 6:cout<<"\t新的英语成绩为:"; cin>>s[i].english;break; default:cout<<"您的输入有误,请重新输入!"; cin>>f;} e=0; g=1; } if(g==1) { cout<<"修改成功!";} cout<<"是否要继续修改学生信息(Y/N):"; cin>>sel; }while(sel=='Y' || sel=='y' ); } } void add() { char sel; do { n++; cout<<"\n请输入第"<< n <<"个学生信息:\n"; cout<<"\t学生学号:"; cin>>s[n].num; cout<<"\t学生姓名:"; cin>>s[n].name; cout<<"\t学生班级:"; cin>>s[n].class1; cout<<"\t语文成绩:"; cin>>s[n].chinese; cout<<"\t数学成绩:"; cin>>s[n].math; cout<<"\t英语成绩:"; cin>>s[n].english; cout<<"是否要继续添加学生信息(Y/N):"; cin>>sel; }while(sel=='Y' || sel=='y' ); } void paixu() { int a; cout<<"请选择排序方式:"< >a; switch(a) { case 1: {int t=0; for(int i=0;i s[j+1].num) { t=s[j].num; s[j].num=s[j+1].num; s[j+1].num=t;} cout<<"按学号排序结果:"< n-i-1;j++) { if(s[j].sum>s[j+1].sum) t=s[j].sum; s[j].sum=s[j+1].sum; s[j+1].sum=t; } } cout<<"按总成绩排序结果:"< n-1-i;j++) { if(s[j].aver()>s[j+1].aver()) t=s[j].aver(); s[j].aver()=s[j+1].aver(); s[j+1].aver()=t; } } cout<<"按平均成绩排序结果:"< >a;} } } void del() { int j,i,k;char c[10],sel,y; do{ cout<<"请输入你要删除的学生的姓名:"< >c; for(i=1;i<=n;i++) if(strcmp(s[i].name,c)==0) {cout<<"你要删除的学生信息为:"< >y; if(y=='Y'||y=='y') { for(j=i;j<=n+1;j++) { s[j]=s[j+1]; } k=1; } else cout<<"删除失败!"< >sel; }while(sel=='Y' || sel=='y' ); }
效果图:
