| 查看: 1098 | 回复: 0 | ||
[求助]
有没有用类的继承和STL写的学生管理系统
|
|
我这是用C写的,有没有高手愿意帮我个忙用C++的类的继承和STL写的,必有重谢 #include<iostream> #include<string> #include<iomanip> using namespace std; struct student { char name[15]; int number; float chinese,math,English; }; student s[50]; int i=0,n=0; double allscore[50]; void insert(); void delete1(); void find(); void xiugai(); void tongji(); void sort(); void input(); void output(); void contin() { cout<<"是否继续操作(y/n)"; char a; int j; cin>>a; while(a!='y'&&a!='n') cin>>a; if(a=='y') { cout<<"你想继续做什么:"; cin>>j; while(!(j<=8&&j>=1)) { cout<<"The number is too big or small,please input it again."; cin>>j; } switch(j) { case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break; case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break; case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break; case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break; case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl;find();break; case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break; case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break; case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break; } } else if(a=='n') cout<<"操作结束!!!"<<endl; } void input() //1、按顺序输入若干个学生的信息 { cout<<"你想输入多少个学生信息:"; cin>>n; for(i=0;i<n;i++) { cout<<"学号:"; cin>>s.number; cout<<"姓名:"; cin>>s.name; cout<<"语文成绩:"; cin>>s.chinese; cout<<"数学成绩:"; cin>>s.math; cout<<"英语成绩:"; cin>>s.English; } for(i=0;i<n;i++) { allscore=s.chinese+s.English+s.math; } contin(); } void output() //8、显示所有学生信息 { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } cout<<"每位学生的信息分别为:"<<endl; cout<<"---------------------------------------------------------------------------"<<endl; cout<<setw(15)<<"姓名"<<setw(10)<<"学号"<<setw(12)<<"语文成绩"<<setw(12)<<"数学成绩"<<setw(12) <<"英语成绩"<<setw(12)<<"总分为:"<<endl; for(i=0;i<n;i++) cout<<setw(15)<<s.name<<setw(10)<<s.number<<setw(12) <<s.chinese<<setw(12)<<s.math<<setw(12)<<s.English<<setw(12)<<allscore<<endl; contin(); } void insert() //2、插入一个学生信息 { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } cout<<"请输入你要插入的位置:"; int k; cin>>k; while(!(k>0&&k<=n)) { cout<<"操作错误,请重新操作:"; cin>>k; } if(k<=n) { n++; for(int i=n-1;i>=k;i--) { s=s[i-1]; } } cout<<"学号:"; cin>>s[k-1].number; cout<<"姓名:"; cin>>s[k-1].name; cout<<"语文成绩:"; cin>>s[k-1].chinese; cout<<"数学成绩:"; cin>>s[k-1].math; cout<<"英语成绩:"; cin>>s[k-1].English; contin(); } void delete1() //3、删除一个学生信息 { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } cout<<"请输入你要删除的位置:"; int k; cin>>k; while(!(k>=0&&k<n)) { cout<<"你输入的位置不存在,请重新输入"; cin>>k; } for(i=k-1;i<n;i++) { s=s[i+1]; } n--; contin(); } void xiugai() //4、修改一个学生信息(按学号来找) { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } int num;char c; do{ cout<<"请输入需要修改的学生的学号:"; cin>>num; for(int i=0;i<n;i++) { if(s.number==num) { cout<<"学号:"; cin>>s.number; cout<<"姓名:"; cin>>s.name; cout<<"语文成绩:"; cin>>s.chinese; cout<<"数学成绩:"; cin>>s.math; cout<<"英语成绩:"; cin>>s.English; } else {cout<<"没有这个学生."<<endl;break;} } cout<<"是否还要修改(y/n)"; cin>>c; while(c!='y'&&c!='n') cin>>c; }while(c=='y'); contin(); } void find() //5、查找一个学生信息(按姓名来找) { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } char na[15]; cin>>na; for(int i=0;i<n;i++) { if(strcmp(s.name,na)==0) { cout<<setw(30)<<"所查找的学生信息为:"<<endl; cout<<"---------------------------------------------------------------------------"<<endl; cout<<setw(15)<<"姓名:"<<s.name<<setw(10)<<"学号:" <<s.number<<setw(12)<<"语文成绩:"<<s.chinese<<setw(12)<<"数学成绩:" <<s.math<<setw(12)<<"英语成绩:"<<s.English<<setw(12)<<"总分为:"<<allscore<<endl; cout<<"---------------------------------------------------------------------------"<<endl; } else cout<<"没有这个学生."<<endl; } contin(); } void tongji() //6、统计学生的总分成绩 { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } for(i=0;i<n;i++) allscore=s.chinese+s.math+s.English; cout<<"各位学生的总分分别是"; for(i=0;i<n;i++) { cout<<"第"<<i+1<<"位同学是:"<<s.name<<"总分是:"<<allscore<<endl; } contin(); } void sort() //7、按总分从高到低排序 { if(n<=0) { cout<<"请先输入学生的信息,"; input(); } student temp; for(i=0;i<n;i++) for(int j=i;j<n;j++) if(allscore<allscore[j]) { temp=s; s=s[j]; s[j]=temp; } cout<<"已经排好序了,是否需要输出(y/n):"; char yn; cin>>yn; while(yn!='y'&&yn!='n') { cout<<"操作错误!!!请重新输入:"; cin>>yn; } if(yn=='y') { cout<<"所有学生的成绩按总分从低到高的排名是:"<<endl; output(); } else contin(); } void main() { cout<<setw(30)<<"学生管理系统"<<endl; for(int s=1;s<=67;s++) cout<<"*"; cout<<endl; cout<<" 在这个学生管理系统中,你可以做以各方面的内容:"<<endl; 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; cout<<"-------------------------------------------------------------------"<<endl; cout<<"你想要做什么:"; int k; cin>>k; while((k<=0||k>9)) { cout<<"The number is too big or small,please input it again."; cin>>k; } switch(k) { case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break; case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break; case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break; case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break; case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl<<endl;find();break; case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break; case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break; case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break; case 9:cout<<"9、操作結束!"<<endl;break; } } |
» 猜你喜欢
为什么nbs上溴 没有产物点出现呢
已经有6人回复
拟解决的关键科学问题还要不要写
已经有8人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
最失望的一年
已经有16人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复













回复此楼