C语言课程设计-运动会分数统计系统2.doc_第1页
C语言课程设计-运动会分数统计系统2.doc_第2页
C语言课程设计-运动会分数统计系统2.doc_第3页
C语言课程设计-运动会分数统计系统2.doc_第4页
C语言课程设计-运动会分数统计系统2.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

課 程 設 計 報 告課程名稱 C語言課程設計 課題名稱 運動會分數統計系統 專 業 電氣工程及其自動化 班 級 0783 學 號 200713010307 姓 名 许 鹏 指導教師 王 颕 2008年3月 20 日 湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 运动会分数统计系统 专业班级 电气工程及其自动化 学生姓名 许 鹏 学 号 200713010307 指导老师 王 颖 审 批 任务书下达日期:2008 年3月16日任务完成日期:2008年3月20日C语言课程设计任务书C语言程个序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基础技能和技巧,多人合作,以致一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和联系相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于理论与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养程序设计工作所需要的知识综合能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了十五个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘(缺一不可)收齐以后交指导老师。 目的全面熟悉、掌握C语言基本知识,掌握C语言程序设计中的顺序、分支、循环三种结构及数函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后再在专业课程中应用计算机系统解决计算、分析、实验和设计等等学习环节打下较扎实的基础。二、基本情况、课程类别:必修课课程学分:1学分课程学时:一周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排时间任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析、概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序修改并完善程序并上机调试程序2008-3-16接受指导老师的验收2008-3-16到2008-3-22书写课程设计报告提交课程设计报告四、设计可调试过程规范化要求1) 需要分析分析系统功能需求以及用户操作流程。2) 概要设计在需要分析的基础上,确定系统总体框架(系统功能结构图)3) 详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。4) 代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量。重点功能部分均要求给出清晰的程序注释5) 程序调试程序编译、连接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需要对程序进行单步调试,在进行过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程序能够基本正确运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。五、设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。课程设计报告的内容应包括以下五个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 概要设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 主要源程序代码:包括存储结构设计说明,以及完整源程序清单;5) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在的问题的思考(列出主要问题的的出错想象、出错原因、解决方法及效果等);6) 总结:包括课程设计过程中的学习体会与收获,对C语言和本次课程设计的认识以及自己的建议等内容。7) 书写格式严格按所附要求书写。附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。正文格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距22 。正文内容:一、课题的主要功能;二、课题的功能模块可划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序源代码)。六、考核方式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格可不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:1) 平时出勤(占10%)2) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)3) 程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)4) 设计报告(占30%)5)独立完成情况(占10%) 七、指导老师王颖八、课程设计题目.设计课题七:运动会分数统计系统1、问题描述参加运动会的n个学校编号为ln。比赛分成m个男子项目和w个女子项目,项目编号分别为lm和m1mw。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分为5,3,2设计一个统计程序按名次产生各种成绩单、得分报表。2、基本要求1.产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。2.比赛项目既要有径赛,又要有田赛。3测试资料对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例资料。4实现提示1) 数据结构:线性表2) 数据库结构:下面四张表构成该系统的基本数据库,全部输出报表由系统根据基本表自动生成。floatcharcharcharcharchar成绩类型性別项目编号学校编号运动员编号 姓名运动员编号初始化时完成录入校名学校编号项目名项目编号3). 可以假设n20,m30,w20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并输入运动员编号、学校编号和成绩等。5、选作内容 允许用户指定某项目采取其它名词取法目录二、课程设计主文档91、课程设计题目92、内容摘要93、关键词94、总体设计方案的选定95、主要模块和各子模块的设计图96、流程图117、源程序清单128、心得体会22应用技术学院课程设计评分表24二、课程设计主文档1、课程设计题目运动会分数统计系统2、内容摘要该系统是一个简单的分数统计系统,能够使选手和学校了解自己的得分及排名情况。其功能包括:团体总分统计,男子总分统计,女子总分统计等。 3、关键词分数统计系统4、总体设计方案的选定程序的功能:要实现对分数统计进行统一有效的管理需要通过 用函数、数据类型、C语句(控制语句、函数调用语句、表达式语句、复合语句等)来实现。这个系统有很多个接口,这些接口的调用,最终是通过函数之间的调用来实现的。5、主要模块和各子模块的设计图程序的模块组成以及各个函数的功能:1程序的模块组成:主菜单函数、主函数:main();得分分配函数:score(); 团体成绩计算函数:teamsco();自定义清屏函数:my_clear();输出学校成绩列表函数:output();输出团体报表函数:teamput();整理函数:index();2各函数的主要功能:主函数:显示主菜单;自定义清屏函数:设置颜色;自定义输入函数:输入“a”;团体报表输出函数:输出团体成绩;学校成绩列表函数:输出各个学校成绩列表;整理函数:把各项目个人学校得分统计出来;【详细设计】相关的数据类型:struct result /*定义比赛名次列表元素*/int scnum; /*学校编号*/char name20; /*姓名*/int position; /*名次*/int score; /*得分*/;struct match /*定义项目结构体*/int matnum; /*项目编号*/int num; /*项目名次个数*/struct result list5; /*名词列表数组*/;struct sclist /*定义成绩单元素*/int matnum; /*项目编号*/int position; /*名次*/char name20; /*姓名*/int score; /*得分*/;struct school /*定义学校结构体*/int scnum; /*学校校号*/struct sclist list50; /*成绩单列表数组*/int team; /*团体总分*/int mteam; /*男子团体总分*/int fteam; /*女子团体总分*/int num; /*累加数*/;struct match ma50;struct school sc20;函数间的调用关系图如下main函数的下属子功能函数及其调用示意output();score()void main()teamsco();index();my_clear();teamput();6、流程图開始退出系統進入系統輸入密碼選擇功能退出系統進入系統輸入以結束比賽成績繼續輸入以結束比賽成績結束退出系統輸出團體成績報表輸出各學校詳細成績列表選擇功能選擇功能7、源程序清单#include #includestdlib.h #includestdio.h#includegraphics.hint n,m,w;struct result /*定义比赛名次列表元素*/int scnum; /*学校编号*/ char name20; /*姓名*/ int position; /*名次*/ int score; /*得分*/;struct match /*定义项目结构体*/int matnum; /*项目编号*/ int num; /*项目名次个数*/ struct result list5; /*名词列表数组*/;struct sclist /*定义成绩单元素*/int matnum; /*项目编号*/ int position; /*名次*/ char name20; /*姓名*/ int score; /*得分*/;struct school /*定义学校结构体*/int scnum; /*学校校号*/ struct sclist list50; /*成绩单列表数组*/ int team; /*团体总分*/ int mteam; /*男子团体总分*/ int fteam; /*女子团体总分*/ int num; /*累加数*/;struct match ma50;struct school sc20;score(a,b) /*得分分配函数*/int a,b; /*项目编号,项目名次个数*/if(b=3) maa-1.list0.score=5; maa-1.list1.score=3; maa-1.list2.score=2; if(b=5) maa-1.list0.score=7; maa-1.list1.score=5; maa-1.list2.score=3; maa-1.list3.score=2; maa-1.list4.score=1;return;input(a) /*输入函数*/int a; /*项目编号*/int i; doprintf(n第%d项:取前几名(3/5)?,a); scanf(%d,&maa-1.num); if(maa-1.num!=3)&(maa-1.num!=5) printf(n!error:输入的数应为3或5!n); while(maa-1.num!=3)&(maa-1.num!=5); score(a,maa-1.num); /*调用得分分配函数*/ for(i=0;imaa-1.num;i+) maa-1.listi.position=i+1; printf(n第%d名:学校编号:,i+1); scanf(%d,&maa-1.listi.scnum); printf(姓名:); scanf(%s,&); printf(得分:%d,maa-1.listi.score);return;index() /*整理函数*/int i,j,k,t; for(i=0;in;i+) sci.scnum=i+1; /*初始化校号*/ sci.num=0; /*初始化累加数*/ for(i=0;im+w;i+) for(j=0;jmai.num;j+) for(k=0;kn;k+) if(mai.listj.scnum=sck.scnum) sck.listsck.num.matnum=mai.matnum; sck.listsck.num.position=mai.listj.position; for(t=0;t20;t+) t=t; sck.listsck.num.score=mai.listj.score; sck.num+;return;teamsco() /*团体成绩计算函数*/int i,j; for(i=0;in;i+) sci.team=0; sci.mteam=0; sci.fteam=0; /*初始化*/ for(i=0;in;i+) for(j=0;jsci.num;j+) sci.team=sci.team+sci.listj.score; /*团体成绩计算*/ if(sci.listj.matnum=m) sci.mteam=sci.mteam+sci.listj.score; /*男子团体成绩计算*/ else sci.fteam=sci.fteam+sci.listj.score; /*女子团体成绩计算*/return;output(a) /*输出学校成绩列表函数*/int a;int i; printf(n成绩报表 学校编号:%dn,a); printf(比赛项目编号 名次 姓名 得分n); for(i=0;isca-1.num;i+) printf(%6d%10d%10s%15dn,sca-1.listi.matnum,sca-1.listi.position,,sca-1.listi.score);return;teamput() /*输出团体报表函数*/int i; printf(n团体成绩报表n); printf(学校编号 团体总分 男子团体总分 女子团体总分n); for(i=0;in;i+) printf(%4d%7d%11d%13dn,sci.scnum,sci.team,sci.mteam,sci.fteam);return; void my_clear(int fg_color,int bg_color) /*自定义清屏函数*/ textbackground(bg_color); textcolor(fg_color); clrscr(); main()int i,c; /*c为项目编号*/my_clear(2,4);printf(*n);printf( n);printf( 欢迎使用我的运动会分数统计系统 n);printf( 制作人:许鹏 n);printf( 1:进入系统 n);printf( n);printf( 2:退出系统 n);printf( n);printf(*n);printf(你选择的是:);scanf(%d,&c);while(c!=2) if(c=2) break;else printf(请输入正确密码(否则将弹出程序):);scanf(%d,&m);if(m!=521) break;else; clrscr(); my_clear(1,2); gotoxy(25,10); printf(请输入参加运动会的学校个数:n); gotoxy(25,12); printf(有多少个男子项目:n); gotoxy(25,14); printf(有多少个女子项目:n); gotoxy(52,10); scanf(%d,&n); gotoxy(42,12); scanf(%d,&m); gotoxy(42,14); scanf(%d,&w);clrscr(); printf(*n); printf(本次运动会有%d个学校参加,共设%d个比赛项目,其中男子项目%d个,女子项目%d个。n,n,m+w,m,w); printf(n =退出请按 0 = n); printf( 请输入比赛结果资料n); printf(*n); for(i=0;i0)&(c=0)&(c=m+w) output(c); /*调用输出学校成绩列表函数*/ else printf(n!error:输入的数应为1-%d之间的整数!n,m+w); /*输入出错信息*/ clrscr();/*清屏函数*/printf(*n);printf( n);printf( n);printf( 谢谢使用运动会分数统计系统 n);printf( 请多多指教! n);printf( 再见! n);printf( n);printf( 请按任意键退出系统 n);printf( n);printf( n);printf( n);printf(*n);return; 8、心得体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,计算机编程已经成为当今计算机应用中空前活跃的领域, 在生活中可以说是无处不在。经过一周的C语言课程设计,我不但实践了课本的知识,还制作了自己的小程序,感觉自己对C语言有了更深一步的了解。在实践中,自己编程常会犯错误,并总结一些克服缺点的方法。深刻体会到程序设计中最重要的一部分不是编写源程序,而是调试过程。只有经过调试程序,我们才能掌握正确的语法知识及把问题的解决方法用程序语言来表达。在设计程序的同时也增长了翻阅有关文献的能力,加强了实践能力及自学能力,培养了分析问题 、编程和动手能力,掌握了程序设计基本技能。回顾起此次课程设计,至今我仍感慨颇多。如;有时遇到了一个错误怎么找也找不到原因所在,找了老半天结果却是一个函数放错了地方所致,有时一个功能不知道怎么实现找这个、找那个。有所编到最后一运行却告诉我错误,那真的很烦人。以前上课都是学一些最基本的东西,觉得很枯燥,而现在却可以将以前学的东西编出有实际价值的东西,这样自己非常的投入,有时候一编就是二三个小时坐在计算机前面,有时候连吃饭都忘了

温馨提示

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

评论

0/150

提交评论