《学生成绩管理系统》c++源程序_第1页
《学生成绩管理系统》c++源程序_第2页
《学生成绩管理系统》c++源程序_第3页
《学生成绩管理系统》c++源程序_第4页
《学生成绩管理系统》c++源程序_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++程序设计源程序: 《学生成绩管理系统》#iiiclude<iostreain.h>#iiiclude<stnng.h>#iiiclude<process.h>#iiiclude<cstruig>//数组比较头文件#iiiclude<fstieam.h>//文件的输入输出#iiiclude<stdio.h>mttime=O;charname_[20];classCPerson//CPerson基类成员:IDNoNameAddrTel(public:charIDNo[30];charNaine[30];charAddr[30];charTel[30];);classCStudent:publicCPerson//——CStudent类―继承自CPerson成员:SmdNoMathEnglishAverage(public:charStudNo[30];doubleMath;doubleEnglish;doubleAverage;};classCClass//CClass类成员:CClassNameCStudent(private:charCClassName[30];CStudent*stu[50];public:CClassQ;〜CClass。;voidCreateClassQ;//voidOutClassNaine();//输出班级名字voidNewAStuQ;//1.创建学生信息voidchangeQ;//3.修改学生信息voiddel();〃4.删除学生信息voidwriteinQ;//文件写入voidwnteoutQ;〃文件读出voidwriteino();//文件另存为voidwiiteouto();〃打开其他文件voidfindO;〃6.查询学生信息);cout«\t\t\t执行成功!«endl;HMsystem(pause);〃任意键继续HMsystem(cls);〃清除屏幕HHvoidback_no()HM);〃任意键继续system(pauseHH);system(cls〃清除屏幕voidtitle。//voidCClass::writemoQ//文件另存为system(cls);Hncout«---------学生信息管理程序HvoidCClass::writeiiiQ//---------------保存文件(ofstieamSaveFile(HmyH);SaveFile«CClassName«M\tM«time«endl;{SaveFile«stu[i]->IDNo«n\tM«stu[i]->Naine«H\tH«stu[i]->Addr«H\tH«stu[i].>Tel«,,\tH«stu[i]->StudNo«,^\t,^«stu[i]->Math«H\tH«stu[i]->English«,,\t"«stu[i]・>AveragevVendl;}Save();ofstieamSave(name_);Save«CClassName«,,\tH«tiine«endl;fbr(mtj=0J<time;j++){Savevvstu[J]・>IDNovv”\t"«stu|j]->Naiiie«H\tH«stu|j]->Addr«H\tM«stuU]->Tel«M\tH«stuU]->StudNo«,,\tH«stu|j]->Math«H\tnwstu[j]・>Englishvv”\t”«stu[j]->Average«endl;}Save.close();charchoice[30];

\n您现在的位置:\t主菜单ofstieamfop;ifstreainfip;cout«H文件己默认保存了!\t现在需要另存为?(Y/N),,«endl;ciii»choice;while(sticmp(choice「'Y”)==0||sticmp(choice「'y”)=0){cout«H请输入文件名称:\tn«endl;ciii»name_;sticat(name_,".txtH);fop.open(naine_);fop«CClassNaine«,,\t,,«tmie«endl;fbr(inti=0;i<time;i++){fbpv<stu[i]・>n)No<v”\t”«stu[i]->Naine«H\tH«stu[i]->Addr«H\tM«stu[i]->Tel«M\tH«stu[i]->StudNo«M\tn«stu[i]->Math«H\tH«stu[i]->English«n\tH«stu[i]->Average«endl;}fip.close();cout«H另存为H«name_«n成功!H«endl;back_noQ;return;}wlule(sticmp(choice/,nn)==0||strcmp(choice/,Nn)==0){back_noQ;return;}wlule(sticmp(choice/,YH)!=0||sticnip(choice/y*)!=0){cout«H输入错误!n«endl;back_noQ;return;}voidCClass::writeout()//inti=0;charc[30];FILE*fp;if((fp=fbpen(Hmy,7,rH))==NULL)coutvv”cann'topentheexit(O);}fscaiif(fpj,%s%d,\c,&time);sticpy(CClassName,c);wlule(i<time){fscaiif(fpJ,%s%s%s%s%s%lf%lf%lf\stu[i]->IDNo,stu[i]->Name,stu[i]->Addi;&sni[i]->Tel,stu[i]->StudNo,&stu[i]->Math,&stu[i]->English,&stu[i]->Average);1++;}fclose(fp);/*关闭文件*7cout«H恭喜你!成功读取班级信息!\n”;}voidCClass::writeouto()//打开其他文件(int1=0;charc[30];FILE*fp;fstream_file;ofstieamfop;ifstreainfip;coutvv”请输入文件名称:\tH«endl;ciii»name_;sticat(naine_,”.txt”);〃创建文件名ifstreainfin(name_);_(naine_jos::m);wliile(!_file){cout«name_vv”没有被创建4”;cout«M请输入文件名称:\t"«endl;ciii»name_;}if((fp=fbpen(name_/rH))=NULL){cout«Hcaiurtopenthefile\iiH;exit(0);}fscaiif(fpj,%s%d,\c,&time);sticpy(CClassName,c);fscaiif(fpj,%s%s%s%s%s%lf%lf%lf\stu国AEDNo’stuE.'Nam&stuUJ-AAddi.&sniUJoTeLstupl.AStudNo,&stu[i]->Math,&stu[i]->English,&stu[i]->Average);i++;}fclose(fp);/*关闭文件*7cout«H恭喜你!成功读取班级信息!\n”;}CClass::CClass()//(i=0;i<50;i++){stu[i]=newCStudentQ;}}CClass:>CClass()//(i=0;i<50;i++){deletestu[i];}}voidCClass::CreateClass()//创建班级(charchoice[30];char*c;charcname[30];cout«H学生信息管理程序"«endl;cout«Mlx创建班级H«endl«”2、读取班级信息“vvendlvv”3、退出程序"«endl;COUtVV,请选择:”;ciii»choice;O=0;O<1;O-H-){while(strcmp(choice,”1”)==0){system(HclsM);cout«"学生信息管理程序,'«endl;cout«"请输入班级名称二c=newchar[];cin»c;strcpy(CClassName,c);retuni;)while(sticmp(choice,n2H)==0)system(HclsM);title。;cout«H\nl.打开上次的文件,f«endl«M2.打开其他文件n«endl«M\n请选择二cin»cname;fbr(intk=0;k<1;k++){while(strcmp(cname/r1”)==0)(writeout();return;)while(strcmp(cname/2M)=0)(writeouto();return;)cout«M请在1〜2中选择二cin»cname;}}wlule(sticmp(choice/,0H)==0)exit(O);cout«H请在1〜2中选择:”;ciii»choice;}voidCClass::NewAStuQ//0.创建学生(cout«-'->输入学生信息\n”;coutvv“请输入身份证号码(18位):\t\t”;ciii»stu[time]->IDNo;//检验身份证位数wlule(stu[time]->IDNo[18]!='\0){cout«HDataEnor!\n请输入18位身份证号码:\t\t";ciii»stu[time]->IDNo;}cout«HiW输入姓名:\t\t”;cm»stu[time]->Name;COUtVV"请输入住址:cm»stu[tune]->Addi;COUtVV”请输入电话号码:\t\t”;cm»stu[tune]->Tel;coutvv”请输入学号(12位ciii»stu[tune]->StudNo;fbr(mto=0;o<10:o-H-)wliile(stu[time]->StudNo[12]!=,\0,)//检验学号位数{cout«MDataError!\n请输入12位学号:\t\t\t”;cin»sm[tmie]->StudNo;}for(inti=O;i<time;i-H-)//检验是否重复{if(strcmp(stu[i]->StudNo,stu[time]->StudNo)=0){cout«nDataEiror!\n学号重复:请重新输入An”;cin»stu[tHiie]->StudNo;}}}cout«H请输入数学成绩:cm»stu[tune]->Math;wlule(stu[time]->Math<0|stu[time]->Math>1){cout«nDataEnor?\ii请重新输入一个分数(0〜1):\t”;ciii»stu[time]->Math;}cout«H请输入英语成绩:\t\t”;ciii»stu[tune]->English;wlule(stu[time]->English<0|stu[time]->English>1){cout«nDataEnor?\ii请重新输入一个分数(0〜1):\t”;ciii»stu[time]->English;}stu[time]->Av-eiage=(stu[time]->Math+stu[time]->English)/2;back();voidCClass::OutClassNameQ//2.打印班级名称(intfenshu;chartemp[30];doubletemp_;change=O;change<tmie;change-H-){fenshu=chaiige;fbr(intj=changej<timeJ++)if(strcmp(stu[j]->StudNo,stu[fenshu]->StudNo)<0)fenshu=j;strcpy(temp,stu[fenshu]->Addr);strcpy(stu[fenshu]->Addr,stu[change]->Addr);strcpy(stu[change]->Addi;temp);/*地址*/strcpy(temp,stu[fenshu]->StudNo);strcpy(stu[fenshu]->StudNo,stu[chaiige]->StudNo);strcpy(stu[change]->StudNo,temp);/*身份证*/strcpy(temp,stu[fenshu]->Name);strcpy(stu[fenshu]->Name,stu[chaiige]->Name);strcpy(stu[change]->Naine,temp);/*姓名*/strcpy(temp,stu[fenshu]->Tel);strcpy(stu[fenshu]->TeLstu[chaiige]->Tel);strcpy(stu[change]->Tel,temp);/*电话*/strcpy(temp,stu[fenshu]->IDNo);strcpy(stu[fenshu]->IDNo,stu[change]^:-IDNo);strcpy(stu[change]->IDNo,temp);/*学号*/temp_=stu[fenshu]->Math;stu[fenshu]->Math=stu[change]->Matli;stu[change]->Math=temp_;/*数学*/temp_=stu[fenshu]->English;stu[fenshu]->English=stu[change]->English;stu[change]->English=temp_;/*英语*/temp_=stu[fenshu]->A\rerage;stu[fenshu]->Average=stu[change]->Average;stu[change]->Average=temp_;/*平均分*/}//cout«\n班级名称:,«CClassName«\t«人数:«tmie«endl«endl;H,,,nHHcout«"学号身份证号码姓名住址电话数学英语平均分«endl;H{cout«stu[i]->StudNo«Hn«stu[i]->IDNo«Mn«stu[i]->Naine«Hn«stu[i]->Addr«Mn«stu[i]->Tel«-\tM«stu[i]->Math«-\tM«stu[i]->English«-\tM«stu[i]->Average«endl;}back_iio。;voidCClass::change()//3.修改学生的信息(charstr[3O];inti.had=0;char*a;charx[30];cout«^请输入您要修改学生的学号/名字二ciii»str;foi(i=0;i<50;i++)if(strcmp(stu[i]->StudNo.str)=0|strcmp(stu[i]->Naine,sti)=O)had=l;cout«,,\tH«M身份证号码:,,«,,\t,,«stu[i]->IDNo«eiidlvv”\t”vv”姓名HHH«\t«stu[i]->Name«endlvv”\t”vv”住址HH,«stu[i]->Addr«endl«\fvv”\t”vv”电话HHH«\t«stu[i]->Tel«endlnM«"学号H«H\tH«stu[i]->StudNo«endl«\tVV"\t”VV”数学成绩H«H\tH«stu[i]->MathHHH«stu[i]->Enghsh,,«\t«\t"«"英语成绩H,H<<sni[i]->Average<<endl<<endl;VV”\t”VV”平均分<<^tMl>修改地址M«endl;cout«M2、修改电话号码H«endl;cout«cout«"3、修改数学成绩,,«endl;Hcout«4>修改英语成绩”vvendl;M0>返回”vvendl;cout«M请选择操作二cin»x;cout«fbr(intk=0;k<1;k++){while(strcmp(x,M1H)==0){COUtVV”请输入新的地址:”;a=newchar[];ciii»a;strcpy(stu[i]->Addr,a);back。;xeturn;)while(strcmp(x,M2H)==0){coutvv”请输入新的电话号码:”;cin»stu[i]->Tel;backQ;return;)while(strcmp(x,M3H)==0)coutvv,,请输入新的数学成绩二cin»stu[i]->Matli;while(stu[i]->Math>1|stu[i]-^-Math<0)cout«"请重新输入OTOO:”;cin»stu[i]・>Math;}stu[i]->Average=(stu[i]->Math+stu[i]->English)/2;backQ;return:)while(strcmp(x/,4H)==0)(cout«H请输入新的英语成绩:";cin»stu[i]->English;while(stu[i]->English>1|stu[i]->English<0)(cout«"请重新输入0〜1:";cin»stu[i]・>English;};stu[i]->Average=(stu[i]->Math+stu[i]->English)/2;backQ;return:)cout«M请在1〜4中选择二cin»x;}if(had==0)(cout«n对不起!没有查询到H«str«n的信息!H«endl;back_no();}voidCClass::delQ//4.删除学生的信息(charstr[30];inti,had=0;if(tiine!=0){coutvv”请输入您要删除的学号二cm»sti;for(i=0;i<50;i++)if(strcmp(stu[i]->StudNo,str)=0){had=l;cout«M第”vvi+i«”位学生:H«endl;cout«,,\f«M身份证号码:H«n\tH«stu[i]->IDNo«eiidlvv,,\t“vv”姓名:”vv*yvstu[i].>Namev<endlvv,,\t“vv”住址«"\r«stu[i]->Addr«endlvv,,\t”vv”电话:”vv*yvstu[i].>Telv<endlvv,,\t”vv”学号:”vv*”vvstu[i].>StudNov<endlw,,\t“vv”数学成绩:H«"\tH«stu[i]->Math«endlvv,,\t“vv”英语成绩:H«"\tH«stu[i]->English«endlvv,,\t”vv”平均分:”vv*yvstu[i].>Averagev<endl«endl;for(intj=ij<=tiine-lJ++){strcpy(stu[j]->IDNo,sni[j-rl]->IDNo);strcpy(stuIj]->Name,stu[j+l]->Name);strcpy(stuIj]->Addi;sniIj+l]->Adclr);strcpy(stu[j]->Tel,stu[j+l]->Tel);strcpy(stu[j]->StudNo,stu[j+l]->StudNo);stuU]->Math=stu|j+1]->Math;stu[j]->English=stu[j+1]->English;stuU]->Average=stu°+1]・>Average;}back();}iRhad==O)(cout«H对不起!没有查询到n«str«n的信息!”VVendl;back_no();}}}voidCClass::fiiid()//6.查询学生的信息(charstr[3O];coutvv”请输入您要查询学生的姓名/学号/身份证号码/电话号码:\t”;ciii»str;i=0;i<time;i++)if(sticnip(stu[i]->Name,sti)==0||sticmp(sni[i]->IDNo,str)==0||sticmp(sni[i]->StudNo,str)==0||strcmp(stu[i]->TeLstr)=O)cout«\n\t«身份证号码:«\t«stu[i]->IDNo«eiidlMHHnnHvv,,\t,,vv”姓HHH«\t«stu[i]->Name«endl名住址VV”\t”VV”电话学号VV”\t”VV”数学成绩«,,\t"«"英语成绩back_no();return;

H«H\tH«stu[i]->Addi«endlH«H\tH«stu[i]->Tel«endlH«H\tH«stu[i]->SmdNo«endlH«H\tH«stu[i]->MathH«H\tH«stu[i]->EnglishH<<,^tH<<sni[i]->Aveiage<<endl<<e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论