C语言实现学生成绩管理系统_第1页
C语言实现学生成绩管理系统_第2页
C语言实现学生成绩管理系统_第3页
C语言实现学生成绩管理系统_第4页
C语言实现学生成绩管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号武汉理工大学华夏学院课程设计报告书课程名称:数据结构题 目:用C语言实现成绩统计程序的设计系 名:信息工程系专业班级:软件工程1121姓 名:指导教师:黄启荃2021 年 6 月 2课程设计任务书设计题目:用c语言实现成绩统计程序的设计 设计目的1,稳固和加深课堂所学知识、学会分析研究数据对象的特性及数据的组织方法;2 .选择适宜的数据的逻辑结构和存储结构以及相应操作,实现一个班的成绩统计3 .提升程序设计水平、 增强查阅、运用资料的水平、 算法分析与程序设计素质培养;设计任务 (在规定的时间内完成以下任务)问题描述给出n个学生的m门课程的测试成绩信息,每条信息由姓名、课程 代号与分数组成

2、,要求设计算法:(1)输入每个人的各门课程的成绩,计算每人的平均成绩;(2)按平均成绩的上下次序,打印出出个人的名次,平均成绩相同的为同一名次;(3)按名次列出每个学生的姓名和各科成绩;根本要求学生的测试成绩必须通过键盘输入,且需对输出进行格式限制;算法提示可以用选择排序、冒泡排序等多种排序算法求解;具体要完成的任务是:A.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果.8. 写出标准的课程设计报告书;时间安排:6月24日-28日第f布置题目,确定任务、查找相关资料第二天第四天功能分析,编写程序,调试程序、运行系统;第五天程序验收、辩论;撰写设计报告.具体要求1 .课程设计报

3、告按统一通用格式书写,具体内容如下:设计任务与要求总体方案与说明 软件主要模块的流程图源程序清单与注释问题分析与解决方案包括调式报告,即在调式过程中遇到的主要问题、解决方法及改 进设想;小结与体会附录:源程序必须有简单注释使用说明 参考资料2 .每位学生应独立完成各自的任务且每天至少在设计室工作半天; 指 导 教 师 签 名: 2021 年6月22日 教研室主任或责任教师签名:2021 年6月24日1 .设计题目及要求1.1 设计题目用C语言实现成绩统计程序的设计.1.2 具体任务对学生信息包括学号、语文、数学、英语、平均分进行治理,包括学生成 绩的信息输入、输出、查询、删除、排序、统计、退出

4、.将学生的成绩信息进行记录,信息内容包含:1学生的学号2学生的姓名3学生的成绩.假 设,现收集到了一个班学生的所有成绩信息, 要求用C语言编写一个简单的成绩 治理系统,可进行录入、查询、修改和浏览等功能.学习相关开发工具和应用软 件,熟悉系统建设过程.2 .系统设计思想2.1 系统设计思想在编写成绩统计治理系统程序的过程中运用结构体,把问题中所涉及的变 量定义在结构体中,利用函数来治理学生成绩,循环语句限制所选择的选择界面, case语句进行选择.然后利用相关变量函数把学生成绩记录下来,利用循环语 句再回到选择界面,利用查找函数,统计函数来查找统计学生成绩,利用冒泡排 序法来对学生平均成绩进行

5、排序.然后按成绩上下对学生进行排名.2.2 系统算法设计2.2.1 系统模块结构图系统结构如图2-1所示2.2.2主函数流程图主函数如图2-2册审int num; char name20 ; int score3;float average;厂/输入选择操作遢裁2目座麒块箱进行处理3.系统调试与运行输出小均 分成绩3.1 开发环境Visual C+6.0 , Microsoft Windows XP3.2 程序调试3.2.1 主界面调试选择界面如图3-1所示图3-1选择界面截图3.2.2 成绩录入模块成绩录入界面录入界面如图3-2所示图3-2 成绩录入模块3.2.3 成绩查询模块成绩查询界面如

6、图3-3所示图3-3 成绩查询模块3.2.4 成绩统计模块成绩统计界面如图3-4所示图3-4成绩统计模块4 .设计评价与修改在数据结构课程设计过程中,许多知识点都没有学过,都要靠自己到课外的资料中去查找.在用的时候难免出现这样那样的错误. 如开始设计出来的菜单不是预想的那样, 而是窗 中出现混乱,要经过自己一遍遍的调试与修改, 和老师同学的帮助下逐渐改良完善, 最后才 渐渐的成型.运行的也根本到达所需要的运算要求.5 .心得与体会回忆起此次课程设计,我感慨颇多,从拿到题目到完成整个编程,从理论 到实践,在整整一个礼拜的日子里,可以学到很多很多的东西,同时不仅可以巩 固了以前所学过的知识,而且学

7、到了很多在书本上所没有学到过的知识.通过这 次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不 够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提升自己的实际动手水平和独立思考的水平.在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的 问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比方说结构体.通过这次课程设计之后,一定把以 前所学过的知识熟悉了,本次课程设计结束了,我们通过这次实践学到了许多知 识.学到了设计一个简单的系统. 要注意哪些方面.也使我们知

8、道自己哪些方面 做得还不够.这不仅是程序设计,更是锻炼我们处理问题的水平,同时也使我们了 解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我 们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型如少写了 一个符号,写错了字母,用错了函数等等层出不穷,这考验我们待事细心,耐心, 能不能坚持到底,不能半途而废.每一次的课程设计都是一次对自己曾经学习知识的检验, 通过每次的实践, 使自己熟悉之前的缺乏与缺点,利于以后的改正与今后学习的开展方向, 希望每 一次的课程设计都能有一个很好的提升参考文献1詹春华 李小艳 黄启荃??计算机应用根底??科学出版社2021.52詹春

9、华 杨沙??C语言程序设计??科学出版社2021.83谭浩强 C语言程序设计北京清华大学假社,200W 1月.4徐孝凯 魏荣??数据2构??机械工业出版社?1996年5徐孝凯??数据结构简明教程??清华大学出版社?1995年6陈文博 朱青??数据结构与算法??机械工业出版社?1996年附录:程序代码#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXN 35#define MAX_NAME 256typedef struct student /学生信息int no;char n

10、ameMAX_NAME;double Chinese;double math;double English;double mark_ave;double mark_tot; STUDENT;/* 输入信息子程序*/void inputSTUDENT *data, int *len int no;putchar'n'printf"%sn",请输入新的记录,如果需要退出当前菜单请输入-1."printf"%sn","格式:n 学号n"printf"%sn","姓名语文数学英语putc

11、har'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*, &data*len.Chinese, &data*len.math,&data*len.English);data*len.mark_ave=(data*len.Chinese+

12、data*len.math+data*len .English)/3.0;data*len.mark_tot=data*len.Chinese+data*len.math+data*len .English;(*len)+;scanf("%d", &no);/* 输出信息子程序*/void output(STUDENT *data, int len)int i;system("cls");printf("%8s","学号)printf("%8s","姓名)printf("%8s

13、","语文)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);prin

14、tf("%8s", );printf("%8.1lf", datai.Chinese);printf("%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(&

15、#39;=');putchar('n');printf(" 接回车键继续.");getchar();getchar();)/* 排序子程序*/void sort(STUDENT *data, int len)(int i,j,k;STUDENT temp;for (i=0; i<len-1; i+) for (k=i, j=i+1; j<len; j+)if (datak.mark_ave > dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = tem

16、p; )/* 搜索子程序*/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 < len

17、) result +;if (result >= len ) printf("%sn","未查询到相关信息)goto lab;)else system("cls");printf("%sn"," 查询信息如下:"); for (i =0; i < 80; i+)putchar('=');putchar('n');printf("%8s","学号)printf("%8s","姓名)printf("

18、;%8s","语文)printf("%8s"," 数学)printf("%10s","英语)printf("%12s","平均分)printf("%10s","总分)putchar('n');printf("%8d", dataresult.no);printf("%8s", );printf("%8.1lf", dataresult.Chinese)

19、;printf("%8.1lf", dataresult.math);printf("%10.1lf", dataresult.English);printf("%12.1lf", dataresult.mark_ave);printf("%10.1lf", dataresult.mark_tot);putchar('n');for (i =0; i < 80; i+) putchar('=');putchar('n'); goto lab;/* 插入子程序*/

20、void insert(STUDENT *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 =

21、-1) return; data*len.no = no;scanf("%s %lf %lf %lf", name, &Chinese, &math, &English); mark_ave=(Chinese+math+English)/3.0;mark_tot=Chinese+math+English;pos = 0;while (datapos.mark_ave < mark_ave) && (pos < *len) ) pos +;for (i = *len-1; i >= pos; i-) datai+1 =

22、 datai;datapos.no = no;strcpy(, name);datapos.Chinese = Chinese;datapos.math = math;datapos.English = English;datapos.mark_ave = mark_ave;datapos.mark_tot = mark_tot;(*len)+;goto lab;/* 删除子程序*/void delete_item(STUDENT *data, int *len).int no, i, pos;lab: pos=0;printf("%sn",&quo

23、t;输入需要删除的学生的学号,退出当前菜单请输入-1.");scanf("%d", &no);if (no = -1) return;while( (datapos.no != no) && (pos < *len) ) pos = pos +1;if (pos >= *len) printf("%sn","未找到需要删除的学生");goto lab;else for (i = pos+1;i < *len; i+)datai-1 = datai;*len = *len -1; if

24、 (*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 < len; i+) if (datai.mark_ave <=59) no_59+;else if (datai.mark_ave <=69) no_

25、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');printf("%10s"," 分数)printf("%10s","0-59");printf("%10s", "6

26、0-69");printf("%10s", "70-79");printf("%10s", "80-89");printf("%10s","90-100");putchar('n');putchar('n');printf("%10s"," 学生)printf("%10d", no_59);printf("%10d", no_69);printf("%10

27、d", 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",&q

28、uot;武汉理工大学华夏学院学生成绩治理系统n");printf("制作者:武汉理工大学华夏学院软件1121班钟伟 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"

29、);for (i = 0; i<= 79; i+)putchar('=');putchar('n');printf("%sn","请输入各操作对应的序号:");void save(STUDENT *data, int len)将数据保存到文件int i;FILE *fp;fp=fopen("成绩统计表.txt","w");fprintf(fp,"%8s","学号");fprintf(fp,"%8s","姓名)

30、fprintf(fp,"%8s","语文)fprintf(fp,"%8s数学)fprintf(fp,"%10s"," 英语)fprintf(fp,"%12s","平均分");fprintf(fp,"%10sn"," 总分)fprintf(fp,"= =n");putchar('n');for (i = 0; i< len; i+)fprintf(fp,"%8d", datai.no);fprintf(fp,"%8s", );fprintf(fp,"%8.1lf", datai.Chinese);fprintf(fp,"%8.1lf", datai.math);fprintf(fp,&q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论