《2022年C语言实现学生成绩管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言实现学生成绩管理系统 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实用标准文档大全学号102128121 武 汉 理 工 大 学 华 夏 学 院课 程 设 计 报 告 书课程名称:数据结构题目:用 C语言实现成绩统计程序的设计系名:信息工程系专业班级:软件工程 1121姓名:指导教师 :黄启荃 2013 年 6月 28日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 实用标准文档大全课程设计任务书设计题目:用C语言实现成绩统计程序的设计设计目的1. 巩固和加深课堂所学知识、学会分析研究数据对
2、象的特性及数据的组织方法;2. 选择合适的数据的逻辑结构和存储结构以及相应操作,实现一个班的成绩统计3. 提高程序设计能力、加强查阅、 运用资料的能力、算法分析与程序设计素质培养;设计任务(在规定的时间内完成下列任务)问题描述 给出 n 个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法:(1)输入每个人的各门课程的成绩,计算每人的平均成绩;(2)按平均成绩的高低次序,打印出出个人的名次,平均成绩相同的为同一名次;(3)按名次列出每个学生的姓名和各科成绩;基本要求学生的考试成绩必须通过键盘输入,且需对输出进行格式控制;算法提示可以用选择排序、冒泡排序等多种排序算法
3、求解;具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书;时间安排:6 月 24 日-28日第一天布置题目,确定任务、查找相关资料第二天第四天功能分析,编写程序,调试程序、运行系统;第五天程序验收、答辩;撰写设计报告。具体要求1. 课程设计报告按统一通用格式书写,具体内容如下: 设计任务与要求 总体方案与说明 软件主要模块的流程图 源程序清单与注释 问题分析与解决方案(包括调式报告, 即在调式过程中遇到的主要问题、解决方法及改进设想) ; 小结与体会附录:源程序(必须有简单注释) 使用说明 参考资料2每位学生应独立完成
4、各自的任务且每天至少在设计室工作半天;指导教师签名: 2013 年 6 月 22 日教研室主任(或责任教师)签名: 2013年 6 月 24 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 实用标准文档大全1. 设计题目及要求1.1 设计题目用 C语言实现成绩统计程序的设计。1.2 具体任务对学生信息 ( 包括学号、语文、数学、英语、 平均分 )进行管理 ,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 将学生
5、的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息, 要求用 C语言编写一个简单的成绩管理系统,可进行录入、 查询、 修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。2. 系统设计思想2.1 系统设计思想在编写成绩统计管理系统程序的过程中运用结构体,把问题中所涉及的变量定义在结构体中,利用函数来管理学生成绩,循环语句控制所选择的选择界面,case 语句进行选择。然后利用相关变量函数把学生成绩记录下来,利用循环语句再回到选择界面,利用查找函数,统计函数来查找统计学生成绩,利用冒泡排序法来对学生平均成绩进行排
6、序。然后按成绩高低对学生进行排名。2.2 系统算法设计2.2.1 系统模块结构图系统结构如图 2-1 所示结束开始菜单显示菜单选择输入退出输出保存查找排序统计插入删除图 2-1 系统结构图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 实用标准文档大全2.2.2 主函数流程图主函数如图 2-2 所示图 2-2 主函数流程图t=3 开始int num; char name20 ;int score3; float average
7、; 输入选择操作t=1 t=4 t=2 判断输入数结束输入信息输出信息选择排序法排序平均数查找插入数据按学号删除保存文件输出平均分成绩记载相应模块并进行处理名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 实用标准文档大全3. 系统调试与运行3.1 开发环境Visual C+6.0,Microsoft Windows XP 3.2 程序调试3.2.1 主界面调试选择界面如图 3-1 所示图 3-1 选择界面截图3.2.2 成绩录
8、入模块成绩录入界面录入界面如图 3-2 所示图 3-2 成绩录入模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 实用标准文档大全3.2.3 成绩查询模块成绩查询界面如图3-3 所示图 3-3 成绩查询模块3.2.4 成绩统计模块成绩统计界面如图3-4 所示图 3-4 成绩统计模块4. 设计评价与修改在数据结构课程设计过程中,许多知识点都没有学过,都要靠自己到课外的资料中去查找。在用的时候难免出现这样那样的错误。如开始设计出
9、来的菜单不是预想的那样,而是窗中出现混乱, 要经过自己一遍遍的调试与修改,和老师同学的帮助下逐渐改进完善,最后才渐渐的成型。运行的也基本达到所需要的运算要求。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - 实用标准文档大全5. 心得与体会回顾起此次课程设计,我感慨颇多,从拿到题目到完成整个编程,从理论到实践,在整整一个礼拜的日子里, 可以学到很多很多的东西, 同时不仅可以巩固了以前所学过的知识, 而且学到了很多在书本上所没有学
10、到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论, 才能真正为社会服务, 从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题, 可以说得是困难重重, 这毕竟第一次做的, 难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体。通过这次课程设计之后,一定把以前所学过的知识熟悉了, 本次课程设计结束了, 我们通过这次实践学到了许多知识。学到了设计一个简单的系统。要注意哪些方面。 也使我们知道自己哪些方面做得还
11、不够。这不仅是程序设计 , 更是锻炼我们处理问题的能力, 同时也使我们了解到团队合作的可贵 . 编写程序是件细心活 , 稍不留神就会出错 , 这就必须要求我们对待事情要认真 ! 在编写程序的过程中 , 错误不断出现 , 不同的类型 ( 如少写了一个符号 , 写错了字母 , 用错了函数等等 )层出不穷 , 这考验我们待事细心 , 耐心,能不能坚持到底 , 不能半途而废。每一次的课程设计都是一次对自己曾经学习知识的检验,通过每次的实践,使自己认识之前的不足与缺点, 利于以后的改正与今后学习的发展方向,希望每一次的课程设计都能有一个很好的提高参考文献1 詹春华李小艳黄启荃 ?计算机应用基础 ? 科学
12、出版社 2011.5 2 詹春华杨沙 ?C语言程序设计 ? 科学出版社2011.8 3 谭浩强C语言程序设计北京清华大学出版社,2000年1月。4 徐孝凯魏荣 ?数据结构? 机械工业出版社? 1996 年5 徐孝凯 ?数据结构简明教程 ? 清华大学出版社? 1995 年6 陈文博朱青 ?数据结构与算法 ? 机械工业出版社? 1996 年名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 实用标准文档大全附录:程序代码#includ
13、e #include #include #define MAXN 35 #define MAX_NAME 256 typedef struct student /学生信息 int no; char nameMAX_NAME; double Chinese; double math; double English; double mark_ave; double mark_tot; STUDENT; /*-输入信息子程序 -*/ void input(STUDENT *data, int *len) int no; putchar(n); printf(%sn, 请输入新的记录,如果需要退出当前
14、菜单请输入-1.); printf(%sn, 格式: n 学号n); printf(%sn, 姓名 语文 数学 英语); putchar(n); printf(如:n); printf(1n); printf(小明 93 95 89n); scanf(%d, &no); while(no != -1) data*len.no = no; scanf(%s %lf %lf %lf, data*len.name, &data*len.Chinese, &data*len.math,&data*len.English); data*len.mark_ave=(data*len.Chinese+dat
15、a*len.math+data*len.English)/3.0; data*len.mark_tot=data*len.Chinese+data*len.math+data*len.English; (*len)+; scanf(%d, &no); /*-输出信息子程序 -*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - 实用标准文档大全void output(STUDENT *data, int len) int i;
16、 system(cls); printf(%8s, 学号); printf(%8s, 姓名); printf(%8s, 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分 ); printf(%10s, 总分); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); for (i = 0; i len; i+) printf(%8d, datai.no); printf(%8s, datai.name); printf(%8.1lf, datai.Chinese); pri
17、ntf(%8.1lf, datai.math); printf(%10.1lf, datai.English); printf(%12.1lf, datai.mark_ave); printf(%10.1lf, datai.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键继续 .); getchar(); getchar(); /*-排序子程序 -*/ void sort(STUDENT *data, int len) int i,j,k; STUDENT temp; for (i=0
18、; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_ave) k=j; if (k != i) temp = datai; datai = datak; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - 实用标准文档大全datak = temp; /*-搜索子程序 -*/ void find(STUDENT *data, int len) int find_no, result ; int i
19、; 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 = len ) printf(%sn, 未查询到相关信息 ); goto lab; else system(cls); printf(%sn, 查询信息如下: ); for (i =0; i 80; i+) putchar(=); putchar
20、(n); printf(%8s, 学号); printf(%8s, 姓名); printf(%8s, 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分 ); printf(%10s, 总分); putchar(n); printf(%8d, dataresult.no); printf(%8s, dataresult.name); printf(%8.1lf, dataresult.Chinese); printf(%8.1lf, dataresult.math); printf(%10.1lf, dataresult.Engli
21、sh); printf(%12.1lf, dataresult.mark_ave); printf(%10.1lf, dataresult.mark_tot); putchar(n); for (i =0; i 80; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - 实用标准文档大全 putchar(=); putchar(n); goto lab; /*-插入子程序 -*/ void insert(STUDENT
22、*data, int *len) int no, pos; double Chinese, math, English, mark_ave, mark_tot; int i; char nameMAX_NAME; lab: printf(%sn, 输入新的记录,退出当前菜单请输入-1.); printf(%sn, 格式:学号 ); printf(%sn, 姓名 语文 数学 英语); scanf(%d, &no); if (no = -1) return; data*len.no = no; scanf(%s %lf %lf %lf, name, &Chinese, &math, &Englis
23、h); mark_ave=(Chinese+math+English)/3.0; mark_tot=Chinese+math+English; pos = 0; while (datapos.mark_ave mark_ave) & (pos = pos; i-) datai+1 = datai; datapos.no = no; strcpy(datapos.name, name); datapos.Chinese = Chinese; datapos.math = math; datapos.English = English; datapos.mark_ave = mark_ave; d
24、atapos.mark_tot = 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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - 实用标
25、准文档大全 if (no = -1) return; while( (datapos.no != no) & (pos = *len) printf(%sn, 未找到需要删除的学生 ); goto lab; else for (i = pos+1;i *len; i+) datai-1 = datai; *len = *len -1; if (*len = 0) printf(%sn, 没有任何记录, 请按回车键返回 .); getchar(); getchar(); return; goto lab; /*-统计子程序 -*/ void stat(STUDENT *data, int len
26、) int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i; for (i = 0;i len; i+) if (datai.mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+; else if (datai.mark_ave =79) no_79+; else if (datai.mark_ave = 89) no_89+; else no_100+; system(cls); for (i =0; i 80; i+) putchar(=); putchar(n); pri
27、ntf(%10s, 分数); printf(%10s, 0-59); printf(%10s, 60-69); printf(%10s, 70-79); printf(%10s, 80-89); printf(%10s, 90-100); putchar(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - 实用标准文档大全 putchar(n); printf(%10s, 学生); printf(%10d, no_59)
28、; printf(%10d, no_69); printf(%10d, no_79); printf(%10d, no_89); printf(%10d, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键返回 ); getchar(); getchar(); /*-显示信息子程序 -*/ void paint() int i; system(cls); printf(%55sn, 武汉理工大学华夏学院学生成绩管理系统n); printf( 制作者 : 武汉理工大学华夏学院软件1121 班钟
29、伟 n); for (i = 0; i 80; i+) putchar(=); putchar(n); printf( 1 输入信息 2 输出信息 n); printf( 3 按平均分排序 4 按学号查找 n); printf( 5 插入 6 按学号删除 n); printf( 7 按平均分输出统计信息 8 保存到文件 n); printf( 0 退出n); for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(%sn, 请输入各操作对应的序号:); void save(STUDENT *data, int len)/将数据保存到文件 in
30、t i; FILE *fp; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - 实用标准文档大全fp=fopen( 成绩统计表 .txt,w); fprintf(fp,%8s, 学号); fprintf(fp,%8s, 姓名); fprintf(fp,%8s, 语文); fprintf(fp,%8s, 数学); fprintf(fp,%10s, 英语); fprintf(fp,%12s, 平均分 ); fprintf(fp,%
31、10sn, 总分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no); fprintf(fp,%8s, datai.name); fprintf(fp,%8.1lf, datai.Chinese); fprintf(fp,%8.1lf, datai.math); fprintf(fp,%10.1lf, datai.English); fprintf(fp,%12.1lf, datai.mark_ave); fprintf(fp,%10.1lfn, datai.mark_tot); fpri
32、ntf(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) switch(ctrl_ch) case 1: input(data, &len); break; case 2: output(data, len); 名师资料总结 - - -精品资料欢迎下载 - - - - - -
33、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 实用标准文档大全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, len); break; defa
34、ult: if (ctrl_ch != n) printf(%sn, 输入错误 !); break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl_ch); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - 实用标准文档大全设计过程中质疑(或答辩)记载:1提问:数据在程序中是怎样存储的?答:数据是以数组的形式存储在结构体数组中。2提问:怎样实现由用户自己选择学生个数和科目数?答:通过改变宏定义所定义的数目来改变,或者通过输入语句来由用户自己确定。指导教师评语:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 实用标准文档大全签名: 2013年 7 月 1 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -