《c语言知识大作业学生成绩管理计划系统.doc》由会员分享,可在线阅读,更多相关《c语言知识大作业学生成绩管理计划系统.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学年论文(学生成绩管理系统)题 目: 学生成绩管理系统 作 者: 所在学院: 专业年级: 指导教师: 职 称: 2015 年 5 月27 日目录引言2第1章 程序说明和基本功能31.1程序说明31.2整体功能31.3测试程序41.4课程设计的总体设计(包含的功能模块)41.5各模块(函数)的功能介绍,设计描述41.6数组设计描述5第2章 系统总体设计52.1概要设计62.2主函数62.3输入成绩72.4查询成绩82.5保存功能92.6退出功能10第3章 实验结果103.1录入成绩103.2查询成绩113.3成绩保存11第4章 程序运行结果截图12程序源代码14总结19参考文献.20基本信息姓名
2、学号班级课程名称任课老师学期得分引言管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,查询,保存以及退出几方面的功能,是现实问题的迫切要求。本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的
3、、职能化的信息综合管理。提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。目前各个高校的基本情况是:每次考试结束,老师们都要统计大量的学生成绩,这些数据的归档、统计工作任务重,统计结束后往往错误百出。工作量之大,查阅,维护都有不同程度的问题存在。所以,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,查询,
4、保存以及退出等几方面的功能,是现实问题的迫切要求。学院在教学这一部分主要是由教务处对课程、 对学生、 对学生成绩进行合理地安排以及统 筹计划,以及让教务处在最短的时间段把学生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生、学生成绩进行各种查询和统计,以及很好地对系统进行维护。本课程设计主要运用C语言中的结构体、数组、文件等数据结构设计一个简单的管理系统应用程序。本程序设计出了学生成绩管理系统的基本功能,用C语言编程的学生成绩管管理系统,要求实现学生成绩管系统中,录入成绩、查询成绩(按学号查找和按名字查找)保存和退出系统等功能。下面具体的介绍本程序的基本功能:第1章 程序说明和基本功
5、能1.1程序说明1)成绩录入功能 可以保存每个学生的多门课成绩; 成绩一边录入,一边统计每个学生各门课程的总成绩;录入成绩的时候自动保存,不必手动保存。2)成绩查询功能 提供“按学号查询”和“按姓名查询”等两种查询。用户看自己的情况可以调选进行有关的成绩查询;如果查询成功的话,分别输出学生的“学号”、“姓名”、“各门课程的成绩”、“各门课程的总成绩”和“平均成绩”; 如果查询失败,输出“没有这个同学”并返回查询界面;如果再不想查询输入“0”可以返回主页面。3)建立文件功能 存储文件使用指定文件名; 自动保存输入记录在文件里面; 如果已有文件,不保存文件。4)退出功能 该功能用使用完后退出程序。
6、1.2整体功能1)可以随时添加、检索、保存、退出。 (注:学号和姓名是随机输入的)2)默认的学生总数40,课程总数10。这两个数字看情况可以改。 3)是学号可由11位字符(11位数字)组成的。 4)使姓名可由20位字符组成的。 5)使课程名称可由20位字符组成的。 6)学生成绩按照学生总数和课程总数确定。 7) 录入学生成绩的时候,一边录入成绩,一边计算机自动计算总成绩和平均成绩。 8) 将输出学生信息和成绩栏,例如 姓名 学号 英语 C语言 数字电路 总成绩 平均成绩 xxxx 10101122224 96 90 85 271 90.3 9) 使用菜单实现功能的正确的选择。 10) 所有节点
7、信息和成绩都是动态生成。1.3测试程序应列出测试大纲对程序进行测试; 应保证测试用例测试到程序的各种边缘情况.1.4课程设计的总体设计(包含的功能模块)1)函数声明部分和全局变量定义部分:#define MAXN 40 #define MAXM 11 char daris_ismiMAXM12; char okuxnumuriMAXN11; char ismi MAXN20; float daris_natijisiMAXNMAXM; float omumiynatijisiMAXN; int m,n;void kirguzux();void takxurux();void saklax();
8、void qikinix();2)成绩录入功能:void kirguzux ();3)成绩查找功能:void takxurux ();4)成绩保存功能: void saklax ();5)退出功能: void qikinix ();1.5各模块(函数)的功能介绍,设计描述1) 模块的功能介绍:2) 主函数: void main() 3) 成绩录入: void kirguzux (); 4) 成绩查找: void takxurux (); 5) 按学号查找: void takxurux1(); 6) 按姓名查找: void takxurux2(); 7) 成绩保存: void saklax ()
9、; 8) 退出功能: void qikinix ();1.6数组设计描述#define MAXN 40 #define MAXM 11 char daris_ismiMAXM12; char okuxnumuriMAXN11; char ismiMAXN20; float daris_natijisiMAXNMAXM; float omumiynatijisiMAXN; int m,n;这是一个二维数组,其中MAXN表示班级人数的最大值,MAXM表示课程门数的最大值,ismi表示学生的姓名,okuxnumuri表示学生的学号,daris_ismi表示每门课程的名称,daris_natijisi
10、表示学生每门课程的成绩,omumiynatijisi表示学生每门课程的总成绩,n表示我们当前输入的学生人数,m表示我们当前输入的课程门数。第2章 系统总体设计本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决输入、查找、保存、退出功能的子函数编程中遇到的问题。首先通过结构体的定义,确定成绩管理系统的项目和大小。首先通过输入函数添加信息,然后再逐步编写和验证其它功能。显示函数的设计利用C语言的循环功能依次输出信息。查找是用一个字符串比较得出两个相同的字符串的方法找出用户要查找的人,for循环和 while循环在这此设计中也起了很
11、大的作用。2.1概要设计系统功能模块图如图1所示:主函数输入成绩成绩查询保 存退 出图1 系统功能模块图2.2主函数主函数部分,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图2所示:int tallaxtallax4返回 tallax结束开始输入选项14666真假图2 主函数流程图 2.3输入成绩将结构体数组分成几个数组分别对每个数组赋值,用for循环对不同地址的数组分别赋值。其流程图如图3所示:j=0jm?j+返回 m结束开始输入信息输入数目m真假图3 输入函数流程图2.4查询成绩查询成绩功能的流程图如图4所示: 开始调用printf函数 假j2真没有这个同学输出信息是否继续
12、 假真调用查找函数结束图4 查询成绩函数流程图2.5保存功能保存功能的流程图如图5所示: j=0jm?j+文件无法保存结束开始保存完毕输入数目文件名真假图5 输入函数流程图2.6退出功能退出功能用于退出当前程序,按4键便会退出系统即流程图如图6所示:n=4谢谢您的使用结束开始图6退出函数流程图返回n第3章 实验结果 3.1录入成绩 请输入全班人数:2 请输入课程门数:2 请输入2门课程名称: 第1门课程名称:英语 第2门课程名称:C语言 请输入2个学生的数据:请输入第1个学生的数据: 学号:2563011111 姓名:xxxxxxxx 2门课程的成绩: 英语:98 C语言:97请输入第2个学生
13、的数据: 学号:201542112111 姓名:xxxxxxxx 2门课程的成绩: 英语:94 C语言:93 输入成功。3.2查询成绩 选1: 请输入要查询的学号:1425522222 学号:14255522555555姓名: xxxxxxxx 英语:98 C语言:97 总成绩:195.00 平均成绩:97.50 25442111444 没有这个同学。选2: 请输入你要查询的姓名:xxxxxxx 学号:14252525255253 姓名:xxxxxxx 英语:94 C语言:93 总成绩:187.00 平均成绩:93.50 麦麦提 没有这个同学。选0:返回主页面。3.3成绩保存 请输入文件名:信
14、息安全13-2 保存完毕。这次的课程设计总体来说,比前段时期的C语言综合实验难度大了好多,而且综合性更强,少了综合实验是老师给我们提供的那些函数,所有的函数都要自己去想,自己去找,翻阅好多的书,上机自己动手体验,极大的促进了自己的动手能力及独立思考能力,总体上完成了自己感想的基本功能,有待改进的地方就是未能设置很好的界面。 第4章 程序运行结果截图 图7主函数的运行结果图8成绩查询功能的运行结果图9成绩保存功能的运行结果图10退出功能的运行结果程序源代码#include#include#include#define MAXN 40 /班里的最多人数 #define MAXM 10 /最多课程门
15、数char daris_ismiMAXM12; /保存所有课程的名称 char okuxnumuriMAXN11; /保存学号 char ismiMAXN20; /保存姓名 float daris_natijisiMAXNMAXM; /保存全班所有课程名称 float omumiynatijisiMAXN; /保存总成绩 int m,n; /全局变量 n,m保存全班实际人数和课程数 void kirguzux();void takxurux();void saklax(); void qikinix(); void main();void kirguzux() /输入成绩 int i,j; p
16、rintf(nnn); printf(tt请输入全班人数:); scanf(%d,&n); printf(tt请输入课程门数:); scanf(%d,&m); printf(tt请输入%d门课程名称:n,m); for(j=0;jm;j+) printf(tt第%d门课程名称:,j+1); scanf(%s,&daris_ismij); printf(ntt请输入%d个学生的数据:n,n); for(i=0;in;i+) printf(ntt请输入第%d个学生的数据:n,i+1); printf(tt学号:); scanf(%s,&okuxnumurii); printf(tt姓名:); sc
17、anf(%s,ismii); printf(ntt%d门课程的成绩:n,m); omumiynatijisii=0; /边输入边统计总成绩 for(j=0;j信息安全13-2班学生成绩管理系统 nnn); printf(tt*n); printf(ttn); printf(tt 1. - 按学号查询n); printf(tt 2. - 按姓名查询n); printf(tt 0. - 返回n); printf(tt_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _n); printf(tt*n); printf(ntt请输入您的选择编号:); scanf(%d,&
18、tallax); switch(tallax) case 1: izdax=takxurux1();break; case 2: izdax=takxurux2();break; case 0: return; if(izdax!=-1) printf(nnt *); printf(nntt学号: %5snn,okuxnumuriizdax); printf(tt姓名: %5sn,ismiizdax); for(j=0;jm;j+) printf(ntt%s:,daris_ismij); printf(%12.1fn,daris_natijisiizdaxj); printf(ntt总成绩:%
19、10.2f, omumiynatijisiizdax); printf(nntt平均成绩:%10.2f,omumiynatijisiizdax/m); else printf(nnnttt没有这个同学。nnn); int takxurux1() /按学号查询 int i; char s_okuxnumuri11; printf(ntt请输入要查询的学号:); scanf(%s,s_okuxnumuri); for (i=0;in;i+) if(strcmp(okuxnumurii,s_okuxnumuri)=0) break; if(in) return i; else return -1;
20、int takxurux2() /按姓名查询 int i;char s_ismi20; printf(ntt请输入要查询的姓名:); scanf(%s,s_ismi); for(i=0;i=n;i+) if (strcmp(ismii,s_ismi)=0) break; if(in) return i; else return -1; void saklax() /保存成绩 FILE *fp;char wenjianming20; int i,j; printf(nnnnn); printf(ttt请输入文件名:); scanf(%s,wenjianming); if(fp=fopen(wen
21、jianming,w)=NULL) printf(nnnnn); printf(ttt文件无法保存。n); return; fprintf(fp,%d%d,n,m); for(j=0;jm;j+) fprintf(fp,%s,daris_ismij); for(i=0;in;i+) fprintf(fp,%s%s,okuxnumurii,ismii); for(j=0;j信息安全13-2班学生成绩管理系统 =1&tallax=4) switch(tallax) case 1: kirguzux();break; case 2: takxurux();break;case 3: saklax()
22、;break;case 4: qikinix();break; else printf(nnnnntt *n); printf(tt*n); printf(tt*ttttt*); printf(ntt*t 输入错误,请重新输入!t*n); printf(tt*ttttt*); printf(ntt*n); printf(tt *n); 总结这次的课程设计总体来说,比前段时期的C语言综合实验难度大了好多,而且综合性更强,少了综合实验是老师给我们提供的那些函数,所有的函数都要自己去想,自己去找,翻阅好多的书,上机自己动手体验,极大的促进了自己的动手能力及独立思考能力,总体上完成了自己感想的基本功能
23、,有待改进的地方就是未能设置很好的界面。这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更多。由此可看出上机实践的重要性。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。谢谢给我指点迷津的老师。紧紧张张的一周实习即将过去,从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的有一种喜悦。通过这一周的实习,我认识到书上和老师教的内容是有限的,要
24、想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不知道的知识。回头看来,编写这个程序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的思考了,认真的去做了,我们就一定能做好。通过这周的编程我发现了自己的一些不足,在编写时经常犯一些低级错误,由于自己的马虎而浪费了不少时间。在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得在以后的做事中注意,争取改掉。本次基本实现了预期的效果但是在保存学生成绩时很多功能需要进一步完善,如未添加此功能可能会出现逻辑错误。另外由于本人能力有限,时间不足,参考了一些网上的资
25、料,但整个大作业的完成绝对是我独立自主完成的。本次设计的成功,主要靠平时的积累,脚踏实地。大作业只是将我们的知识综合应用。由于时间的关系来不及添加一些新的功能模块。如果有时间的话我想添加成绩排序,成绩读取,成绩报表打印等等一些功能。这时更加能正确的表示别人的成绩。我打算以后一定抽时间补充这方面的一些缺点。参考文献1王敬华.C语言程序设计教程.第二版.北京:清华大学出版社,2009.82杨开城,张志神.C语言程序设计教程.实验与练习3谭浩强编著. C程序设计 1991.74刘瑞挺主编.计算机二级教程.南开大学出版社,1996.105陈朔鹰等编著.C语言程序设计基础教程.兵器工业出版社,1994.96 姜仲秋等主编.C语言程序设计.南京大学出版社,1998.1 7 谭浩强.C程序设计(第二版).清华大学出版社,1999.12新疆大学课程论文(设计)、学年论文评分表题 目学生成绩管理管理系统作 者专业年级指导教师指导教师评语及评分建议 指导教师: 年 月 日院(部)或教研室意见 学院或教研室主任: 年 月 日22