C++学生成绩管理系统要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。学生成绩管理系统分析:学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。学生成绩管理系统结构:Menu()函数Student()Add()Output()Find()Modify()Deleted()Sort()Save()Load()重载符号Student类私有成员:charname[20];charsex[5];intnumber;intscore[3];inttotal;intaverage;公有函数Main()函数各个子函数功能及其流程:1.首先定义一个学生类ClassStudent;并定义其各个私有变量和公有函数2.Student();构造函数,用于初始化学生类中的各个变量并记录3.Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容4.Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩主函数main()菜单函数menu()选择菜单中的选项添加学生信息调用Add()函数调用重载并添加信息主函数main()菜单函数menu()选择菜单中的选项输出学生信息调用Output()函数输出学生信息ClassStudentload重载Classaddoutputfinddeletemodifysave私有变量5.Find();函数:用于查找学生各项信息。6.modify();函数:用于修改学生各项信息。7.delete();函数:用于删除学生信息。主函数main()菜单函数menu()选择菜单中的选项修改学生信息调用modify()函数修改并保存学生信息要求输入学生姓名主函数main()菜单函数menu()选择菜单中的选项查找学生信息调用find()函数查找并输出学生信息要求输入学生姓名8.sort();函数:对学生各项信息进行排序操作。8.save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示出来主函数main()菜单函数menu()选择菜单中的选项学生信息排序调用Sort()函数完成排序操作主函数main()菜单函数menu()选择菜单中的选项删除学生信息调用delete()函数删除学生信息要求输入学生姓名9.“=”“”“”符号的重载:在各个函数处理数据过程中对这些的调用处理函数源代码:此函数源代码在VisualC++6.0环境下编译通过。具体如下:#includeiostream.h#includeconio.h#includeiomanip.h#includestdio.h#includestring.h#includestdlib.h#includefstream.hclassstudent//定义学生类{private://定义学生类的私有成员charname[20];//名字charsex[5];//性别intnumber;//学号intscore[3];//分数inttotal;//总分intaverage;//平均分public://公有成员student();//学生构造函数,用于学生数据的初始化及保存学生数据voidadd();//添加学生信息函数voidoutput();//输出学生信息函数voidfind();//查找学生数据函数voidmodify();//修改学生信息函数voiddeleted();//删除学生信息函数voidsort();//排序函数voidsave();//保存学生信息并写入文件函数voidload();//打开写有学生信息的文件的函数主函数main()菜单函数menu()选择菜单中的选项选保存或读取调用load()函数文件读取成功调用save()函数按要求输入文件名文件保存成功student&operator=(student&T);//重载“=”符号friendistream&operator(istream&scin,student&s1);//重载“”符号friendostream&operator(ostream&scout,student&s2);//重载“”符号};studentstu[100];intn=0;voidstudent::add()//添加函数{charflag='Y';while(toupper(flag)=='Y'){cinstu[n];n++;cout要继续添加吗(y/n);cinflag;if(toupper(flag)!='Y'){if(toupper(flag)=='N'){break;}else{cout错误,请重输:;cinflag;}}}}voidstudent::output()//输出函数{if(n!=0){cout---------------------------------------------------------------------------\n;coutnumbernamesexmathC++Englishtotalaverage\n;cout---------------------------------------------------------------------------\n;for(intt=0;tn;t++){coutstu[t];}}getch();}voidstudent::find()//查找函数{intf3=0;charn1[20];studenttemp;cout输入你要查找的人的姓名:;cinn1;for(intj=0;jn;j++){if(strcmp(stu[j].name,n1)==0){temp=stu[j];f3=1;}}if(f3==0)cout对不起,没有你要查找的学生成绩endl;else{cout---------------------------------------------------------------------------\n;coutnumbernamesexmathC++Englishtotalaverage\n;cout---------------------------------------------------------------------------\n;couttemp.numbertemp.nametemp.sextemp.score[0]temp.score[1]temp.score[2]temp.totaltemp.averageendl;}getch();}voidstudent::modify()//修改函数{intf4=0;intt;charn2[50];cout输入你要修改的人的姓名:;cinn2;for(intj=0;jn;j++){if(strcmp(stu[j].name,n2)==0){t=j;f4=1;}}if(f4==0)cout对不起,没有你要修改的学生成绩endl;else{cout请输入学号:;cinstu[t].number;cout姓名:;cinstu[t].name;cout性别:;cinstu[t].sex;cout数学成绩:;cinstu[t].score[0];coutC++成绩:;cinstu[t].score[1];cout英语成绩:;cinstu[t].score[2];stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2];stu[t].average=stu[t].total/3;cout修改成功!endl;}getch();}voidstudent::deleted()//删除函数{charn3[20];boolf5=0;charc;do{cout请输入您要删除的学生姓名:;cinn3;for(inti=0;in;i++){if(strcmp(n3,stu[i].name)==0){f5=1;n--;do{stu[i]=stu[i+1];i++;}while(i=n);}}if(f5==0)cout您要求删除的对象本来就不存在!;cout要继续删除吗?(y/n)endl;cinc;if(toupper(c)!='Y'&&toupper(c)!='N'){cout输入指令错误!请重新输入Y或N!endl;cinc;}}while(toupper(c)=='Y');getch();}voidstudent::sort()//排序函数{inti,j,k;students3;for(i=0;i(n-1);i++){k=i;for(j=i+1;jn;j++)if(stu[j].averagestu[i].average)k=j;if(k!=i){s3=stu[i];stu[i]=stu[k];stu[k]=s3;}}cout\n\n排序成功!\n\n;}voidstudent::save()//保存函数{charfilename1[20];cout请输入文件名:;cinfilename1;ofstreamfout(filename1,ios::app);if(!fout)cout文件不能打开!endl;else{for(inti=0;in;i++)fout''stu[i].name''stu[i].sex''stu[i].number''stu[i].score[0]''stu[i].score[1]''stu[i].score[2]''stu[i].total''stu[i].average'';cout保存成功!endl;}fout.close();getch();}voidstudent::load()//读取函数{charfilename2[20];cout请输入你要读取的文件名:;cinfilename2;ifstreamfin(filename2,ios::in);if(!fin)cout文件打不开!endl;else{for(inti=0;;i++,n=i-1){if(fin.eof())break;finstu[i].namestu[i].sexstu[i].numberstu[i].score[0]stu[i].score[1]stu[i].score[2]stu[i].totalstu[i].average;}cout文件已读取成功!endl;}fin.close();getch();}student&student::operator=(student&T)//重载={strcpy(name,T.name);strcpy(sex,T.sex);number=T.number;for(inti=0;i3;i++)score[i]=T.score[i];total=T.total;average=T.average;return(*this);}ostream&operator(ostream&scout,student&s2)//重载{coutsetw(6)s2.numbersetw(10)s2.namesetw(8)s2.sexsetw(8)s2.score[0]setw(8)s2.score[1]setw(10)s2.score[2]se