




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计课程设计报告学生成绩管理系统word文档可自由复制编辑设计人:指导教师:xxxxx2011年XX月XX日提交课题选定与任务分解课题名称:班级:组长:联系电话:任务分解表:模块序号模块名称承担人学号(一)设计目的3(二)设计内容3(三)总体设计4(四)详细设计5-10(五)调试与测试11(六)设计总结12一、课程设计目的通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析, 并设计合理的模块化结构。1、通过课程设计,学会设计数据结构。其中包括对结构数组、数据文件等知识的运用。2、通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。3、通过课程设计,训练
2、 C程序调试能力,能将一个中小型各级组织系统联调通过。4、通过课程设计,开发一个中小型系统,掌握系统研发全过程。5、通话课程设计,培养分析问题、解决实际问题的能力。二、课程设计内容及任务要求:设计一个实用的成绩管理系统,能以简便高效的方式对成绩进行管理和检索,具体要示:录入:学生的学号、姓名、班级、五门课成绩。(1) 更新:(2) 浏览:(3) 查询:能实现指定联系人信息查询或指定电话号码查询功能。(4) 系统以菜单方式工作,界面友好,易于操作,容错性好。三总体设计:1程序设计组成框图:2:模块功能说明:1输入功能:输入学生姓名学号及成绩。2查看功能:输出姓名学号及各科成绩。3查询功能:通过学
3、号查询学生姓名及各科成绩。4排序功能:根据平均分来对学生进行排序。5修改功能:通过输入学号修改指定学生的错误信息。6添加功能:添加学生信息。7删除功能:通过输入学号输入指定学生信息。8保存功能:将学生信息保存。9统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。0退出系统。3:主要函数之间的调用关系及各自功能:主要函数的函数原型void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void
4、);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);i. 在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息功能。ii. 在菜单界面2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscore()函数调用avergescore(1S数实现各个学生平均分的计算。iii. 在菜单界面输入3,调用searchscore(的数实现通过学号查找学生成绩信息功 能。iv. 在菜单界面4,调用函数lookscore()实现学生成
5、绩按平均分高低排序输。出, 同时lookscore()函数调用avergescore(1S数实现各个学生平均分的计算。v. 在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi. 在菜单界面输入6,调用add()函数实现添加学生成绩。vii. 在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。viii. 在菜单界面输入8,调用savescore(1S数将学生成绩信息保存。ix. 在菜单界面输入9,调用statistic。函数输出班级及格率,优秀率,学生成绩方 差,不及格学生名单。x. 在菜单界面输入0,退出成绩管理系统。3模块调用图四、详细设计(1)定
6、义结构体设计本程序中,定义了多个结构体。首先对于学生的各项详细信息定义结构体结构体及其成员如下:typedef struct studentchar number10;char name20;float scoreM;float aver;STU;(2)模块接口设计本程序执行的入口是main函数,然后是菜单函数,在菜单函数中对选项进行选择以后,接下来在do-while语句中再套用switch语句实现对各个函数的调用。被调用的函数都是没有形参的,但是通过对数据文件的使用,可以使得每一次的函数调用都能够讲忘记保存到磁盘中,而不需要 返回值。最后,再从main函数中结束整个程序的运行。其中涉及到被调
7、用的函数有:void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);(3)各功能函数代码及流程图inputscore 函数:此函数的主要功能是将学生成绩添加到成绩管理中;首先要要输入学生的数量n,然后再根据j&
8、lt;n这一条件来循环输入学生的成绩,就完成了整个过程。avergescore 函数:inti,j;N此函数要实现的功能是将选择的已有的学生成绩平均,利用循环将每个学生的平均分计算出来。pruatBt "* D4.2F,rJi,Li X-此函数的功能是在原有学生信息的基础上对学生的成绩进查看和排序。Searchscore 函数:word文档可自由复制编辑pruirft “我 i 1 ii 1?7break:此函数的功能主要是通过输入学生学号来查询学生成绩Statistic 函数该函数主要是统计学生成绩信息,平均分及格率,优秀率,成绩方差word文档可自由复制编辑Modify函数J+*
9、breik;l-H-该函数主要用来修改学生成绩。Add函数print贯1诂轮入学上:市hepriirtfO患加成功3,;该函数用来添加学生成绩。delscore 函数word文档可自由复制编辑pj-Liattp & *4.2P' Sug皿玳"是件阳绿国,pruMClM你侬旭为一l-t该函数用来删除学生成绩。savescore 函数F工E .力口;word文档可自由复制编辑该函数用来保存学生成绩。五、调试与测试(1) 调试过程中的主要问题由于本程序是分模块设计的,所以运行时选择完任务并且执行完任务后,又会继续回到用户选择界面,供用户继续选择任务并执行任务,整个程序以文件
10、形式读写,所以每次都可对输入的数据进行保存。对于本程序的调试运行,总体上情况良好。但是,其中也出现了一些小问题:1.一开始用break结束调用函数,发现程序无法返回到主函数。2无法有效清理屏幕显示3有时候发现一些连接错误,程序无法正常运行(2) 调试过程中的问题的解决办法l.break是只能用来结束它本身所在的本层循环,而return则是结束调用函数,让程序返回到主函数。2可以用system( Cls”)来清理屏幕显示3是一些函数名错误,有打错的现象,更改后调试即可六、课程设计总结:我想说课程设计真是一件很累人很伤脑筋的事情,在一周的时间里,我们每天几乎都要面对 着电脑十个小时以上,上课时去机
11、房写程序,回到宿舍还要继续奋斗;要是只是在电脑面前坐着 也没有什么难过的,但是在电脑面前还要想着怎么去写代码,怎么去安排程序结构,怎么去实现 想要的程序功能等等一系列的事情;特别是在调试程序的时候更是让人头痛,辛辛苦苦的写好了 函数,等到调试运行就出现一堆错误,真的拿它没办法呀;有的时候还真是后悔当初自己选择了 这样一个费精力的专业,不过还好有书本的基础知识、发达的网络通信、知识渊博的老师以及热 心的同学的帮助,才使我能将那些问题一一解决!虽然课程设计很苦很累,有时候还很令人抓狂,不过现在回想起来它给我的并不只是痛苦的 回忆,它不仅让拉近了我和同学间的距离,而且对我们学习计算机语言还是很有意义
12、的。在还没有进行课程设计实训之前,我对C语言知识的掌握真的只能说是很肤浅,我只知道分开来使用那些语句和语法,对他们根本没有整体感念,所以在学习C语言时经常会感觉很盲目,甚至不知道自己学这些东西是为了什么。通过一周的课程设计,我对C语言有了更深入的了解,同时也建立起了一个对C语言的整体架构和编程思想;我还学到了很多课本上没有学到的东西,也了解了很多以前不了解的计算机语言方面的知识;他扩充了我的知识,也开拓了我的视野,让 我们了解了我们学习计算机语言的目的和将来发展的方向。通过这次的课程设计,让我明确了学习C语言的目的和重要性,在以后的时间里,我会更加努力的把C语言学好,为以后学习更高级的计算机语
13、言打下好的基础,并通过与老师同学的交流来不 断的提升自己的编程和开发能力!#include<stdio.h>#include<string.h>#include<process.h>#include<conio.h>#define N 30#define M 5 typedef struct student char number10;char name20;float scoreM;float aver;STU;STU stuN; int n;void inputscore(void);void savescore(void);void ave
14、rgescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);void main()short int flag=0;menu();doflag=1;switch(getch()case '1' : inputscore();break;/*输入成绩*/case '2' : looks
15、core();break;/*查看成绩*/case '3' : searchscore();break;/*查找成绩*/case '4' : lookscore();break;/*成绩排序*/case '5' : modify();break;/*修改成绩*/case '6' : add();break;/*添加成绩*/case '7' : delscore();break;/*删除成绩*/case '8' : savescore();break;/*保存成绩*/case '9'
16、: statistic();break;/*成绩统计*/case '0' :exit(0);/*退出程序*/default : printf("输入有误 n");printf("按任意键继续n");getch();menu();while (flag=1);void menu(void)system("cls");printf("n");printf("* 欢迎进入学生成绩管理系统*坨");printf("菜单 n");printf("输入成绩 1n
17、");printf("查看成绩2n");printf("查询学生成绩3n");printf("成绩排序 4n");printf("修改成绩5n");printf("添加成绩6n");printf("删除成绩7n");printf("保存成绩8n");printf("成绩统计9n");printf("退出系统0n");printf(”*n");printf("请输入您的选择n")
18、; void inputscore(void) /*输入各个同学的学生信息*/int i,j;system("cls");printf("请输入学生总数:n");scanf("%d",&n);printf("提示:*输入学号时请输入位数为8位的数字*n");/*因二维表上下需对正故有此要求*/for(i=0;i<n;i+)printf("请输入学生 %d的学号姓名:n",i+1);scanf("%s%s",stui.number,);print
19、f("请输入学生成绩:n");printf("数学t化学t计算机t生物t物理n");for(j=0;j<M;j+)scanf("%f",&stui.scorejD;printf("成功输入 n");/*计算各个同学的平均分*/ void avergescore(void) int i,j;for(i=0;i<n;i+)stui.aver=0;for(j=0;j<M;j+) stui.aver+=stui.scorej; stui.aver=stui.aver/M;/* 查看学生成绩及根据平
20、均分对学生进行排序 */void lookscore(void)int i,j,k;STU t;avergescore();system("cls");for(i=0;i<n-1;i+)for(k=i,j=i+1;j<n;j+)if(stuj.aver>stuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf("名次t学号tt姓名t数学t化学t计算机t生物t物理t平均分n");for(i=0;i<n;i+) printf("%dt%st%st",i+1,stui.
21、number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);/*printf("n");通过输入学号查找学生成绩*/void searchscore(void) char a10;int i,j;system("cls");printf("请输入需查询的学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,
22、stui.number)=0)printf("名次t学号tt姓名t数学t化学t计算机t生物t物理t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);printf("n");break;/*找到该学生成绩信息后跳出for循 环*/elseprintf("未找到该学生信息n");/
23、* 统计学生成绩信息,平均分及格率,优秀率,成绩方差 */ void statistic(void)STU *p=stu;int i,j;float count=0.0,sum=0.0;system("cls");for(i=0;i<n;i+)sum+=(p+i)->aver;printf("该班级平均分为 4.2fn",sum/n);/*平均分计算*/for(i=0;i<n;i+) if(p+i)->aver>=60)count+;printf("该班级及格率为 4.2f%n",count/n*100)
24、;/*及格率计算*/count=0.0;for(i=0;i<n;i+)if(p+i)->aver>=90)count+; printf("该班级优秀率为 4.2f%n",count/n*100);/*优秀率计算*/for(i=0;i<n;i+) for(j=0;j<M;j+)sum=(p+i)->scorej-(p+i)->aver)*(p+i)->scorej-(p+i)->aver);sum=sum/n;printf("学生 %s 的成绩方差为 %4.2fn",(p+i)->name,sum
25、);/*方差计算*/printf("平均分低于60的学生名单n");for(i=0;i<n;i+)if(stui.aver<60)printf("%sn",);word文档可自由复制编辑/*统计不及格学生名单*/*修改学生成绩*/void modify(void) char a10;int i,j;system("cls");printf("请输入需要修改成绩的学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,s
26、tui.number)=0)printf("名次t学号tt姓名t数学t化学t计算机t生物t物理t平均分n");printf("%dt%st%st",i+1,stui.number,);for(j=0;j<M;j+)printf("%4.2ft",stui.scorejD;printf("%4.2f",stui.aver);printf("n");printf("请重新输入该学生的学号姓名:n");scanf("%s%s",stui.
27、number,);printf("请重新输入学生成绩:n");printf("数学t化学t计算机t生物t物理n");for(j=0;j<M;j+) scanf("%f",&stui.scorej);/*找到该学生成绩后进行修改,跳出 for循环*/ printf("修改成功 n");break;elseprintf("未找到该学生信息n");word文档可自由复制编辑/*添加学生成绩 */word文档可自由复制编辑void add(void) int a,i,j;
28、system("cls");printf("请输入新增加的学生人数:n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+)printf("请输入学生 %d的学号姓名:n",i+1);scanf("%s%s",stui.number,);printf("请输入学生成绩:n");printf("数学t化学t计算机t生物t物理n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);/*printf("添加成功 n");删除学生成绩 */void delscore(void) int i,j,c;char m,a10;system("cls");printf("请输入学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产后修复顾客协议合同8篇
- 冶炼工程技术人员劳动合同8篇
- 济南个人房屋长期租赁合同5篇
- 彩云球种苗供应合同10篇
- 解除劳动合同XX范文解除劳动合同XX6篇
- 2025年中国PVC水口料数据监测报告
- 2025至2031年中国不锈钢格栅双管应急荧光灯行业投资前景及策略咨询研究报告
- 2024年油份测定仪项目资金申请报告代可行性研究报告
- 2025项目管理人员年度安全培训考试试题答案审定版
- 2024-2025新版车间安全培训考试试题附完整答案【全优】
- 外科创伤处理-清创术(外科课件)
- 小型手推式除雪机毕业设计说明书(有全套CAD图)
- 《城市级实景三维数据规范》
- 2024年中国酸奶袋市场调查研究报告
- 合同到期不续签的模板
- 搬迁服务项目 投标方案(技术标)
- 2005室外给水管道附属构筑物阀门井05S502
- 浙江省宁波市镇海中学2025届高三数学下学期适应性考试试题含解析
- “双新”背景下高中信息技术单元整合教学实践
- 广东省佛山2024年中考一模数学试卷(含答案)
- 新能源发电技术 课件 第一章-新能源发电概述
评论
0/150
提交评论