《2022年C++学生成绩管理系统 2.pdf》由会员分享,可在线阅读,更多相关《2022年C++学生成绩管理系统 2.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学生成绩管理系统湖北工业大学(计算机系课程设计题目)#include /* 引用库函数 */ #include #include #include #include typedef struct char class_020; /* 班级 */ int number; /* 学号*/ char name20; /* 姓名 */ float electrics; /* 电子技术成绩*/ float c_program; /*C+ 语言成绩 */ float multimedia; /* 多媒体技术成绩*/ float english; /* 大学英语成绩*/ float math; /* 高等数
2、学成绩*/ float sport; /* 体育成绩 */ float polity; /* 马克思主义政治经济学*/ float summary; /* 总分 */ float average; /* 平均分 */ Student; Student stu100; /* 结构体数组变量*/ int menu() /* 菜单函数 */ char c; do system(cls); /* 运行前清屏 */ cout*学生成绩管理系统*endl;/*菜单选择 */ cout 【1】输入数据 endl; cout 【2】显示所有数据endl; cout 【3】按平均分降序排列endl; cout
3、【4】查找并显示一组数据endl; cout 【5】插入一组数据endl; cout 【6】修改一组数据endl; cout 【7】删除一组数据endl; cout 【8】从文件中读入数据endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - cout 【9】将所有记录写入文件endl; cout 【0】退出本系统nendl; cout*作者: 07 网络一班3207001349*endl; cout 请你选择操作 (0-
4、9):endl; c=getchar(); /* 读入选择 */ while(c9); return(c-0); /* 返回选择 */ int Input(Student stud,int n) /*输入若干条记录*/ int i=0; char sign,x10; /*x10为清除多余的数据所用*/ while(sign!=n&sign!=N) /*判断 */ coutstudn+i.class_0; coutstudn+i.number; coutstudn+i.name; coutstudn+i.electrics; coutstudn+i.c_program; coutstudn+i.
5、multimedia; coutstudn+i.english; coutstudn+i.math; coutstudn+i.sport; coutstudn+i.polity; studn+i.summary=studn+i.electrics+studn+i.c_program+studn+i.multimedia+studn+i.english+studn+i.math+studn+i.sport+studn+i.polity; studn+i.average=studn+i.summary/7; cout 该学生的总分为:studn+i.summary 平均分为: studn+i.av
6、erageendl; gets(x); /* 清除多余的输入*/ cout 提示:继续写入成绩?(Y/N); cinsign; /* 输入判断 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - i+; return(n+i); void Display(Student stud,int n) /*显示所有记录*/ int i; if(!stud)cout 没有记录 ; else cout-endl; /*格式头 */ co
7、ut 班别学号姓名电子C+ 多媒体英语 数学体育政治总分平均分endl; cout-endl; for(i=1;in+1;i+) /*循环输入 */ studi-1.summary=studi-1.electrics+studi-1.c_program+studi-1.multimedia+studi-1.english+ studi-1.math+studi-1.sport+studi-1.polity; studi-1.average=studi-1.summary/7; coutstudi-1.class_0 studi-1.number studi-1.name studi-1.ele
8、ctrics studi-1.c_program studi-1.multimedia studi-1.english studi-1.math studi-1.sport studi-1.polity studi-1.summary studi-1.averageendl; couttttendl; system(pause); void Sort(Student stud,int n) /*按平均分排序 */ int i,j,k; float s; char t20; for(i=0;in-1;i+) /*冒泡法排序 */ for(j=0;jn-1-i;j+) if(studj.avera
9、gestudj+1.average) strcpy(t,studj+1.class_0); strcpy(studj+1.class_0,studj.class_0); strcpy(studj.class_0,t); k=studj+1.number; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - studj+1.number=studj.number; studj.number=k; strcpy(t,studj+1.n
10、ame); strcpy(studj+1.name,studj.name); strcpy(studj.name,t); s=studj+1.electrics; studj+1.electrics=studj.electrics; studj.electrics=s; s=studj+1.c_program; studj+1.c_program=studj.c_program; studj.c_program=s; s=studj+1.multimedia; studj+1.multimedia=studj.multimedia; studj.multimedia=s; s=studj+1.
11、english; studj+1.english=studj.english; studj.english=s; s=studj+1.math; studj+1.math=studj.math; studj.math=s; s=studj+1.sport; studj+1.sport=studj.sport; studj.sport=s; s=studj+1.polity; studj+1.polity=studj.polity; studj.polity=s; s=studj+1.summary; studj+1.summary=studj.summary; studj.summary=s;
12、 s=studj+1.average; studj+1.average=studj.average; studj.average=s; cout-endl; /*格式头 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - cout 班别学号姓名电子C+ 多媒体英语 数学体育政治总分平均分endl; cout-endl; for(i=1;in+1;i+) /*循环输入 */ studi-1.summary=studi-1.el
13、ectrics+studi-1.c_program+studi-1.multimedia+studi-1.english+ studi-1.math+studi-1.sport+studi-1.polity; studi-1.average=studi-1.summary/7; coutstudi-1.class_0studi-1.numberstudi-1.namestudi-1.electricsstudi-1.c_programstudi-1.multimediastudi-1.english studi-1.mathstudi-1.sportstudi-1.politystudi-1.
14、summarystudi-1.averageendl; int Insert(Student stud,int n) /*插入一条记录 */ char x10; /* 清除多余输入所用*/ cout 请输入学生的班别:studn.class_0; coutstudn.number; coutstudn.name; coutstudn.electrics; coutstudn.c_program; coutstudn.multimedia; coutstudn.english; coutstudn.math; coutstudn.sport; coutstudn.polity; studn.su
15、mmary=studn.electrics+studn.c_program+studn.multimedia+studn.english+ studn.math+studn.sport+studn.polity; studn.average=studn.summary/7; gets(x); n+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - Sort(stu,n); /* 调用排序函数*/ cout 提示:插入成功!en
16、dl; /* 返回成功信息*/ return(n); int Delete(Student stud,int n) /* 按学号查找,删除一条记录*/ int s; int i=0,j; cout输入需要删除学生的学号:s; while(studi.number-s)!=0&in) i+; /*查找判断 */ if(i=n) cout 提示:对不起,无法找到改学号 endl; /* 返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作 */ strcpy(studj.class_0,studj+1.class_0); studj.number=studj+1.
17、number; strcpy(studj.name,studj+1.name); studj.electrics=studj+1.electrics; studj.c_program=studj+1.c_program; studj.multimedia=studj+1.multimedia; studj.english=studj+1.english; studj.math=studj+1.math; studj.sport=studj+1.sport; studj.polity=studj+1.polity; cout 提示:已成功删除!endl; /* 返回成功信息*/ return(n
18、-1); void Search(Student stud,int n) /* 查找并显示一个记录*/ int s; int i=0; cout输入需要查找学生的学号:s; while(studi.number-s)!=0&in) i+; /*查找判断 */ if(i=n) cout 提示:对不起,无法找到该学生的信息!endl; /* 输入失败信息 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - return; cou
19、t-endl; cout班别 :studi.class_0endl; /* 输出该学生信息*/ cout学号 :studi.numberendl; cout 姓名 :studi.nameendl; cout 电子技术 :studi.electricsendl; coutC+ 程序设计 :studi.c_programendl; cout 多媒体技术 :studi.multimediaendl; cout大学英语 :studi.englishendl; cout 高等数学 :studi.mathendl; cout 大学体育 :studi.sportendl; cout马克思主义政治经济学:st
20、udi.polityendl; cout 总分 :studi.summaryendl; cout 平均分 :studi.averageendl; void Modify(Student stud,int n) int s; int i=0; cout 输入需要修改成绩学生的学号:s; while(studi.number-s)!=0&in) i+; /*查找判断 */ if(i=n) cout 提示:对不起,无该学生的成绩 endl; /* 输入失败信息*/ return; cout-该学生的信息-endl; /*格式头*/ cout 班别学号姓名电子C+ 多媒体英语 数学体育政治总分平均分e
21、ndl; cout-endl; studi.summary=studi.electrics+studi.c_program+studi.multimedia+studi.english+ studi.math+studi.sport+studi.polity; studi.average=studi.summary/7; coutstudi-1.class_0studi-1.numberstudi-1.namestudi-1.electricsstudi-1.c_programstudi-1.multimediastudi-1.english studi-1.mathstudi-1.sport
22、studi-1.politystudi-1.summarystudi-1.averageendl; cout 请输入学生的班别:studn+i.class_0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - cout 请输入学生的学号:studn+i.number; cout 请输入学生的姓名:studn+i.name; cout 请输入该学生电子技术的成绩:studn+i.electrics; cout 请输入该学生C+程
23、序设计的成绩:studn+i.c_program; cout 请输入该学生多媒体技术的成绩:studn+i.multimedia; cout 请输入该学生大学英语的成绩:studn+i.english; cout 请输入该学生高等数学的成绩:studn+i.math; cout 请输入该学生大学体育的成绩:studn+i.sport; cout 请输入该学生马克思主义政治经济学的成绩:studn+i.polity; studi.summary=studi.electrics+studi.c_program+studi.multimedia+studi.english+studi.math+st
24、udi.sport+studi.polity; studi.average=studi.summary/7; cout 该学生的总分为:studi.summary 平均分为: studi.average; int Read(Student stud,int n) /* 从文件中读入数据*/ int i=0,num; FILE *fp; /*定义文件指针*/ char filename20; /* 定义文件名 */ cout 输入文件名 :filename; /* 输入文件名 */ if(fp=fopen(filename,rb)=NULL) /*打开文件 */ cout 提示:无法打开这个文件
25、!endl; /* 打开失败信息 */ coutttt; system(pause); return(n); fscanf(fp,%d,&num); /*读入总记录量*/ while(inum) /* 循环读入数据*/ fscanf(fp,%s%d%s%f%f%f%f%f%f%f%f%f,studn+i.class_0,&studn+i.number,studn+i.na名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - me,&
26、studn+i.electrics,&studn+i.c_program,&studn+i.multimedia,&studn+i.english,&studn+i.math,&studn+i.sport,&studn+i.polity,&studn+i.summary,&studn+i.average); i+; n+=num; fclose(fp); /* 关闭文件 */ cout 提示:读入数据成功,可选择【显示所有成绩】查看endl; coutttt; system(pause); return(n); void Save(Student stud,int n) /* 将所有记录写入文
27、件*/ int i=0; FILE *fp; /*定义文件指针*/ char filename20; /* 定义文件名 */ coutfilename; if(fp=fopen(filename,w)=NULL) /*打开文件 */ cout 提示:无法打开这个文件!endl; system(pause); return; fprintf(fp,%dn,n); /*循环写入数据*/ while(in) fprintf(fp,%-8s%-8d%-6s%-6.1f%-7.1f%-7.1f%-6.1f%-6.1f%-6.1f%-7.1f%-8.1f%-6.2n,studi.class_0,studi
28、.number,studi.name,studi.electrics,studi.c_program,studi.multimedia,studi.english, studi.math,studi.sport,studi.polity,studi.summary,studi.average); i+; fclose(fp); /* 关闭文件 */ cout 提示:已成功写入数据!endl; /* 返回成功信息*/ void main() /* 主函数 */ int n=0; for(;) switch(menu() /* 选择判断 */ 名师资料总结 - - -精品资料欢迎下载 - - -
29、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - case 1: coutendl 输入成绩=endl; /* 输入若干条记录*/ n=Input(stu,n); break; case 2: coutendl 显示所有记录=endl; /* 显示所有记录*/ Display(stu,n); break; case 3: coutendl 按平均分降序排列=endl; Sort(stu,n); /* 按学号排序 */ cout 排序成功! endl; coutttt; system
30、(pause); break; case 4: coutendl 查找并显示一组成绩=endl; Search(stu,n); /*插入一条记录*/ coutttt; system(pause); break; case 5: coutendl 插入一组成绩=endl; n=Insert(stu,n); /* 按姓名查找,删除一条记录*/ coutttt; system(pause); break; case 6: coutendl 修改一组成绩=endl; Modify(stu,n); /* 查找并显示一个记录*/ coutttt; system(pause); break; case 7:
31、 coutendl 删除一组成绩=endl; n=Delete(stu,n); /* 查找并显示一个记录*/ coutttt; system(pause); break; case 8: coutendl 从文件中读入数据=endl; n=Read(stu,n); /* 循环读出数据*/ break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - case 9: coutendl 将所有记录写入文件=endl; Save(stu,n); /*循环写入数据*/ coutttt; system(pause); break; case 0: coutendl 谢谢您的使用!=endl; /* 结束程序 */ coutttt; system(pause); exit(0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -