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

下载本文档

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

文档简介

应用技术学院 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 运动会分数统计系统 专 业 电气工程及其自动化 班 级 0783 学 号 200713010322 姓 名 李 杰 指导教师 王 颖 2008年3 月 20 日 目录一、C语言程序课程设计任务书3二、课程设计主文档9三、流程图11四、源程序清单12五 心得体会18六、参考资料18七、评分表19 湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 运动会分数统计系统 专业班级 电气工程及其自动化 学生姓名 李 杰 学 号 200713010322 指导老师 王 颖 审 批 任务书下达日期:2008 年3月16日任务完成日期:2008年3月20日 前 言C语言程序设计课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1. 设计正确,方案合理。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4. 设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5. 上机演示。6. 按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7. 按本任务书的要求,按附录的要求编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订; 8. 在2008年3月23日之前,请各班学习委员收齐课程设计报告和源程序软盘交王颖老师 ,联系电话:8883238。一C程序课程设计任务书一 课程设计性质与目的: C 语言程序设计是一门实践性很强的课程。 C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力,让学生加深理解书本上所学的知识,提高动手操作的能力以及分析问题和解决问题的能力。二 课程设计包含知识点:1,掌握并熟练运用C语言的基本数据类型与各种表达式以及程序的流程控制语句。 2,掌握数组的基本概念。熟练掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。 3,熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。4,掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。5,掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。三 课程设计要求: 1,学生从以下八个题目中任意选择并完成一个题目。要求每个学生能独立思考认真并按时完成本课程设计所包含的所有内容。2,要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程序流程图和全部源程序,并做出总结。3设计报告的完整格式应包括以下部分的内容:1. 设计总体思路2. 主程序及各个模块说明3. 总体模块框图4. 各个程序模块说明5. 程序流程图6. 程序清单7. 总结与体会四 时间安排:时间任务2008-3-8下午3:40-5:40指导老师给学生布置课程设计的任务及要求2008-3-10到2008-3-15学生根据设计任务及要求,对系统进行需求分析概要设计和详细设计,并在此基础上编写程序代码学生提交系统程序清单初稿上机调试程序2008-3-16 接受指导老师的验收2008-3-16到2008-3-22书写课程设计报告提交课程设计报告五课程设计考核办法: 根据学生所完成课程设计报告的完整性,准确性,和算法实现质量,分为优,良,中, 及格,和不及格 五个等级。六 课程设计指导老师:王颖七 课程设计题目:运动会分数统计系统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、选作内容:允许用户指定某项目采取其他名次取法二、课程设计主文档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函数的下属子功能函数及其调用示意Main()teamscoretemputscoreindexinputOutput三、流程图开始退出系统进入系统输入密码选择功能退出系统进入系统输入以结束比赛成绩继续输入以结束比赛成绩结束退出系统输出团体成绩报表输出各学校详细成绩列表选择功能选择功能四、源程序清单: #include #includestdlib.h #includestdio.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;main()int i,c; /*c为项目编号*/printf(*n);printf( C程序语言课程设计-运动会分数统计n);printf( 设计人: 李杰n);printf(*n);printf(请输入参加运动会的学校个数:);scanf(%d,&n);printf(n有多少个男子项目:);scanf(%d,&m);printf(n有多少个女子项目:);scanf(%d,&w);printf(n本次运动会有%d个学校参加,共设%d个比赛项目,其中男子项目%d个,女子项目%d个。n,n,m+w,m,w);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谢谢!请多多指教!n);return;五、心得体会通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结

温馨提示

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

评论

0/150

提交评论