版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 运动员分数统计系统 专 业 班 级 学 号 姓 名 指导教师 王颖 2015 年 1月9日 湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 运动员分数统计系统 专业班级 学生姓名 学 号 指导老师 王颖 审 批 任务书下达日期 2015年 12月 29日任务完成日期 2016年 1月 9日 设计内容与设计要求1.课程设计目的:全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决
2、实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。2.课题题目班级成绩管理系统班级档案管理系统飞机订票系统猜数字游戏电子英汉词典设计心算抢答系统运动会分数统计系统小学生心算CAI系统3.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。具体要求如下:设计课题题目:每位同学根据自己学号除以8所得的余数加一选择相应题号的课题。换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:包括系统设计目的与意义;系统功
3、能需求;输入输出的要求。完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。调试分析以及设计体会:测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。关键源程序(带注释)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。 目 录1 需求分
4、析12 系统总框图和功能模块说明22.1 系统总框图22.2 功能模块说明23 系统设计33.1 主要结构体33.2主要功能函数33.3 关键函数的流程图44 系统调试45 总结76源程序清单9 1 需求分析1问题描述 运动会分数统计 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由使用者设定。(m<=20,n<=20)2. 基本要求 1) 可以输入各个项目的前三名或前五名的成绩; 2)
5、 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;5) 可以按项目编号查询取得前三或前五名的学校。3.测试数据1) 首先进入成绩录入界面,先输入参赛学校数,再输入男子组数和女子组数;2) 然后进入总目录;3) 输入 :1 输入成绩;4) 输入:2 统计各校总分;5) 输入:3 统计各校项目得分;6) 输入:4 按学校总分排序输出;7) 输入:5 按男团体总分排序输出;8) 输入:6 按女团体总分排序输出;9) 输入:7 按学校编号查询学校某个项目的成绩;10) 输入:8 按项目编号查询取得前三名或前五名的学校;11) 输入
6、:0 退出; 2 系统总框图和功能模块说明2.1 系统总框图2.2 功能模块说明1) 输入 :1 输入成绩;···························输入某一项目的成绩2) 输入:2 统计各校总分;··········
7、·统计各校所有项目总分之和3) 输入:3 统计各校项目得分;·······输出各校各项目得分4) 输入:4 按学校总分排序输出;·······按照总分从大到小排序5) 输入:5 按男团体总分排序输出;····仅按照男子团体总分从大到小排序6) 输入:6 按女团体总分排序输出;····仅按照女子团体总分从大到小排序7) 输入:7 按学校编号查询学校某个项目的成绩;
8、83;··输入学校编号及项目编号可查询该校的该项目成绩8) 输入:8 按项目编号查询取得前三名或前五名的学校;···输入项目编号可查询该项目获得名次的学校9) 输入:0 退出;······退出系统 3 系统设计3.1 主要结构体菜单号choo学校:num项目:ab男团、de女团、ke3.2主要功能函数void exit0()void input() void each() void biaohao()void zongfen() void nanzong() void nvzong()
9、 void xuexiao() void xiangmu()void main()3.3 关键函数的流程图void exit0()void input()void each() void biaohao()void zongfen() void nanzong() void nvzong() void xuexiao() void xiangmu()void main() 4 系统调试<1>开始界面,分别输入3、7、3.输入1后显示输入2后显示输入3后显示输入4后显示输入5后显示输入6后显示输入7后显示输入8后显示输入9退出 5 总结 课程设计是培养学生综合运用所学知识,发现、提出
10、、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,计算机编程已经成为当今计算机应用中空前活跃的领域,在生活着可以说是无处不在。 课程设计马上接近尾声,一周的C语言程序设计让我感触颇深,词不能达意。毕竟学了一学期的C语言,不管怎么样,还是要面对课程设计。一开始听到要做课程设计,其实我的内心是抵触的,因为,根本没有想到自己专业的基本课程会涉及到C语言的课程设计,但是上课听老师生动的讲课,又唤起了我阴郁的心情,我们的C语言老师讲课生动有趣,给我感觉是个很负责人的老师,我们班三个女生都在是老师特别负责,很喜欢这个老师,这让我对大学老师的
11、看法改观。回顾起此次C语言课程设计,至今我仍然感慨颇多。比如说:有时遇到一个错误怎么找也找不到原因所在,找了老半天却是程序位置都搞不清,有时一个功能不知道怎么实现,照这个,找那个。花了六个小时编的程序,到头来却很多错误,无法运行,而且不知道怎么改。再说上机,这一周是我过的最充实的一周,虽然刚刚开始有一点紧张,不知所措,但是通过同学和朋友的鼓励,我慢慢的把自己的态度放端正了。有一个朋友和我说过,干不好一件你认为困难的事情,那么简单的事情你也干不好,因为,从头到尾,你的态度就没有摆正。所以,我决定,要想过完这一次课程设计,就必须要端正态度。于是,我上机的时候就尽量控制自己不玩手机,不神游,不和别人
12、讲笑话。几天下来,我觉得自己对C语言的了解有了一定的提升。 课设中遇到的开始动手操作,原来编程很有意思,有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。有所编到最后一运行却告诉我错误,那真的很让人恼火。以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,其实什么事情只要自己用心了,就会有所感触,有所收获。真的觉得有味道,生活都变充实了。 C语言又是一种系统开发语言。这一个学期对C语言的接触让我明白了自己的不足之处,对书上内容的理解不够透彻。这一周的课程设计让
13、我们有机会上机调试,我才发现我们的程序存在这么多的漏洞和错误,我一次一次的更改着自己的程序错误,每次改对了一个错误就特别开心,那时候我才发现原来自己解决一件事情,会得到这么多的自豪感。通过这次的课程设计,我受益匪浅。它让我了解了细心的重要性,程序中若有一丝一点的错误就会影响整个程序,而使其不能运行。当我第一次拿到课程设计的任务书的时候,我都非常的兴奋,因为这是我们一次很好的锻炼机会。我经过一周的C语言课程设计,我不但实践了课本的所学的知识,还亲自制作了自己的小程序,感觉自己对C语言有了更深入的了解。 在调试过程中,特别让我印象深刻的是自己开始在程序调试的时候,开始并没有并没有看到预期的结果,最
14、后我仔细检查了源程序代码,发现自己在申明函数的时候,出现了一个严重的语法问题,导致我整个程序都不能运行。当时自己的心里特别挫败,为什么别人都能做好,自己就是做不好呢,我不比别人差啊,心里没来由的感觉特别失败,我开始放弃自己的先前做的工作,觉得自己是第一次做设计,第一次看到这么长的程序代码,有理由放弃。想着自己很辛苦的写了这么久,还是不想放弃,我开始慢慢去找我出的问题,我从头到尾检查了一面,终于发现了问题之所在,我的心情顿时高兴起来,终于看到了希望!我小心翼翼的把程序编译,调试,出来的结果就是我心里面所想的那样子,我开心极了,那个时候我才知道,什么叫做皇天不负苦心人。成功往往是留给有准备的人,上
15、帝不会亏待任何人,也不会厚此薄彼,只要肯努力,那么大学也可以是个提升自己的天堂,与善人为伍,如入芝兰之室,久而不闻其香。不光身边的人重要,环境也重要,在自己喜欢的地方学习知识也是一种别样的享受。这次C语言的课程设计让我懂得了很多,大学其实根本不想我想象的那样子,浑浑噩噩的过日子是没有什么意义的,大学的学分考试也不是那么容易就拿到就过的,C语言程序设计不仅仅教会了我们知识,还让我懂得了学术的严谨性,严苛性,就拿我们C语言来说,容不得一点点差错,哪怕是一个逗号,一个空格,都会导致你的程序无法运行或者完全崩溃。我想好好学习C语言的时候,却不要学了,谢谢王颖老师! 6 源程序清单 #include&l
16、t;stdio.h>#include<stdlib.h> int a,b,c,d,i,j; struct node int num; ; struct node *f22; void exit0() FILE *fp; int k; alp:if(fp=fopen("e:sore.txt","w")=NULL) printf("creat errorn"); printf(" 1*try againn"); printf(" 2*tui chun"); printf("
17、; 3*return menun"); /回到主菜单/alj: scanf("%d",&k); if(k=1) goto alp; else if(k=2) exit(0); else if(k=3) return; else printf("输入错误,请重新输入:"); goto alj; printf(fp,"nn"); fprintf(fp," *运动会分数统计表*nnn"); printf(fp," *项目代号 *"); for(i=1;i<=c+d;i+) pr
18、intf(fp,"%5d",i); printf(fp," "); printf(fp,"n *学校代号*"); for(i=1;i<=a;i+) printf(fp,"%10d ",i); for(b=1;b<=c+d;b+) printf(fp,"%5d",fib.num); printf(fp,"n"); printf(fp,"nn"); printf(fp," the %d school numbersnn",a);
19、 /*注: 本次运动会有%d个学校参赛 */printf(fp," 1 %d组是男子组,%d %d组是女子组n",c,c+1,c+d); /*其中1 %d组是男子组,%d %d组是女子组*/printf("n* 比赛成绩已保存到当前路径下的sore.txt文件中*nn");/* 比赛成绩已保存到当前路径下的"sore.txt"文件中*/ fclose(fp); exit(1); /*主菜单*/int choose() int choo; printf("nn 1*输入成绩n"); printf(" 2*统
20、计各学校的总分n"); printf(" 3*统计各学校各项目的得分n"); printf(" 4*按学校总分排序输出n"); printf(" 5*按男团体总分排序输出n"); printf(" 6*按女团体总分排序输出n"); printf(" 7*按学校编号查询学校某个项目的成绩n"); printf(" 8*按项目编号查询取得前三或前五名的学校n"); printf(" 9*退出nn"); printf(" 请选择:"
21、); scanf("%d",&choo); return(choo-1); /*输入信息*/ void input() int ab,ac,ae,af,g=1,get5=0,0,0,0,0; printf("n 请输入项目代号:"); ale:scanf("%d",&ab); if(ab>c+d|ab<1) printf("n 此项目代号不存在,重新输入:n"); goto ale; ae=0; for(i=0;i<=a;i+) if(fiab.num!=0) ae=1; brea
22、k; if(ae=1) al2: printf("n 此项目成绩已被录入过,是否要重新录入:n"); /此项目成绩曾经已被录入过,是否要重新录入(您输入的项目代号可能有误,强烈建议您查证后再录入)/ printf(" 1+是n");/(若重新录入,以前的该项目成绩将被删除)/ printf(" 2+否n");/不要,待查证后再录入/ scanf("%d",&af); if(af=2) printf("已取消录入!n"); return; else if(af=1) for(i=1;i&l
23、t;=a;i+) if(fiab.num!=0) fi0.num=fi0.num-fiab.num; if(ab<=c) fic+d+1.num=fic+d+1.num-fiab.num; else fic+d+2.num=fic+d+2.num-fiab.num; fiab.num=0; else goto al2; al: printf("n 此项目是以前几名为胜出者:n"); /选择得分标准/printf(" 3-以前三名n");printf(" 5-以前五名n"); scanf("%d",&a
24、c); if(ac=3) printf(" 请按照第一、第二、第三的名次依次输入获胜学校代号:");af=5; for(i=0;i<3;i+) alq: scanf("%d",&ae); if(ae>a|ae<1) printf(" %d 学校代号不存在,重新输入第%d名的学校代号:",ae,g); goto alq; for(b=0;b<5;b+) if(ae=getb) printf(" 同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号:",g); goto a
25、lq; else getb=ae; fae0.num=fae0.num+af; faeab.num=af; if(ab<=c) faec+d+1.num=faec+d+1.num+af; else faec+d+2.num=faec+d+2.num+af; if(af>3) af=af-2; else af-; g+; else if(ac=5) printf(" 请按照第一、第二、第三、第四、第五的名次依次输入获胜学校代号:"); af=7; for(i=0;i<5;i+) alw: scanf("%d",&ae); if(a
26、e>a|ae<1) printf(" %d学校代号不存在,重新输入第%d名的学校代号:",ae,g); goto alw; for(b=0;b<5;b+) if(ae=getb) printf(" 同一个学校不能在同一项目中有两个名次,请重新输入第%d名的学校代号:",g); goto alw; else getb=ae; fae0.num=fae0.num+af; faeab.num=af; if(ab<=c) faec+d+1.num=faec+d+1.num+af; else faec+d+2.num=faec+d+2.nu
27、m+af; if(af>3) af=af-2; else af-; g+; else goto al; printf(" 输入完成! n"); /*学校成绩*/ void each() printf("n 学校代号:团体总成绩n"); for(i=1;i<=a;i+) printf(" %d : %dn",i,fi0.num); /*各项目成绩*/void biaohao() printf("n 项目代号:"); for(i=1;i<=c+d;i+) if(i>9) printf("
28、; %d ",i); else printf("%5d ",i); printf("n 学校代号:n");for(i=1;i<=a;i+) printf("%7d ",i); for(b=1;b<=c+d;b+) if(fib.num>9) printf("%6d",fib.num); else printf("%7d",fib.num); printf("n"); /*按学校总分排序输出*/ void zongfen() struct nod i
29、nt ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("n 学校代号:团体总成绩n"); for(i=1;i<=a;i+) dei.ke=i; dei.num=fi0.num; for(i=1;i<=a;i+) for(b=i;b<=a;b+) if(deb.num>dei.num) ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num
30、; dei.num=ha; for(i=1;i<=a;i+) printf(" %d : %dn",dei.ke,dei.num); /*按男子团队总分排序*/void nanzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct nod *)malloc(sizeof(struct nod)*a+1); printf("n 学校代号:男子团体总成绩n"); for(i=1;i<=a;i+) dei.ke=i; dei.num=fic+d+1.num; f
31、or(i=1;i<=a;i+) for(b=i;b<=a;b+) if(deb.num>dei.num) ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num; dei.num=ha; for(i=1;i<=a;i+) printf(" %d : %dn",dei.ke,dei.num); /*按女子团队总分排序*/void nvzong() struct nod int ke; int num; ; int ha; struct nod *de; de=(struct no
32、d *)malloc(sizeof(struct nod)*a+1); printf("n 学校代号:女子团体总成绩n"); for(i=1;i<=a;i+) dei.ke=i; dei.num=fic+d+2.num; for(i=1;i<=a;i+) for(b=i;b<=a;b+) if(deb.num>dei.num) ha=deb.ke; deb.ke=dei.ke; dei.ke=ha; ha=deb.num; deb.num=dei.num; dei.num=ha; for(i=1;i<=a;i+) printf(" %
33、d : %dn",dei.ke,dei.num); /*按学校编号查询学校某个项目的成绩*/void xuexiao() int dr,dt; printf("n要查询的学校代号:");aly:scanf("%d",&dr); if(dr>a|dr<1) printf("学校代号不存在,重新输入:"); goto aly; printf("要查询的项目代号:"); alo:scanf("%d",&dt); if(dt>c+d|dt<1) prin
34、tf("项目代号不存在,重新输入:");goto alo; printf("第 %d 所学校的第 %d 项目成绩为 %dn",dr,dt,fdrdt.num); /*按项目编号查询取得前三或前五名的学校*/void xiangmu() int ge,sedy=0; printf("n 要查询的项目代号:"); all:scanf("%d",&ge); if(ge>c+d|ge<1)printf("没有此项目代号,重新输入:n"); goto all; for(i=1;i<=a;i+) if(fige.num=2) sedy=1; if(sedy=0) printf("此项目没有录入成绩n"); return; for(i=1;i<=a;i+) if(fige.num=7) printf(" 此项目取前5名学校成绩高到低依次为:n"); break; if(i=a+1) printf(" 此项目取前3名学校成绩高到低依次为:n ");fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学(简便运算)计算题专项练习与答案
- 联合企业激励协议书(2篇)
- 癌症康复课件教学课件
- 南京航空航天大学《电机学》2021-2022学年期末试卷
- 南京工业大学浦江学院《信息交互设计》2022-2023学年第一学期期末试卷
- 南京工业大学浦江学院《设计原理与设计管理》2021-2022学年第一学期期末试卷
- 分数的产生和意义说课稿
- 蹲踞式跳远示范说课稿
- 银凯工业园孵化产业园一区二期工程施工组织设计
- 《夏天的雷雨》的说课稿
- 2024年水电暖安装承包合同
- 缺乳(乳汁淤积)产妇的中医护理
- 2024北师大版新教材初中数学七年级上册内容解读课件(深度)
- 2024年公共营养师三级考试试卷及答案
- 2024年上半年软考信息系统项目管理师真题
- 北京市西城区2023-2024学年高一下学期期末英语试题(解析版)
- 人教版美术六年级上册《第3课 远去的路》说课稿6
- iso220002024食品安全管理体系
- 天津2024年天津市津南医院招聘72人笔试历年典型考题及考点附答案解析
- 2024北京市东城区九年级上期末考试数学试题含答案
- 汽车销售代收款协议书
评论
0/150
提交评论