C++课程设计之学生成绩管理系统

本文实例为大家分享了C++学生成绩管理系统的具体代码,供大家参考,具体内容如下

/*要求:设立程序管理学生如下信息:学生学号、姓名、班级,语文、数学、英语成绩。 至少要有10名以上学生。能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。  能够实现按照单科成绩、总成绩、平均成绩、学号排序。  能够实现学生信息的插入、删除和修改。能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。*/#include<iostream>#include<iomanip>#include<string>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<<"该学生的学号:"<<num<<endl; cout<<"该学生的姓名:"<<name<<endl; cout<<"该学生的班级:"<<class1<<endl; cout<<"该学生的语文成绩:"<<chinese<<endl; cout<<"该学生的数学成绩:"<<math<<endl; cout<<"该学生的英语成绩:"<<english<<endl; } double ad(){return sum=chinese+english+math;} double aver() { aver1=(chinese+english+math)/3; return aver1; } friend void show(); friend void search();  friend void change();  friend void add();  friend void paixu(); friend void del();  }; void input(); void show(); void search();  void change();  void add();  void paixu(); void del();  student s[100]; int n=0; int main(){  int select;  while(1) { system("cls"); cout<<"\t ******************欢迎使用******************\n"; cout<<"\t **************学生成绩管理系统**************\n"; cout<<"\t *------------------------------------------*\n"; cout<<"\t *   1——录入学生信息    *\n"; cout<<"\t *   2——显示学生信息    *\n"; cout<<"\t *   3——查询学生信息    *\n"; cout<<"\t *   4——修改学生信息    *\n"; cout<<"\t *   5——添加学生信息    *\n"; cout<<"\t *   6——排序学生信息    *\n"; cout<<"\t *   7——删除学生信息    *\n"; cout<<"\t *   0——退出      *\n"; cout<<"\t *------------------------------------------*\n"; cout<<"\t 你要输入的编号是(0--7):"; cin>>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<<"没有此选项,请重新选择!"<<endl; } } return 0;} void input() //录入学生信息的函数{ char sel; do { n++; cout<<"\t请输入第"<<n<<"个学生信息:\t"<<endl;  s[n].set(); cout<<"是否要继续录入学生信息(Y/N):"; cin>>sel; }while(sel=='Y' || sel=='y' ); }void show(){ cout<<left; //设置输出左对齐 cout<<setw(10)<<"学生学号" <<setw(10)<<"学生姓名" <<setw(13)<<"学生班级" <<setw(12)<<"语文成绩" <<setw(12)<<"数学成绩" <<setw(12)<<"英语成绩" <<endl; for(int i=1;i<=n;i++) { cout<<setw(10)<<s[i].num <<setw(10)<<s[i].name <<setw(13)<<s[i].class1 <<setw(12)<<s[i].chinese <<setw(12)<<s[i].math <<setw(12)<<s[i].english<<endl; } cout<<endl; } void search()//查询{   int a,b,i;char c[20]; cout<<"请选择查询方式:"<<endl; cout<<"按学生姓名查询请按1"<<endl; cout<<"按学生学号查询请按2"<<endl; cin>>a; switch(a) { case 1: {char sel; do{ cout<<"请输入你要查的学生的姓名:"<<endl; cin>>c; for(i=1;i<=n;i++) if(strcmp(s[i].name,c)==0) {cout<<"你要查的学生信息为:"<<endl; cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:" <<s[i].name<<endl<<"学生班级:" <<s[i].class1<<endl<<"语文成绩:" <<s[i].chinese<<endl<<"数学成绩:" <<s[i].math<<endl<<"英语成绩:" <<s[i].english<<endl; break; } else if(strcmp(s[i].name,c)!=0&&i==n) {cout<<"没有这个学生!"<<endl;break;} cout<<"是否要继续查询学生信息(Y/N):"; cin>>sel; }while(sel=='Y' || sel=='y' );  break;} case 2:{ char sel; do{ cout<<"请输入你要查的学生的学号:"<<endl; cin>>b; for(i=1;i<=n;i++) if(s[i].num==b) { cout<<"你要查的学生信息为:"<<endl; cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:" <<s[i].name<<endl<<"学生班级:" <<s[i].class1<<endl<<"语文成绩:" <<s[i].chinese<<endl<<"数学成绩:" <<s[i].math<<endl<<"英语成绩:" <<s[i].english<<endl; break; } else if(s[i].num!=b&&i==n) {cout<<"没有这个学生!请核对后再输入!"<<endl;break;} cout<<"是否要继续查询学生信息(Y/N):"; cin>>sel; }while(sel=='Y' || sel=='y' );  break;}  default: cout<<"您的输入有误!"<<endl; } } void change(){ { char sel; int d,i,e,f,g=0; do{ cout<<"请输入你要修改的学生的学号:"<<endl; cin>>d; for(i=1;i<=n;i++)  if(s[i].num==d) { cout<<"你要修改的学生信息为:"<<endl; cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:" <<s[i].name<<endl<<"学生班级:" <<s[i].class1<<endl<<"语文成绩:" <<s[i].chinese<<endl<<"数学成绩:" <<s[i].math<<endl<<"英语成绩:" <<s[i].english<<endl;    e=1; break; } else if(s[i].num!=d&&i==n) {cout<<"没有这个学生!请核对后再输入!"<<endl; e=0;break;} while(e==1) { {cout<<"请输入该学生要修改的信息对应的数字:"<<endl; cout<<"学生学号:1" <<'\t'<<"学生姓名:2" <<'\t'<<"学生班级:3" <<'\t'<<"语文成绩:4" <<'\t'<<"数学成绩:5" <<'\t'<<"英语成绩:6"<<endl; } cin>>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<<"请选择排序方式:"<<endl; cout<<"1.按学号排序;"<<endl <<"2.按总成绩排序;"<<endl <<"3.按平均成绩排序;"<<endl; cin>>a; switch(a) { case 1: {int t=0; for(int i=0;i<n-1;i++) for(int j=0;j<n-i;j++) if(s[j].num>s[j+1].num) { t=s[j].num;  s[j].num=s[j+1].num; s[j+1].num=t;}   cout<<"按学号排序结果:"<<endl; cout<<left; //设置输出左对齐 cout<<setw(10)<<"学生学号" <<setw(10)<<"学生姓名" <<setw(13)<<"学生班级" <<setw(12)<<"语文成绩" <<setw(12)<<"数学成绩" <<setw(12)<<"英语成绩" <<endl; for(i=1;i<=n;i++) { cout<<setw(10)<<s[i].num <<setw(10)<<s[i].name <<setw(13)<<s[i].class1 <<setw(12)<<s[i].chinese <<setw(12)<<s[i].math <<setw(12)<<s[i].english<<endl;} } break; /* case 2: {double t; for(int i=0;i<n-1;i++) { for(int j=0;j>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<<"按总成绩排序结果:"<<endl; for(i=1;i<=n;i++)  cout<<"学号:"<<s[i].num<<"\t"<<"姓名:"<<s[i].name<<"\t"<<"班级:"<<s[i].class1<<"\t"  <<"语文成绩:"<<s[i].chinese<<"\t"<<"数学成绩:"<<s[i].math<<"\t"<<"英语成绩"<<s[i].english<<"\t总成绩"<<s[i]sum<<endl;  cout<<endl; } break;*/ /* case 3: int t; for(int i=0;i<n-1;i++) { for(int j=0;j>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<<"按平均成绩排序结果:"<<endl; for(i=0;i<n;i++)  cout<<"学号:"<<s[i].num<<"\t"<<"姓名:"<<s[i].name<<"\t"<<"班级:"<<s[i].class1<<"\t"  <<"语文成绩:"<<s[i].chinese<<"\t"<<"数学成绩:"<<s[i].math<<"英语成绩"<<s[i].english<<endl;  cout<<endl; } break ;*/  default: {cout<<"您的输入有误!请重新输入!"<<endl; cin>>a;} } } void del(){  int j,i,k;char c[10],sel,y; do{ cout<<"请输入你要删除的学生的姓名:"<<endl; cin>>c; for(i=1;i<=n;i++) if(strcmp(s[i].name,c)==0) {cout<<"你要删除的学生信息为:"<<endl; cout<<"学生学号:"<<s[i].num<<endl <<"学生姓名:"<<s[i].name<<endl <<"学生班级:"<<s[i].class1<<endl <<"语文成绩:"<<s[i].chinese<<endl <<"数学成绩:"<<s[i].math<<endl <<"英语成绩:"<<s[i].english<<endl; cout<<"确认删除?(y/n):"; cin>>y; if(y=='Y'||y=='y') { for(j=i;j<=n+1;j++) {  s[j]=s[j+1]; } k=1; } else  cout<<"删除失败!"<<endl;   break; } else if(strcmp(s[i].name,c)!=0&&i==n) {cout<<"没有这个学生!请核对后再输入!"<<endl; k=0;break;} while(k==1) { if(y=='Y'||y=='y') cout<<"删除成功!"; n--; k=0; } cout<<"是否要继续删除学生信息(Y/N):"; cin>>sel;  }while(sel=='Y' || sel=='y' );  }

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

往往教导我们大家要好好学习天天向上,

C++课程设计之学生成绩管理系统

相关文章:

你感兴趣的文章:

标签云: