收藏 分销(赏)

《学生成绩管理系统》c++源程序.docx

上传人:精**** 文档编号:10070781 上传时间:2025-04-20 格式:DOCX 页数:13 大小:28.99KB 下载积分:8 金币
下载 相关 举报
《学生成绩管理系统》c++源程序.docx_第1页
第1页 / 共13页
《学生成绩管理系统》c++源程序.docx_第2页
第2页 / 共13页


点击查看更多>>
资源描述
C++程序设计源程序: 《学生成绩管理系统》 #iiiclude<iostreain.h> #iiiclude<stnng.h> #iiiclude <process.h> #iiiclude<cstruig> //数组比较头文件 #iiiclude <fstieam.h>//文件的输入输出 #iiiclude <stdio.h> mt time=O; char name_[20]; class CPerson//CPerson 基类 成员:IDNo Name Addr Tel ( public: char IDNo[30]; char Naine[30]; char Addr[30]; charTel[30]; ); class CStudent:public CPerson//——CStudent 类―继承自 CPerson成员:SmdNo Math English Average ( public: char StudNo[30]; double Math; double English; double Average; }; class CClass//CClass 类 成员:CClassName CStudent ( private: char CClassName[30]; CStudent* stu[50]; public: CClassQ; 〜CClass。; void CreateClassQ; // void OutClassNaine();//输出班级名字 void NewAStuQ;//1.创建学生信息 void changeQ;//3.修改学生信息 void del();〃4.删除学生信息 void writeinQ;//文件写入 void wnteoutQ;〃文件读出 void writeino();//文件另存为 void wiiteouto();〃打开其他文件 void findO;〃6.查询学生信息 ); 〃任意键继续 〃清除屏幕 〃任意键继续 〃清除屏幕 system(Hclsn); cout«H 学生信息管理程序 \n您现在的位置:\t主菜单 void CClass::writeiiiQ// 保存文件 ( ofstieam SaveFile(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]・> Average v Vendl; } Save(); ofstieam Save(name_); Save«CClassName«,,\tH«tiine«endl; fbr(mt j=0 J<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\tn wstu[j]・>Englishvv”\t” «stu[j]->Average«endl; } Save.close(); cout«H\t\t\t 执行成功!M«endl; system(HpauseM); system(HclsH); void back_no() system(HpauseM); system(HclsH); void title。// void CClass::writemoQ// 文件另存为 char choice[30]; ofstieam fop; ifstreain fip; 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_, ".txt H); fop.open(naine_); fop«CClassNaine«,,\t,,«tmie«endl; fbr(int i=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; } void CClass::writeout()// int i=0; char c[30]; FILE *fp; if((fp=fbpen(Hmy,7,rH))==NULL) coutvv”cann't open the exit(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); /*关闭文件*7 cout«H恭喜你!成功读取班级信息! \n” ; } void CClass::writeouto()//打开其他文件 ( int 1=0; char c[30]; FILE *fp; fstream _file; ofstieam fop; ifstreain fip; coutvv”请输入文件名称:\tH«endl; ciii»name_; sticat(naine_, ”.txt ”);〃创建文件名 ifstreain fin(name_); _(naine_jos::m); wliile(!_file) { cout«name_vv” 没有被创建4”; cout«M请输入文件名称:\t"«endl; ciii»name_; } if((fp=fbpen(name_/rH))=NULL) { cout«Hcaiurt open the file\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); /*关闭文件*7 cout«H恭喜你!成功读取班级信息! \n” ; } CClass::CClass()// ( i=0;i<50;i++) { stu[i]=new CStudentQ; } } CClass:>CClass()// ( i=0;i<50;i++) { delete stu[i]; } } void CClass::CreateClass()//创建班级 ( char choice[30]; char *c; char cname[30]; cout«H学生信息管理程序"«endl; cout«Mlx 创建班级H«endl «”2、读取班级信息“vvendl vv”3、退出程序"«endl; COUtVV,请选择:”; ciii»choice; o=0;o<1;o-h-) { while(strcmp(choice,” 1 ”)==0) { system(HclsM); cout«"学生信息管理程序,'«endl; cout«"请输入班级名称二 c=new char[]; 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(int k=0;k<1;k++) { while(strcmp(cname/r 1”)==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; } void CClass::NewAStuQ//0.创建学生 ( cout«-'->输入学生信息\n”; coutvv“请输入身份证号码(18位):\t\t”; ciii»stu [time] ->IDNo;//检验身份证位数 wlule(stu[time]->IDNo[ 18] !='\0) { cout«HData Enor!\n请输入18位身份证号码:\t\t"; c iii»stu [time]->IDN o; } 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(mt o=0;o<10:o-H-) wliile(stu [time] -> Stu dNo [ 12 ]!=,\0,)//检验学号位数 { cout«MData Error!\n 请输入 12 位学号:\t\t\t”; cin»sm[tmie]->StudNo; } for(int i=O;i<time;i-H-) //检验是否重复 { if(strcmp(stu[i]->StudNo,stu[time]->StudNo)=0) { cout«nData Eiror!\n学号重复:请重新输入An”; cin»stu[tHiie]->StudNo; } } } cout«H请输入数学成绩: cm»stu [tune] ->Math; wlule(stu [time]->Math<0 |stu [time] ->Math> 1) { cout«nData Enor?\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«nData Enor?\ii 请重新输入一个分数(0〜1):\t”; ciii»stu[time]->English; } stu [time] -> Av-eiage=(stu [time] ->Math+stu [time] ->English)/2; back(); void CClass::OutClassNameQ//2.打印班级名称 ( int fenshu; char temp[30]; double temp_; change=O;change<tmie;change-H-) { fenshu=chaiige; fbr(int j=change j<time J++) 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=s tu [change] -> Average; stu [change] -> Average=temp_; /* 平均分 */ }// 平均分H«endl; cout«H\n 班级名称:,,«CClassName«,,\tn«H人数:H«tmie«endl«endl; cout«"学号 身份证号码 姓名住址电话 数学 英语 { cout«stu[i]->StudNo «H n«stu[i]->IDNo «M n«stu[i]->Naine «H n«stu[i]->Addr «M n«stu[i]->Tel «-\tM«stu[i]->Math «-\tM«stu[i]->English «-\tM«stu[i]->Average«endl; } back_iio。; void CClass::change()//3.修改学生的信息 ( char str[3O]; int i.had=0; char *a; char x[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; vv”\t”vv” 姓名 vv”\t”vv” 住址 vv”\t”vv” 电话 «n\tM«"学号 VV"\t”VV”数学成绩 «,,\t"«"英语成绩 VV”\t”VV” 平均分 cout«,,\tH«M身份证号码:,,«,,\t,,«stu [i]->IDNo«eiidl H«H\tH«stu[i]->Name«endl H«H\f,«stu[i]->Addr«endl H«H\tH«stu[i]->Tel«endl H«H\tH«stu[i]->StudNo«endl H«H\tH«stu[i]->Math H«H\tH«stu[i]->Enghsh H<<,^tH<<sni[i]->Average<<endl<<endl; cout«Ml> 修改地址M«endl; cout«M2、修改电话号码H«endl; cout«"3、修改数学成绩,,«endl; cout«H4>修改英语成绩”vvendl; cout«M0> 返回 ”vvendl; cout«M请选择操作二 cin»x; fbr(int k=0;k<1;k++) { while(strcmp(x,M 1 H)==0) { COUtVV”请输入新的地址:”; a=new char[]; 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(); } void CClass::delQ//4.删除学生的信息 ( char str[30]; int i,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«eiidl vv,,\t“vv” 姓名:”v v*y vstu[i].>Namev<endl vv,,\t“vv” 住址 «"\r«stu[i]->Addr«endl vv,,\t”vv” 电话:”vv*yvstu[i].>Telv<endl vv,,\t”vv” 学号:”v v*”v vstu[i].>StudNov<endl w,,\t“vv” 数学成绩:H«"\tH«stu[i]->Math«endl vv,,\t“vv” 英语成绩:H«"\tH«stu[i]->English«endl vv,,\t”vv” 平均分:”vv*yvstu[i].>Averagev<endl«endl; for(int j=i j<=tiine-l J++) { 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); stu U ]->Math=stu |j+1 ]->Math; stu[j]->English=stu[j+1 ]->English; stu U ]->Average=stu °+1 ]・> Average; } back(); } iRhad==O) ( cout«H对不起!没有查询到n«str«n的信息! ”V Vendl; back_no(); } } } void CClass::fiiid()//6.查询学生的信息 ( char str[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) vv,,\t,,vv” 姓名 住址 VV”\t”VV” 电话 学号 VV”\t”VV”数学成绩 «,,\t"«"英语成绩 平均分 cout«M\n\tH«H身份证号码:n«n\tH«stu[i]->IDNo«eiidl H«H\tH«stu[i]->Name«endl H«H\tH«stu[i]->Addi«endl H«H\tH«stu[i]->Tel«endl H«H\tH«stu[i]->SmdNo«endl H«H\tH«stu[i]->Math H«H\tH«stu[i]->English H<<,^tH<<sni[i]->Aveiage<<endl<<endl; back_no(); return; } } cout«H对不起!没有查询到H«str«H的信息!H«endl: back.noQ; void niainQ//main 主函数 ( system(nverM); CClass ClassRoom; char selection[30]; ClassRoom.CreateClassQ; system(Hclsn); fbr(mt o=0;o<10;o++) { ClassRoom.wntein(); cout«*'学生信息管理程序,'«endl; cout«"K添加学生信息"«endl vv”2、显示学生信息”v<endl «”3、修改学生信息”《endl vv”4、删除学生信息”v<endl «”5、保存学生信息”v<endl «”6、查询学生信息”v<endl vv”0、退出程序,•«endl«',请选择:"; cin»selection; iRstrcmp(selection," 1 ")==0) { title。; cout«M L添加学生信息”v Vendl; ClassRoom.NewAStuQ; tiine=time+l; } else if(strcmp(selection,n2n)=0) { cout«M2.打印学生信息”v Vendl; if(tiine=O) { cout«M\ii\n\t\t\t 暂时没有记录!"v<endl; back_no(); } else ClassRoom.OutClassName 0; ) else if(strcmp(selection,H3 ”)=0) { title。; cout«"3,修改学生信息H«endl; ClassRoom.changeQ; } else if(strcmp(selection,,'4")=0) { title。; cout«"4,删除学生信息H«endl; ClassRoom.delQ; } else if(strcmp(selection,,'5")=0) { title。; cout«"5,保存学生信息H«endl; C lassRoom.wiitemoQ; } else if(strcmp(selection,,'6")=0) { title。; cout«"6.查询学生信息H«endl; ClassRoom.fiiid(); } else if(strcmp(selection,,'0")=0) { exit(O); } else system(HclsM); cout«H请在。〜6中选择:\n”; )
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服