已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 No.18运动会分数统计系统1、课程设计的目的课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。经过这学期对C语言的学习,我们学 习了理论知识,了解了C语言程序设计的思想,这些知识都为下一步的学习打下了坚实的基础。通过本次课程设计,使我明白学习需要理论联系实践,从实践中得出的知识才能真正的掌握。运动会分数统计系统是召开大型运动会必不可少的部分,人工统计分数存在很多缺陷,效率低,易出错,给运动会的顺利召开和运行带来大量的不便,而相比之下使用计算机进行文件信息管理上面的问题就不复存在了。于是编写了一个运动会分数统计系统来解决诸多问题。本程序具有输入、输出、排序、查询和退出功能,可以实现数据的输入、数据的排序以及数据的输出等操作。程序的操作界面简洁美观,易于操作。本程序运用了函数、文件、循环、数组、结构体等知识来进行设计,实现系统和数据结构设计。2、设计方案论证2.1设计思路本程序要求模块化管理,分成菜单函数、输入函数、输出函数、查询函数、排序函数等,控制各个部分从而将程序简单化出来分析。本程序的主要功能是:输入数据:输入各相关数据,例如输入各学校的名称和编号。输出数据:输出相关学校、运动项目的结果。查询信息:查询某个学校或某个运动项目的分数和排名。退出系统:程序编译结束后退出系统。运动会分数统计系统输入运动项目输入学校名称按项目编号输入名次按学校女子总分排序按项目编号查询按学校编号查询退出按学校总分排序按学校男子总分排序 1、 图 1 运动会分数统计系统功能模块图2.2程序设计2.2.1定义数据类型 本程序首先定义了两个结构体作为项目和分数的存储媒介,一是项目结构体,定义了项目名称,前五名学校编号,二是学校结构体,定义了学校编号、学校姓名、学校总分、男子总分、女子总分。定义如下:【1】【2】项目结构体struct pro /表示项目的结构体 string name; /项目名称 int snum6; /前5名学校的编号 p21; 学校结构体struct school /表示学校的结构体 int num; string name; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; 2.2.2主函数及其流程图定义主函数 main()和一系列的功能函数,只有通过这些函数才可实现程序的功能。每次使用都会调用菜单函数。主函数主要是利用for循环语句和while循环语句对数据进行处理。35 读入z是 z=1 否 是 z=2 否 z=3 是 否 z=4 是 否 z=5 Bianhao zongfen malezf 是 否语句 语句 语句 是 z=6 femalezf 语句 cxsch cxxm break 语句 语句 语句 图 2 主函数流程图开始输入m,wm=1&w=1?y=1y=0输出“输入数据有误,请重新输入”结束2.2.3输入函数及其流程图 否 是 图 3 输入函数流程图 2.2.4功能函数流程图for i=1 to (n-1) for j=i to n schi.numschj.num 真 假 t =schi schi=schj schj=t输出“ 按编号排列: ”输出“编号 学校名称 总分 男子总分 女子总分:”for i=1 to n输出schi.numschi.num,t 图 4 按编号排列流程图i,j,s,n输出“输入需要查询的项目编号:”读入s s=1&s=n真 假用break语句结束循环 输出“输入数据有误,请重新输入:” 图 5 输入查询项目编号流程图i,j,t,schi.scorefor i=1 to (n-1) for j=i to n schi.scoreschj.score 真 假 t =schi schi=schj schj=t输出“按学校总分排序:”输出“编号 学校名称 总分 男子总分 女子总分”for i=1 to n 输出schi.score 图 6 按学校总分排列流程图图 6 按学校总分排列流程图2.3源程序:#include#include#include #include #include #includeusing namespace std; int n; /n个学校 int m; /m个男子项目 int w; /w个女子项目 struct pro /表示项目的结构体 string name; /项目名称 int snum6; /前5名学校的编号 p21; struct school /表示学校的结构体 int num; string name; /学校名称 int score; /学校总分 int male; /男子总分 int female; /女子总分 sch21; int integral5=7,5,3,2,1;/前五名得分 void input() int i,j,y,x; printf(输入学校数目:); y=0; while(1) scanf(%d,&n); if(n=1&n=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:); for(i=1;; schi.score=0; schi.female=0; schi.male=0; schi.num=i; printf(输入男子项目数和女子项目数:); y=0; while(1) scanf(%d%d,&m,&w); if(m=1&w=1)y=1; if(y)break; else printf(输入数据有误,请重新输入:); for(i=1;i=m+w;i+) printf(输入第%d个项目的名称:n,i);for(i=0;i=(m+w);i+) scanf (%dsn,& );printf(输入第%d个项目的前5名的学校编号:n,i); for(j=1;j=1&x=20)y=1; if(y)break; else printf(输入数据有误,请重新输入:); pi.snumj=x; schx.score+=integralj-1; if(i=m)schx.male+=integralj-1; else schx.female+=integralj-1; void print(int i) printf(%d,%s,%d,%d,%dn,i,,schi.score,schi.male,schi.female); void bianhao() /按编号排序 int i,j; school t; for(i=1;in;i+) for(j=i;jschj.num) t=schi;schi=schj;schj=t; printf(n按编号排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); void zongfen() /按学校总分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.scoreschj.score) t=schi;schi=schj;schj=t; printf(n按学校总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); ofstream fout;fout.open(运动会分数统计.txt); printf(编号 学校名称 总分 男子总分 女子总分n);for(i=1;i=n;i+) printf(%d,%s,%d,%d,%dn,i,t,schi.score,schi,schj); fout.close(); void malezf() /按学校男总分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.maleschj.male) t=schi;schi=schj;schj=t; printf(n按学校男子总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=n;i+) print(i); void femalezf() /按学校女总分排序 int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.femaleschj.female) t=schi;schi=schj;schj=t; printf(n按学校女子总分排列:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=1&s=n)y=1; if(y)break; else printf(输入数据有误,请重新输入:); printf(该学校相关信息:n); printf(编号 学校名称 总分 男子总分 女子总分n); for(i=1;i=1&s=n)y=1; if(y)break; else printf(输入数据有误,请重新输入:); printf(前5名学校编号及名称为:n); printf(名次 编号 学校名称n); for(i=1;i=5;i+) printf(%d,%d,%cn,i,y,s); void solve() /菜单函数 int z; while(1) printf(n选择您需要的操作(选择序号):n); printf(1.按学校编号排序输出n); printf(2.按学校总分排序输出n); printf(3.按学校男总分排序输出n); printf(4.按学校女总分排序输出n); printf(5.查询某个学校成绩n); printf(6.查询某个项目成绩n); printf(7.结束nn); scanf(%d,&z); if(z=1)bianhao(); if(z=2)zongfen(); if(z=3)malezf(); if(z=4)femalezf(); if(z=5)cxsch(); if(z=6)cxxm(); if(z=7)break; int main() /主函数 input(); solve(); return 0; 3. 设计结果与分析3.1运行程序将源程序编译、链接后生成可执行文件,运行该文件会看到如图7所示的提示信息,输入9后按回车,根据提示输入信息,如图所示:图 7 输入参加运动会的学校数目和名称的界面运行程序时,首先调用input()函数,该函数主要是利用for循环输入各个参加运动会的学校的名称。3.2 增加信息输入如上信息,按回车,并根据提示输入运动会的项目个数和名称以及各个项目前5名的学校编号,出现如下的界面: 图 8 输入运动会的项目个数和名称以及各个项目前5名的学校编号的界面 输入后系统调用input()函数,并提示输入第n个项目的名称,回车提示输入获得本项目前五名的学校编号,先利用if 语句判断是否满足条件,再利用for 循环语句输入相关的信息。3.3功能操作 3.3.1输入完毕按回车,出现菜单函数界面 图 9 菜单函数界面 输入信息结束后按回车,出现菜单函数界面,此时系统调用solve()函数,该函数主要是利用printf语句输出,其结图所示。 3.3.2按学校编号顺序输出 图 10 按学校编号顺序输出界面 在输入1按回车后,结果如图所示。该部分调用bianhao()函数对学校排序,主要利用for循环语句嵌套的选择法来进行排序,用for 循环语句输出结果。3.3.3按学校总分排序输出 图 11 按学校总分排序界面 本部分调用zongfen()函数对各学校的总分数排序,在输入2后按回车出现如图界面。主要是利用for循环语句嵌套的选择法来进行排序,用for循环语句输出结果。3.3.4按学校男总分排序输出 图 12 按学校男子总分排序界面 本部分调用malezf()函数对各学校的女子分数排序,在输入3后按回车出现如图界面。主要是利用for循环语句嵌套的选择法来进行排序,用for循环语句输出结果。3.3.5按学校女总分排序输出图 13 按学校女子总分排序界面 本部分调用femalezf()函数对各学校的女子分数排序,在输入2后按回车出现如图界面。主要是利用for循环语句双层嵌套的选择法来进行排序,用for循环语句输出结果。3.3.6查询学校编号为3的相关信息和分数 图 14 查询某学校的分数 本部分调用cxsch()函数对某学校的分数查询,输入5按回车后,出现提示信息“输入需要查询的学校编号:”根据提示输入3,按回车后,结果如图所示。该部分利用while循环语句可以实现多次查询,并利用if语句判断是否满足条件,满足则执行输出结果语句,否则提示错误信息。3.3.7查询项目编号为6的运动项目信息和前五名学校排名 图 15 查询某项目成绩界面 本部分调用cxxm()函数对某项目的分数排序,输入6按回车后,出现提示信息“输入需要查询的项目编号:”,根据提示输入6,按回车后,结果如图所示。该部分利用while循环语句可以实现多次查询,并利用if语句判断是否满足条件,满足则执行输出结果语句,否则提示错误信息3.3.8退出程序 图 16 退出程序界面 输入7按回车后,结果如图所示,此时函数执行break语句,出现“Press any key to continue” 提示信息,结束程序。四、设计体会经过这学期对C语言的学习,我们学习了理论知识,了解了C语言程序设计的思想和方法,这些知识都为我们的下一步学习打下了坚实的基础。本次课程设计,我的题目是运动会分数统计系统,通过这几天的上网查找资料和编译运行,我发现自己在各个方面还有很多不足,希望经过这次的实践后,不断学习,努力充实自己,开拓眼界,转换思维,不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 14392.2-2025国际贸易单证样式第2部分:电子单证
- 2025年二级建造师考试试题一汇编附答案详解
- 2025年导游资格证考试历年真题汇编及答案解析套装
- 中小学生交通安全计课件
- 2026年终自我鉴定
- 应急救援知识考试试题及答案
- 建筑信息模型(BIM)应用技术试题及答案
- 开学第一课主题班会(教案4篇)
- 技师公共基础试题及答案
- 招聘教师考试《教育公共基础知识》试题及答案解析
- 2025西藏华泰龙矿业开发有限公司招聘39人笔试历年典型考点题库附带答案详解试卷2套
- 2025年六西格玛绿带题库及答案
- 2025年河北石家庄市直事业单位公开选调工作人员173名考试笔试模拟试题及答案解析
- 公务接待礼仪及物资准备清单
- 感恩教育:“心怀感恩向阳而行”-2025-2026学年高中主题班会
- 2025秋期版国开电大本科《心理学》一平台形成性考核练习1至6在线形考试题及答案
- “巴渝工匠”杯第十三届青年职业技能大赛(全媒体运营师赛项)备赛试题库(含答案)
- 风电场设备材料设备清单
- SAP系统切换策略及系统并行
- 新媒体文案创作与传播-新媒体文案概述
- 国家开放大学《人文英语4》边学边练参考答案
评论
0/150
提交评论