版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩管理系统 课程设计报告 编写人:吕迷 同组成员: 刘帅 等进行设计管理。 1)对学生信息 学号,姓名,三门课程成绩)的输入、输出。 2)计算各个学生的总分及平均分,并按平均分排出名次。 3)统计全班学生平均分成绩,输出 60分以下、6079 8089 90分以 上各分数人数。 4)能按学号、姓名查询学生成绩,并能输出学生的成绩单。 来实现此操 作。 2、成绩输出模块:输出学生的信息以及成绩 void output(STUDENT *data, int len :通过学生的姓名来查看学生的相关成绩,同时也可以分别通过 caverage( 、maverage( 、eaverage( 和 c
2、omaverage( 来输出成绩的 平均分数、最高和最低分数。 3、 成绩查询模块:可用 void fin d(STUDENT *data, i nt le n来实现。 找到就输出此学生全部信息。 4、 删除模块:用函数 void delete_item(STUDENT *data, int *len来实 现 5、排序模块:用函数 void sort(STUDENT *data, int len 来实现 6、统计功能能:用函数 void stat(STUDENT *data, int len 来实现 7、退出系统:可用一个函数exit+ vvjin ivli Mhww w| wwa 严严 Ik
3、? c语言 平均分 3? - o 8 2 4 1443 8 7 8 Q Q- 多定蛊规 V据M 艰w 丄54.型3 按回车键继续- 选择4查找 LI flLWI LriT 盲 LJ kJ kJ L/U4 英语 数学 c语訂 平均分 总分 38.0 82.0 ?1.0 63-7 191.0 82.0 73 _M 84.0 79-7 239.0 眦0 72 .电 H3.0 盹.3 241 .0 67.0 83.0 30 8 0 243 0 78.01 93.0 94.0 88.3 2GS.8 伽0 ?2-0 93-0 94.3 283.0 甲方i 选择7按平均分输出统计信息 选择8保存 找除件 息
4、查删文 信号号到 保 24 6 E 均分输岀统计信息 13 5 7 0 幘输入各操作对应的序号: A件已保存到成绩统计表 学号 姓名 英语 数学 C语言 平均分 总分 5父定金 38.0 82.0 71.0 63”? 19L0 4根据提供 82.0 73.0 S4.0 79.7 239.0 9 等会 Sfi.O 92.0 63.0 S0.3 241.0 S甲方i 67.0 S3.0 93.0 S1.0 243.0 2恢复如何 7S.0 93.0 54.0 SS.3 265.0 3 赦划 98.0 92.0 93.0 94.3 283.0 选择0退出 六、源程序代码 #i nclude 学生信息
5、 #in elude #i nclude #defi ne MAXN 35 #defi ne MAX_NAME 256 typedef struct stude nt / int no 。 char nameMAX_NAME double en glish。 double math。 double Programming。 double mark_ave。 double mark tot 。 STUDENT。 /* 输入信息子程序 */ void input(STUDENT *data, int *len int no 。 putchar(n 。 printf(%sn, 请输入新的记录,如果需
6、要退出当前菜单请输入 。 printf(%sn,格式:n 学号n。 printf(%sn, 姓名 英语 数学 C 语言。 putchar(n 。 printf(如:n 。 printf(5n 。 printf( 李华 100 100 100n。 scanf(%d, &no 。 while(no != -1 data*len.no = no 。 scanf(%s %lf %lf %lf,data*, &data*len.english, &data*len.math,&data*len.Programming。 data*len.mark_ave=(data*len.englis
7、h+data*len.math+data*l en.Programming/3.0 。 data*len.mark_tot=data*len.english+data*len.math+data*le n.Programming 。 (*len+ 。 scanf(%d, &no 。 /* 输出信息子程序 */ void output(STUDENT *data, int len int i 学号。 姓名。 英语。 数学。 C语言。 平均分 总分 。 。 i 80 。 i+ i system(cls printf(%8s, printf(%8s, printf(%8s, printf(%8s,
8、printf(%10s, printf(%12s, printf(%10s, putchar(n for (i =0。 putchar(= putchar(n for (i = 0。 printf(%8d, datai.no 。 printf(%8s, 。 printf(%8.1lf, datai.english 。 printf(%8.1lf, datai.math 。 printf(%10.1lf, datai.Programming。 printf(%12.1lf, datai.mark_ave。 printf(%10.1lf, datai.mark_tot。 pu
9、tchar(n 。 for (i =0 。 i putchar(= 。 putchar(n 。 printf( 按回车键继续 . 。 getchar( 。 getchar( 。 /* 排序子程序 */ void sort(STUDENT *data, int len int i,j,k 。 STUDENT temp。 for (i=0 。 i for (k=i, j=i+1 。 j if (datak.mark_ave dataj.mark_ave k=j。 if (k != i temp = datai 。 datai = datak。 datak = temp 。 /* 搜索子程序 */
10、void find(STUDENT *data, int len int find_no, result。 int i 。 lab: result=0 。 printf(%sn, 请输入需要查找的学生的学号,退出当前菜单 请输入 -1 . 。 scanf(%d, &find_no 。 if (find_no = -1 return 。 /*exit the fine sub program*/ while( dataresult.no != find_no & result result + if (result = len printf(%sn, 未查询到相关信息 。 goto lab 。
11、else system(cls 。 printf(%sn, 查询信息如下: 。 for (i =0 。 i putchar(= 。 putchar(n 。 printf(%8s, 学号 。 printf(%8s, 姓名 。 printf(%8s, 英语 。 printf(%8s, 数学 。 printf(%10s, C语言 。 printf(%12s, 平均分 。 printf(%10s, 总分 。 putchar(n 。 printf(%8d, dataresult.no。 printf(%8s, 。 printf(%8.1lf, dataresult.eng
12、lish printf(%8.1lf, dataresult.math printf(%10.1lf, dataresult.Programming printf(%12.1lf, dataresult.mark_ave printf(%10.1lf, dataresult.mark_tot putchar(n 。 for (i =0 。 i putchar(= 。 putchar(n 。 goto lab 。 /* 插入子程序 */ void insert(STUDENT *data, int *len int no, pos 。 double english, math, Programm
13、ing, mark_ave, mark_tot int i 。 char nameMAX_NAME。 lab: printf(%sn, 输入新的记录,退出当前菜单请输入 -1. printf(%sn, printf(%sn, scanf(%d, &no 格式:学号 。 姓名 英语 数学 C 语言 if (no = -1 return。 data*len.no = no 。 scanf(%s %lf %lf %lf, name, &english, &math, &Programming。 mark_ave=(english+math+Programming/3.0 。 mark_tot=eng
14、lish+math+Programming 。 pos = 0 。 while (datapos.mark_ave & (pos pos + 。 for (i = *len-1。 i = pos 。 i- datai+1 = datai 。 datapos.no = no 。 strcpy(, name 。 datapos.english = english。 datapos.math = math 。 datapos.Programming = Programming 。 datapos.mark_ave = mark_ave 。 datapos.mark_tot =
15、 mark_tot。 (*len+ 。 goto lab 。 /* 删除子程序 */ void delete_item(STUDENT *data, int *len int no, i, pos 。 lab: pos=0 。 printf(%sn, 输入需要删除的学生的学号,退出当前菜单请 输入 -1. 。 scanf(%d, &no 。 if (no = -1 return。 while( (datapos.no != no & (pos pos = pos +1。 if (pos = *len printf(%sn, 未找到需要删除的学生 。 goto lab 。 else for (i
16、 = pos+1 。 i datai-1 = datai 。 *len = *len -1 。 if (*len = 0 printf(%sn, 没有任何记录,请按回车键返回 . 。 getchar( 。 getchar( 。 return goto lab 。 /* 统计子程序 */ void stat(STUDENT *data, int len int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0 int i 。 for (i = 0。 i if (datai.mark_ave no_59+ 。 else if (datai.mark_ave
17、no_69+ 。 else if (datai.mark_ave no_79+ else if (datai.mark_ave no_89+ else no_100+ 。 system(cls 。 for (i =0 。 i putchar(= 。 putchar(n 。 printf(%10s, 分数 。 printf(%10s, 0-59。 printf(%10s, 60-69。 printf(%10s, 70-79。 printf(%10s, 80-89。 printf(%10s, 90-100。 putchar(n 。 putchar(n 。 printf(%10s, 学生 。 pri
18、ntf(%10d, no_59。 printf(%10d, no_69。 printf(%10d, no_79。 printf(%10d, no_89。 printf(%10d, no_100 。 putchar(n 。 for (i =0 。 i putchar(= 。 putchar(n 。 printf( 按回车键返回 。 getchar( 。 getchar( 。 /* 显示信息子程序 */ void paint( int i 。 system(cls 。 printf(%55sn, 学生管理系统 n 。 putchar(n printf( 。 1 输入信息 2 息 n 。 print
19、f( 3 按平均分排序 4 查找 n 。 printf( 5 插入 6 删除 n 。 printf( 7 按平均分输出统计信息 文件 n 。 printf( 0 退出 n 。 for (i = 0 。 i for (i = 0。 i putchar(= 。 8 putchar(= 。 putchar(n 。 printf(%sn, 请输入各操作对应的序号 : 输出信 按学号 按学号 保存到 void save(STUDENT *data, int len/将数据保存到文件 int i 。 FILE *fp 。 fp=fopen( 成绩统计表 .txt,w fprintf(fp,%8s, 学号。
20、 fprintf(fp,%8s, 姓名。 fprintf(fp,%8s, 英语。 fprintf(fp,%8s, 数学。 fprintf(fp,%10s, C 语言 fprintf(fp,%12s, 平均分 fprintf(fp,%10sn, 总分 fprintf(fp,= =n。 putchar(n 。 for (i = 0。 i fprintf(fp,%8d, datai.no fprintf(fp,%8s, fprintf(fp,%8.1lf, datai.english 。 fprintf(fp,%8.1lf, datai.math 。 fprintf(fp,%1
21、0.1lf, datai.Programming 。 fprintf(fp,%12.1lf, datai.mark_ave 。 fprintf(fp,%10.1lfn, datai.mark_tot 。 fprintf(fp,= =n。 fclose(fp 。 printf( 文件已保存到 成绩统计表 .txt 。 getchar( 。 getchar( 。 /* 主程序 */ void main( STUDENT dataMAXN。 int len = 0。 char ctrl_ch 。 paint( 。 scanf(%c, &ctrl_ch 。 while (ctrl_ch != 0 sw
22、itch(ctrl_ch case 1: input(data, &len 。 break。 case 2: output(data, len 。 break。 case 3: sort(data, len 。 break。 case 4: find(data, len 。 break。 case 5: insert(data, &len 。 break。 case 6: delete_item(data, &len 。 break。 case 7: stat(data, len 。 break。 case 8: save(data, le n 。 break。 default: if (ctrl_ch != n printf(%sn,输入错误!。 break。 if (ctrl_ch != n pain t(。 sca nf(%c, & ctrl_ch。 七、课程设计心得 刘帅杰:我们小组的课题是学生成绩管理系统,而我负责整个系统的整体步骤的 划分。,在这次的实验中,在收获知识的同时,还收获了阅历,收获了成熟, 在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养 了独立思考、动手操作的能力,在各
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国科学院科技战略咨询研究院网络与传播中心2022招聘模拟试题及答案解析1
- 上海市西南位育中学2026届高三3月高考适应性调研考试英语试题试卷含解析
- 2026年山东省泰安市高三高考英语试题系列模拟卷(4)含解析
- 安徽省铜陵市联考铜陵一中、池州一中、浮山中学2026年高三第三次联考语文试题文试题含解析
- 河北省石家庄市行唐县三中2025-2026学年高三下学期高中等级考质量抽测英语试题试卷含解析
- 河北省唐山市五校2026年高三期中考试物理试题含解析
- 2026年湖北省武汉市外国语学校第二学期高三教学质量检测试题英语试题试卷含解析
- 建筑施工安全防护规范手册
- 2025福建泉州全智慧生活服务有限公司招聘8人笔试历年常考点试题专练附带答案详解
- 2025福建三明城发绿城物业服务有限公司人员招聘2人笔试历年难易错考点试卷带答案解析2套试卷
- 2026高考数学复习高效培优专题2.4 导数与三角函数的综合(解析版)
- GB/T 19683-2025轨道式集装箱门式起重机
- 黄体破裂与异位妊娠的护理鉴别
- 2025青海省烟草专卖局(公司)高校毕业生招聘50人(公共基础知识)综合能力测试题附答案
- 【MOOC】《土壤学》(浙江大学)章节期末慕课答案
- 无锡纺织印染知识培训课件
- 首届全国行业职业技能竞赛(电力交易员)大赛考试题库-中(多选题)
- 中国-东盟自由贸易区:建设历程、发展现状、挑战与突破路径
- 2025年自动驾驶汽车与智能交通系统协同发展研究报告
- 祠堂建设项目可行性研究报告
- 小学四年级语文上册阅读理解(15篇)
评论
0/150
提交评论