C++学生成绩管理系统源代码.docx
- 文档编号:2624836
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:16
- 大小:17.15KB
C++学生成绩管理系统源代码.docx
《C++学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统源代码.docx(16页珍藏版)》请在冰点文库上搜索。
C++学生成绩管理系统源代码
#include
#include
#include
#include
#include
classPerson
{public:
charname[8];
};
classstudent:
publicPerson//构建学生类
{
public:
friendvoidManage(studentstud[]);
friendvoidInput(studentstud[]);
friendvoidStatistic(studentstud[]);
friendvoidLookup(studentstud[]);
friendvoidModify(studentstud[]);
friendvoidOutput(studentstud[]);
friendvoidInsert(studentstud[]);
friendvoidWrite(studentstud[],intn);
friendintRead(studentstud[]);
private:
intnum;
charname[8];
charclass_0[20];
floatc_program;
floatenglish;
floatmath;
floataverage;
intorder;
}stud[100];
classManage:
publicstudent
{};
voidWrite(studentstud[],intn)//向文件中写入数据
{
fstreammyFile;
myFile.open("score.txt",ios:
:
out|ios:
:
binary);
if(!
myFile)
{
cout<<"score.txtcan'topen!
"< abort(); } intcount=n; myFile< for(inti=0;i<=count;i++) { myFile< } myFile.close(); } intRead(studentstud[])//从文件中读数据 { fstreammyFile; myFile.open("score.txt",ios: : in|ios: : binary); if(! myFile) { cout<<"score.txtcan'topen! "< abort(); } intcount; myFile.seekg(0); myFile>>count; for(inti=0;i<=count;i++) { myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].c_program>>stud[i].english>>stud[i].math>>stud[i].average; } myFile.close(); returncount; } voidInput(studentstud[])//---------------输入学生成绩 { system("cls");/*运行前清屏*/ inti=0; intflag; charsign; cout< while(sign! ='n'&&sign! ='N')/*判断*/ { cout<<"班级: ";/*交互输入*/ cin>>stud[i].class_0; loop: cout<<"学号: "; cin>>stud[i].num; intc=0; while(c { c++; if(stud[i].num==stud[i-c].num) { cout<<"你输入的学号已经存在! 请重新输入! "< gotoloop; } } cout<<"姓名: "; cin>>stud[i].name; do{ flag=0; cout<<"C++成绩: "; cin>>stud[i].c_program; if(stud[i].c_program>100||stud[i].c_program<1) cout<<"请输入1-100之间的数字! \n"; else flag=1; }while(flag==0); do{ flag=0; cout<<"英语成绩: "; cin>>stud[i].english; if(stud[i].english>100||stud[i].english<1) cout<<"请输入1-100之间的数字! \n"; else flag=1; }while(flag==0); do{ flag=0; cout<<"数学成绩: "; cin>>stud[i].math; if(stud[i].math>100||stud[i].math<1) cout<<"请输入1-100之间的数字! \n"; else flag=1; }while(flag==0); stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3; cout<<"平均分: "< cout<<"继续录入学生成绩? (y/n)"; cin>>sign;/*输入判断*/ i++; } Write(stud,i); } voidStatistic(studentstud[])//---------------统计学生数据 { system("cls");/*运行前清屏*/ intn=Read(stud); cout< cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"平均分"< for(inti=0;i cout< system("pause"); } voidLookup(studentstud[])//---------------查找学生成绩 {intp; cout<<"请选择1.按学号查找2.按姓名查找"< cin>>p; if(p==1) { system("cls");/*运行前清屏*/ intn=Read(stud); ints; inti=0; cout< cout<<"请输入查找学生的学号: "< cin>>s; while((stud[i].num-s)! =0&&i if(i==n) { cout<<"没有该学生的信息! "< } else { cout<<"---------------------------"< cout<<"班级: "< cout<<"学号: "< cout<<"姓名: "< cout<<"C++: "< cout<<"英语: "< cout<<"数学: "< cout<<"平均分: "< } } if(p==2) {system("cls");/*运行前清屏*/ intm=Read(stud); chart; inti=0; cout< cout<<"请输入查找学生的姓名: "< cin>>t; while(strcmp(stud[i].name-t,stud[i].name)==0&&i { cout<<"---------------------------"< cout<<"班级: "< cout<<"学号: "< cout<<"姓名: "< cout<<"C++: "< cout<<"英语: "< cout<<"数学: "< cout<<"平均分: "< } } } voidModify(studentstud[])//---------------修改学生成绩 { system("cls");/*运行前清屏*/ intn=Read(stud); ints,a;floatq; inti=0; cout< cout<<"输入修改成绩学生的学号: "< cin>>s; while((stud[i].num-s)! =0&&i if(i==n) { cout<<"没有该学生的成绩! "< } else { cout<<"----------该学生的信息----------\n"< cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"< cout<<"---------------------------------"< cout< cout<<"---------------------------------"< cout<<"请输入要修改的课程号"< cout<<"1.c语言2.英语3.数学"< cin>>a; cout<<"重新输入分数"< cin>>q; if(a==1)stud[i].c_program=q; if(a==2)stud[i].english=q; if(a==3)stud[i].math=q; stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3; cout<<"----------该学生的信息----------\n"< cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"< cout<<"---------------------------------"< cout< charc; cout<<"是否保存数据? (y/n)"< cin>>c; if(c! ='n'&&c! ='N') Write(stud,n); } } voidInsert(studentstud[])//---------------增加学生成绩 { system("cls");/*运行前清屏*/ intn=Read(stud); chars; cout< while(s! ='n'&&s! ='N') { cout<<"班级: "< cin>>stud[n].class_0; cout<<"学号: "; cin>>stud[n].num; cout<<"姓名: "; cin>>stud[n].name; cout<<"C++成绩: "; cin>>stud[n].c_program; cout<<"英语成绩: "; cin>>stud[n].english; cout<<"数学成绩: "; cin>>stud[n].math; stud[n].average=(stud[n].c_program+stud[n].english+stud[n].math)/3; cout<<"平均分"< n++; cout<<"插入成功! "< cout<<"是否继续输入(y/n)"< cin>>s; } Write(stud,n); } voidManage(studentstud[])//---------------按平均分对学生成绩记录项进行降序排序 { system("cls");/*运行前清屏*/ inti,j,k; floats; chart[20]; cout< intn=Read(stud); for(i=0;i for(j=0;j if(stud[j].average { strcpy(t,stud[j+1].class_0); strcpy(stud[j+1].class_0,stud[j].class_0); strcpy(stud[j].class_0,t); k=stud[j+1].num; stud[j+1].num=stud[j].num; stud[j].num=k; strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); s=stud[j+1].c_program; stud[j+1].c_program=stud[j].c_program; stud[j].c_program=s; s=stud[j+1].english; stud[j+1].english=stud[j].english; stud[j].english=s; s=stud[j+1].math; stud[j+1].math=stud[j].math; s=stud[j+1].average; stud[j+1].average=stud[j].average; stud[j].average=s; } cout<<"-------------------------------------"< cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<"\t"<<"名次"< for(i=0;i { stud[i].order=i+1; cout< } Write(stud,n); } voidOutput(studentstud[])//---------------显示全部学生成绩 { system("cls");/*运行前清屏*/ intn=Read(stud); cout<<"*****************显示班级学生成绩*****************\n"< if(! stud) cout<<"没有记录"; else { cout<<"-------------------------------------------------------------------------"< cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"< for(inti=0;i { cout< } cout<<"-------------------------------------------------------------------------"< } } intmenu()/*菜单函数*/ { charc; do { system("cls");/*运行前清屏*/ cout<<"*******************************************************\n"< cout<<"-----------------欢迎使用学生成绩管理系统-------------\n"< cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"< cout<<"*【1】输入学生成绩*"< cout<<"*【2】显示学生成绩*"< cout<<"*【3】查找学生成绩*"< cout<<"*【4】修改学生成绩*"< cout<<"*【5】插入学生成绩*"< cout<<"*【6】排列管理成绩*"< cout<<"*【7】显示班级学生成绩*"< cout<<"*【0】退出本系统*"< cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"< cout<<"请你选择(0-7): "< c=getchar();/*读入选择*/ } while(c<'0'||c>'8'); return(c-'0');/*返回选择*/ } voidmain()/*主函数*/ { for(;;) { switch(menu())/*选择判断*/ { case1: Input(stud);/*输入学生成绩*/ break; case2: Statistic(stud);/*输出学生统计数据*/ break; case3: Lookup(stud);/*查找学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case4: Modify(stud);/*修改学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case5: Insert(stud);/*增加学生成绩*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 成绩管理系统 源代码