ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:392.42KB ,
资源ID:17269016      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17269016.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告运动会分数统计Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告运动会分数统计Word文档下载推荐.docx

1、2.1 功能需求本系统主要是运动会分数统计方案设计。运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。 2.2数据需求需要输入学校编号,项目编号,取得的名次,以及哪些名次。2.3 性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。3总体设计3.1系统设计方案本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中,读取文件中信息,从而得到结果。 (1) 菜单设计分为主函数菜单、比赛成绩

2、输出菜单、查询分数统计结果菜单、查询方式子菜单。 (2) 数据保存方式建立文件,数据保存在文件中。运动运分数统计程序(3) 数据类型采用结构体类型。(4) 存储结构采用结构体类型数组存储结构存储。(5) 算法设计输入比赛结果模块中运用了冒泡算法将输入的数据排序。3.2功能模块设计根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩输出模块有四个子模块,分别是:按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。功能模块

3、图如图1所示。 图1功能模块图(1) 比赛成绩输入模块比赛成绩输入模块分为:创建信息部分,该部分需输入学校编号,项目编号,取得的名次,以及哪些名次;算法部分,得到排序结果。(2) 比赛成绩输出模块将以输入的数据按照输出比赛菜单的选择输出相应的数据。(3) 查询比赛成绩模块按照查询比赛结果菜单和其查询方式子菜单查询需要的数据。(4) 调用统计结果将输入的各学校运动会成绩排序输出。4详细设计4.1 数据结构定义建立结构体如下:typedef struct int itemnum; /项目编号 int top; /取名次的数目 int range5; /名次 int mark5; /分数itemno

4、de; /定义项目结点的类型 int schoolnum; /学校编号 int score; /学校总分 int mscore; /男团体总分 int wscore; /女团体总分 itemnode cm+w; /项目数组headnode;/定义头结点类型4.2比赛成绩输入模块 比赛成绩输入模块需要输入学校编号,项目编号,取得的名次,以及哪些名次。算法模块流程图如图2所示. 图2比赛成绩输入模块流程图 此模块定义变量i,j,k,s;先初始化储存分数的数组各元素,for循环实现各学校信息的输入,包括学校编号、项目编号、取前3名or前5名、获得几个名次,使用switch语句实现对输入的各个名次赋予

5、对应的分数。4.3比赛成绩输出比赛成绩输出模块实现按要求输出相应的数据。有以下输出选项:按学校编号输出、按学校总分输出、按男团总分输出、按女团总分输出。图3比赛成绩输出模块流程图模块定义了int choice,i,j,k;int remembern;int sign变量,dowhile包括switch语句,选择输出按学校编号输出、按学校总分输出、按男团总分输出、按女团总分输出相应的数据。for循环实现输出各个方式输出的每个数据。4.4查询比赛成绩模块查询比赛成绩模块包括:按学校编号查询,按项目编号查询。其算法原理相同,例举按学校项目编号查询模块。如图4所示。图4按项目编号查询模块流程图此模块定

6、义了int choice; int i,j,k,s; switch(choice)实现查询的两种方式的选择,当in时输出错误:这个学校没有参加此次运动会! 否则,输入项目编号,如果jm+w|j=0,输出此次运动会没有这个项目。否则,使用for循环输出相关数据,从而实现查询功能。4.5调用统计结果模块调用统计模块从文件中读取数据输出,流程图如图5所示。 图5调用统计结果模块流程图 此模块定义了FILE *report; for循环中套用for循环,for循环分别对学校编号、学校总分、男团总分、女团总分进行输出,在使用for循环对各学校的项目编号、所取名次数量、各个名次输出,实现对文件中的数据的调

7、用。5调试与测试5.1 调试调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。本系统调试过程中遇到的主要问题、原因和解决方法如下面介绍。调试过程中出现的问题和处理方式:(1) 程序出现语法错误发现是输入名次信息的地方忘带地址符&。 添加取地址符。 printf(*名次:); scanf(%d,&hi.cj.ranges);(2)在输出模块不能将全部的学校信息输出,属于算法编写错误,正确的程序应该为:if(hrememberi.mscorehj.mscore) k=rememberi;rememberi=rememberj;rememberj=k;5.2 测试软件

8、测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。测试数据过程如下。(1) 输入功能测试输入数据1:1 1 1 3 3 1 2 3 2 3 2 2 3 2 1 3 2 1 3 2 3 3 1 2 3预期结果:学校编号:1

9、学校总分:15男团总分:10女团总分:5项目编号:所取名次数:3名次:2分数:177运行结果:按照要求输入的数据能够显示正确的结果。6结论课程设计顺利完成,任务书中所提出的要求全部实现不过这个程序还有些不够完善,例如:输入学校各舒适与现在宏定义中确定的,不能改变,有待进一步完善。结束语因为在理论学习中没有好好的掌握,现在要独立完成一个较复杂的程序编写,确实有困难。今后我必需扎实基础理论、认真思考,而且要践行我的承诺,一步一个脚印的走下去,才可以达到我们预期的彼岸!仔细回顾数据结构的学习过程,发现其实他也并不是想象中的那么难。只要肯去攀登!参考文献1 谭浩强.C语言程序设计(第三版).清华大学出

10、版社,20072 姜灵芝,余健.C语言课程设计案例精编.清华大学出版社,20083 吴伟民,严蔚敏.数据结构.清华大学出版社,20084 李廉治,姜文清,郭福顺.数据结构.大连理工大学出版社,1989年5 网上相关资料附录1用户手册(1)首先运行文件运动会统计分数7.exe:如图6所示:图6运行运动会分数统计界面(2) 输入信息:程序首先赋初值,定义学校的个数为2,男生项目为1,女生项目为1。输入1得到进入输入信息模块。如图7所示:图7输入学校运动会分数界面按回车键可得到学校的得分信息和按编号获得的所以信息。(3)输出信息输入2进入输出信息模块,该模块分四项: 如图8所示:图8输出运动会分数界

11、面1 按学校编号输出: 如图9所示:图9按学校编号输出分数界面2 按学校总分输出:如图10所示:图9按学校总分输出分数界面3 按男团总分输出:如图11所示:图11按学校编号男团总分输出分数界面4 按女团总分输出:如图12所示:图12按女团总分输出分数界面5 输入2返回输出信息模块,输入0返回主菜单。(4)查询信息:如图13所示:输入3进入信息查询模块:图13查询界面1 按学校编号查询:如图14所示:图14按学校编号查询界面2 按项目编号查询:如图15所示:图15按项目编号查询界面3 输入错误信息时给出提示:如图16、17所示:图16错误提示界面图17错误提示界面4 输入2继续查询,输入0返回主

12、菜单(5) 调用信息输入4时显示出所有的信息:如图18、19所示:图18调用信息界面图19调用信息界面附录2源程序#includemath.h#include process.h#define n 2/学校数目 #define m 1/男子项目数目 #define w 1/女子项目数目#define null 0headnode hn;/定义一个头结点数组void inputinformation() /输入信息,建立系统 for(i=0;in;i+) hi.score=0; hi.mscore=0; hi.wscore=0; /初始化头结点 printf(*学校编号:hi.schoolnum

13、); /输入头结点信息 for(j=0;jm+w;j+) printf(*项目编号:hi.cj.itemnum);*取前3名or前5名:hi.cj.top);*获得几个名次:k); /输入项目信息 for(s=0;s5;s+) hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分数k; printf( /输入所获名次信息 if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=5; case 2: hi.cj.marks=3; case 3: hi.c

14、j.marks=2; else hi.cj.marks=7; case 4: case 5: hi.cj.marks=1; hi.score=hi.score+hi.cj.marks;/按取前三名还是取前五名分别记分 if(j=m-1) hi.mscore=hi.mscore+hi.cj.marks;/是男子项目则记到男子分数里面去 hi.wscore=hi.wscore+hi.cj.marks;/是女子项目则记到女子项目里面去 nvoid output() /输出函数 int choice,i,j,k; int remembern; int sign; do*1.按学校编号输出.*n*2.按

15、学校总分输出.*n*3.按男团总分输出.*n*4.按女团总分输出.*nnn* 请选择编号*nn:choice); switch(choice) case 1: for(i=0;nn*学校编号:%dn,hi.schoolnum);*学校总分: ,hi.score);*男团总分:,hi.mscore);*女团总分: %dnnn,hi.wscore); /按编号顺序输出 break; rememberi=i; for(j=i+1; if(hrememberi.scorehj.score) k=rememberi;rememberi=rememberj,rememberj=k; / 用冒泡排序方法,用

16、辅助数组记住头结点下标 Printf(“nn*学校编号:%dn”,hrememberi.schoolnum); ,hrememberi.score);,hrememberi.mscore);,hrememberi.wscore);/按所记下标顺序输出 /按学校总分输出 rememberi=i; if(hrememberi.mscore k=rememberi;,hrememberi.schoolnum); /按男团总分输出 for(i=0; rememberi=i; for(j=i+1; if(hrememberi.wscoren)错误:nnn else 要查询的项目编号:j); if(jm+w|j=0)此次运动会没有这个项目nnn/学校编号超出范围,则输出警告 else printf(这个项目取前 %d名,该学校的成绩如下:, h0.cj-1.top); for(k=0;km+w|s=0)此次运动会不包括这个项目.nnn/项目编号超出范围则输出警告该项目取前 %d名,取得名次的学校n,h0.cs-1.top); for(i=0; i for(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1