版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档大全学院课程设计报告c语言程序设计课程设计专业电 气 工 程 及 其 自 动 化班级姓名学号指 导 教 师年月实用文档大全新能源与动力工程学院课程设计任务书课程名称: c 语言程序设计课程设计指导教师(签名):班级:姓名学号:一、课程设计题目班级成绩管理系统二、课程设计使用的原始资料(数据)及设计技术要求:安装有 windows 操作系统电脑visual c+ 6.0二、课程设计的目的学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩( 语文、数学、英语和政治 ) 等三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)1输入功能:可以一次完成无数条信息的输
2、入。2输出功能:能按班级输出学生的成绩单。3修改功能:完成对单个学生成绩的修改。4查找功能:完成对单个学生信息查找,并显示。5排序功能:按学生成绩进行排序,并显示。四、工作进度安排7月8日:选择课程设计题目,确定分组7月9日:查找资料,编辑程序7月10日:查找资料,编辑程序7月11日:查找资料,修改程序7月12日:审核和打分五、主要参考文献1 谭浩强 . c语言程序设计(第二版). 北京:清华大学出版社,2009. 2 谭浩强 c程序设计程序设计学习辅导 . 北京 : 清华大学出版社,2005. 审核批准意见系主任(签字)年月日实用文档大全指导教师评语及成绩评定表指导教师评语成绩设计过程(40
3、)设计报告(50)小组答辩(10)总成绩(100)指导教师签字:年月日实用文档大全目录一引言 . - 1 - 1.1 设计目的 . - 1 - 1.2 意义 . . - 1 - 1.3 内容 . . - 1 - 1.4 主要任务 . . - 2 - 二主要功能和功能 . - 3 - 2.1 主要功能 . . - 3 - 2.2 要求 . . - 3 - 三. 系统的数据需求及性能分析. - 4 - 3.1 数据需求 . - 4 - 3.2 系统的性能分析 . . - 4 - 四. 输入输出要求 . - 5 - 五整体框架结构 . - 6 - 六学生成绩业务管理图. - 7 - 七系统概要设计
4、. - 8 - 7.1 程序的模块组成. - 8 - 7.2 学生信息结构数组. - 8 - 7.3 各个程序的主要功能介绍:. - 9 - 八. 系统详细设计 . - 10 - 8.1 函数介绍 . . - 10 - 九. 调试与测试 . - 13 - 9.1 系统调试 . . - 13 - 9.2 系统测试 . . - 13 - 十总结 . - 20 - 参考文献 . - 22 - 附录源代码 . - 23 - 实用文档大全一引言1.1 设计目的1. 学生成绩的录入2. 能统计学生的成绩,求学生的总分及平均分3. 能查询单个学生成绩4. 能修改单个学生信息1.2 意义随着经济的快速发展,
5、科技的日益普及。 目前我国的信息数字化工作也进入一个全新发展时期, 特别是高校的信息化建设已进入了全面的发展阶段, 诸多高校充分地认识到, 信息化建设己经成为了高校提高自身管理水平、提升综合竞争实力的重要手段。在高校,各种信息管理系统层出不穷。 通过本系统,能够实现对学生成绩的有效管理,减少教务人员、教师的工作量,该系统能够很好的满足学校教学、管理方面的要求。为教务人员、教师提供学生成绩管理系统,以轻松实现学生成绩管理。 系统化的成绩管理可以减少教务人员及教师因为工作量大而出现错误,为学校减少不必要的人力、物力、财力,便于学生成绩的增加、删除、修改、查询。1.3 内容对一个有 n个学生的班级,
6、 每个学生有四门课程。 该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。实用文档大全1.4 主要任务1. 能按完成对学生成绩的录入、修改。2. 能统计学生的成绩,求学生的总分及平均分。3. 能查询学生各科成绩。实用文档大全二主要功能和功能2.1 主要功能1. 学生查询功能: 为了方便学生查找成绩等信息,将所有信息按照需要进行分类。这样学生就能很方便的找到自己所需要的信息。2. 管理员查询功能: 管理员可以通过条件选择查询所有信息,并进行排序。3. 添加功能:管理员可以输入学生成绩等相关信息。4. 修改功能:输入密码后管理员可以对数据库中的信息进行修改,系统能够通过管理员的给出的
7、条件查找出所要修改的信息,对修改后的信息进行保存。5. 统计功能:管理员可以通过此功能对信息进行统计。2.2 要求使用二进制文件方式存储数据, 系统以菜单方式工作学生成绩信息包括:学号,班别,姓名,四门课程成绩( 语文、数学、英语和政治)等。 要求使用二进制文件方式存储数据, 系统以菜单方式工作,实现对学生成绩的录入,修改,统计,排序,查询,输出等功能。实用文档大全三. 系统的数据需求及性能分析3.1 数据需求通过查阅资料以及对程序的理解, 总结出用户对数据的需求如下:1. 学生信息 : 包括:学号、学生姓名等信息。2. 课程信息:包括:课程编号、课程名称等。3. 基本数据维护功能:(1)录入
8、学生的成绩信息。(2)显示学生的成绩信息。(3)保存学生的成绩信息。(4)排序学生的成绩信息。(5)统计学生的成绩信息。3.2 系统的性能分析1. 系统的高速性、稳定性、安全性。2. 系统人机界面友好,易学易用。3. 系统维护成本较低。实用文档大全四. 输入输出要求在菜单选项中 1-7, 选择功能项,进行对应选项的函数调用。1. 每一条记录包括一个学生的学号、 姓名、4 门成绩、平均成绩;2. 输入功能:输入学生的基本信息存入磁盘文件中;3. 显示功能:输出已存盘的学生信息;4. 排序功能:输出用户所要选择科目的提问,输入科目后输出该科目一排好的学生成绩,并按学生平均成绩进行排序;5. 插入功
9、能:插入新的信息;6. 修改功能 , 输入密码 . 错误输出是否继续输入密码. 正确则逐个输出是否想要修改学生信息;7. 保存功能:将学生记录保存在任何自定义的文件中。实用文档大全五整体框架结构图 1 整体框架结构图主程序初始化录入显示排序插入修改保存退出实用文档大全六学生成绩业务管理图、图 2 学生成绩业务管理图学生输入学号和密码查询学生数据库成绩数据库输出结果输出结果统 计汇总新数据数 据 修改 或 添加管 理员实用文档大全七系统概要设计7.1 程序的模块组成第一个模块:先定义好一些必要的全局变量以及调用的函数和结构体数组。第二个模块:设计一个菜单函数menu(); 实现能供用户选择功能项
10、。第三个模块:用enter()函数实现成绩的输入。第四个模块:用save() 函数实现成绩的保存。第五个模块:用print()函数实现成绩输出。第六个模块:用cort()函数实现成绩排序功能。第七个模块:用modify() 函数实现成绩修改功能。第八个模块:用count() 函数实现成绩统计功能。main 函数实现总的控制台界面, 调用 void enter(), void cort(),void modify(),void count(),print(),void save(),函数实现各种用户功能要求。7.2 学生信息结构数组 struct stu char name20; int num
11、; int scorem; 实用文档大全; 7.3 各个程序的主要功能介绍:1. 为便于用户使用, 先定义一个常数 n表示人数, 学生信息的结构体数组,以及调用功能项的函数。2.void main() :利用 swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。3.void enter() :用来执行学生成绩记录的输入。4.void print() :显示所有学生的信息。5.void save() :这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。6.void cort () :要排序的科目的 序号,用选择排序法
12、实现函数学生成绩的排序。7.void modify () :需要通过密码验证,进入菜单后可实现对学生资料的修改。8.void count() :可以显示学生的平均成绩以及科目最高分。实用文档大全八. 系统详细设计8.1 函数介绍 1.主函数 main() 利用 swithch()实现各函数的调用, 系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!2. void enter()函数用 scanf 依次输入学生信息,在输入多门成绩成绩时,用 fo
13、r 循环来实现,结尾调用save() 函数保存。3. void print ()函数为了使界面美观对学生成绩用%5d输出,且用换行实现,学生信息整齐排列。4.void cort()函数先定义choice1, 输出想要排序的科目的序号,用选择排序法实现函数学生成绩的排序。5.void modify()函数先定义好一个密码以及flag=0 ;如果输入的密码错误则flag=1, 用 do .while实现是否重新输入密码,密码准确后调用 modi()函数,实现修改功能。6. void count () 函数用 menu1函数实现一个菜单功能。 用 switch实现,用户选择想执行的功能,从而调用sh
14、ow1 ()show2 ()show3() 。实用文档大全图 3 结构图8.2 统计函数流程开始mainenter() print() save() sort() modify () 运行程序count()choicchoice 函数1 2 3 4 5 6 退出程序7 实用文档大全开始调用 menu1 函数输入 choice1 choice1 调用 show1 函数调用 show2 函数输 入 选 择j=0 i=0 i=i+1 isn+1.scoretemp=si.scoresn.scorei=sn+1.scorsi+1.scoren=temj=j+1 i=0;sum=0i=i+1 in su
15、m=sum+si.scorej sum=sum+si.scorej 输出排序成绩输出平均成绩返回函数1 2 3 结束结束实用文档大全九. 调试与测试9.1 系统调试1. 在 enter() 函数中对学生成绩的输入用scanf( “%d ”,s) ;当输 入 一 门 成 绩 后 就 会 跳 回 , 使 接 下 来 的 程 序 无 法 运 行 , 改 为for(j=1;j=m;j+) scanf(“%d ”,&si.scorej);将错误解决。2. 在 enter 函数中,输入姓名用scanf( “%s ”,&);错误,在 scanf 函数中的输入项如果是字符数组名代
16、表该数组的起始地址. 则应改为 scanf( “%d ”,)。3. 在运行 print ()函数时,第四门课显示出来的分数并非输入项:错误,在定义时将j=1 ,应改为 j=0 。4. 在 count() 函数中, show3(); 输出的人数比实际的多一人,因为 b+在循环结束之后会自增一次,则比实际的大一。9.2 系统测试1. 运行时进入主界面, 系统根据输入的数字选项来调用相应的函数。主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。以下为该界面;实用文档大全图 5:主菜单2. 进行学生成绩输入时按照提示选择1 键,录入第一个学员信
17、息。完成后屏幕下方出现提示“是否继续输入?(yn) ” ,此时,按键盘上的 n键则为结束输入,返回主菜单;若按y键,则继续输入第二个学生信息,依此类推。实用文档大全图 6:成绩录入3. 当要求显示学生成绩时输入2 键, 按下回车键即出现以下界面图中所显示的即为刚刚输入的学生成绩:实用文档大全图 7 :成绩显示4. 选择保存成绩是选择3,按下回车则提示输入文件名则由图所示:图 8:成绩保存实用文档大全5. 当执行对学生成绩进行排序时,输入 4 键,会出现一个选择界面让所要排序的科目, 当输入一个数字时及执行对该科目成绩的排序命令,具体如下截图:图 9:成绩排序6. 改时需要进行密码验证当密码错误
18、时不能进行该操作,只有输入正确的密码才能运行,运行结果如下图:实用文档大全图 10:成绩修改7. 当需要进行成绩统计时,输入数字6,按回车即可出现一个选择界面:输入数字 1 即显示每科成绩最高的学生信息:输入数字 2 即显示每科的平均成绩;输入数字3 则退出该功能的运行。截图如下:实用文档大全图 11: 成绩统计实用文档大全十总结在这为期一周的时间内, 通过我们小组各成员之间的相互讨论和合作,我们完成了班级成绩管理系统系统的程序设计。虽然在这学期中,我们已经学习了c 语言程序设计这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会, 这次的课程设计是我第一次通过自己
19、构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识, 还让我对 c语言有了更深一步的了解, 掌握了更多的技巧和技能。c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言, 仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序, 才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问, 这不仅丰富了我们的知识, 还增进了我们同学之间的友谊。这次设计中,我们的收获还有就是学会
20、了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函实用文档大全数的编写过程中,我们不仅用到了for循环、while循环和 switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!在参考书上,我们不仅
21、参考了谭浩强主编的第二版c语言程序设计进行参考。当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误, 有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。一周的课程设计即将结束, 时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导, 更要感谢我们小组成员之间的合作与交流。实用文档大全参考文献1 谭浩强 . c语言程序设计(第二版). 北京:清华大学出版社,2009. 2 谭浩强 c程序设计程序设计学习辅导 . 北京 : 清华大学出版社,2005. 实用文档大全附录源
22、代码#include /*i/o函数 */ #include /*字符串函数 */ #define m 4 /*课程数 */ #define num 3 /*人数 */ #define null 0 #include #include int avarm; struct stu char name20; int num; int scorem; ; void enter(struct stu s,int n); void print(struct stu s,int n); void save(struct stu s,int n); void sort(struct stu s,int n)
23、; void modify(struct stu s,int n); void count(struct stu s,int n); int menu(); void main() void clrscr(); struct stu studentnum; for( ; ; ) switch(menu() case 1:enter(student,num);break; case 2:print(student,num);break; case 3:save(student,num);break; case 4:sort(student,num);break; case 5:modify(st
24、udent,num);break; 实用文档大全 case 6:count(student,num);break; case 7:return; int menu() int choice; printf(n*班级成绩管理*n); printf( 1 成绩录入 n); printf( 2 成绩显示 n); printf( 3 成绩保存 n); printf( 4 成绩排序 n); printf( 5 成绩修改 n); printf( 6 成绩统计 n); printf( 7 退出系统 n); printf( 学生人数级 num 课程数学 0 语文 1 英语 2 政治 3n); printf(*
25、n); do printf(nchoice1-7:); scanf(%d,&choice); while(choice7); return choice; void enter(struct stu s,int n) char c; int i=0; int j; do 实用文档大全 printf(please enter the message:n); getchar(); printf(enter name:n); scanf(%s,); printf(enter num:n); scanf(%d,&si.num); printf(enter score:n)
26、; for(j=0;jm;j+) scanf(%d,&si.scorej); printf(按 y继续录入,按n结束录入 !); getchar(); scanf(%c,&c); if(c!=y&c!=y) break; +i; while(i!=n); void save(struct stu s,int n) file *fp; int i; char save20; printf(enter the file name:); scanf(%s,save); /*输入选择项 */ if(fp=fopen(stu-list,wb)=null) printf(can n
27、ot open filen); return; else for (i=0;in;i+) if(fwrite (&si,sizeof(struct stu),1,fp)!=1); 实用文档大全 printf(file write errorn); fclose(fp); printf(successn); void print (struct stu s,int n) int i,j; for(i=0;in;i+) printf( 数学语文英语政治 n); printf(%s,); printf(%d,si.num); for(j=0;jm;j+) printf(%5d,
28、si.scorej); printf(n); void sort(struct stu s,int n) /*排序 */ int i,j,min,temp,k; printf(please choice subject 1-4:n); scanf(%d,&k); for(i=0;in-1;i+) min=i; for(j=i+1;jsj.scorek) temp=smin.scorek; smin.scorek=sj.scorek; sj.scorek=temp; 实用文档大全 printf(n the sorted numbers:n); for(i=0;in;i+) printf(
29、%5d,si.scorek); printf(n); void count(struct stu s,int n) void show1(struct stu a,int n1); void show2(struct stu a,int n1); int menu1(); for( ; ;) switch(menu1() case 1:show1(s,n);break; case 2:show2(s,n);break; case 3:return; int menu1() int choice1; printf(n*n); printf(1:显示每科成绩最高的学生信息n); printf(2:
30、显示每科平均成绩n); printf(3:退出 n); printf(*n); do printf(n enter tou choice1 (1-3):); scanf(%d,&choice1);while(choice13); return choice1; void show1(struct stu a,int n1) int k,i,j,c=0; 实用文档大全 printf(please enter the subject num:); scanf(%d,&k); for(i=0;in1;i+) if(ac.scorekai.scorek) c=i; printf(%s,%d,,ac.num); for(j=0;jm;j+) printf(%5d,ac.scorej); void show2(struct stu a,int n1) int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论