欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计-运动会分数统计(共18页).doc

    • 资源ID:13515709       资源大小:272.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计-运动会分数统计(共18页).doc

    精选优质文档-倾情为你奉上淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 运动会分数统计 姓 名: 学 号: 专业班级: 系 (院): 设计时间: 设计地点: 成绩:指导教师评语: 签名: 年 月 日专心-专注-专业1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:课程设计题目运动会分数统计任务参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)要求:(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分;(3)可以按学校编号、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校; (5)各学校分数为整型,学校名称、运动项目的名称为字符型;(6)界面友好,有中文提示。 3课程设计说明书一 需求分析生命在于运动,为了让我们的生活更加精彩,国家、社会、学校开办了许多运动会,身为学生的我们也参加了学校开办的运动会,然而运动会中那么多项目,得分不同,参加人员也不同,只靠人统计分数是很麻烦的,因此就需要设计一个程序来帮我们更好、更快、更精确的统计分数。该程序主要用于统计运动会中各个学校所得总分以及各校在男子和女子项目中所得分数,并提供查询功能。该程序需要具备以下功能:1.创建信息:² 创建学校名称、运动项目(字符型);² 输入运动会中各个项目前三名或前五名的成绩(成绩为整数型)。2.信息处理:统计各个学校在运动会中取得的总分;3.信息输出:能够按学校编号、学校总分、男女团体总分排序输出;4.信息查询:可以按学校编号查询学校某个项目的情况也可以按项目编号查询取得前三或前五名的学校; 5.此程序要求界面友好并且有中文提示。二 概要设计1.逻辑结构:采用线性结构结构中的数据元素之间存在着一对一的线性关系;主要采用线性表。2.存储结构: 主要采用线性表的顺序存储;输入操作:输入各个学校的名称、运动项目;输入运动会上前三或前五名成绩。结构体定义 查找操作:1.按学校编号 2.按运动项目编号3.主要核心算法:Createinformation(),/创建学校、运动会项目,输入运动会中前三名或前五名的成绩。OutputSchnum(),/按学校编号排序输出总分。OutputSchscore(),/按学校总分排序输出总分。OutputBoyscore(),/按男子团体总分排序输出总分。OutputGirlscore(),/按女子团体总分排序输出总分。SearchSchname(), /按学校编号各个学校情况。SearchPronum(),/按运动项目查询各个学校情况。输入学校名称、运动项目4.各算法之间的关系:创建信息输入前三名或前五名的成绩 按学校编号排序输出总分按学校总分排序输出总分运动会分数统计信息处理按男子团体总分排序输出总分按女子团体总分排序输出总分按学校编号各个学校情况信息查询按运动项目各个学校情况三 详细设计创建信息:void CreateInformation()/创建信息/int i,a,b;cout<<"请输入学校个数:"while(1)cin>>n;/输入学校个数n/ if(n>=1&&n<=20) /判断学校个数是否在120之间,不在则重新输入/break; else cout<<"输入数据有误,请重新输入:"for(i=1;i<=n;i+)cout<<"请输入第"<<i<<"个学校名称:"cin>>schi.name;/输入学校名称(字符型)/schi.score=0;/将学校总分、男女团体总分初始化为0/schi.boyscore=0;schi.girlscore=0;schi.num=i;/学校的编号/cout<<"请输入男子团体项目个数和女子团体项目个数:"A:cin>>m>>w;/输入男女团体项目数目/if(m<=20&&m>=1&&w<=20&&w>=1)/判断男女团体项目数目是否符合标准/for(i=1;i<=m+w;i+)cout<<"请输入第"<<i<<"个项目的名称:" cin>>proi.name;/输入项目名称/cout<<"请输入第"<<i<<"个项目有前三名还是有前五名(输入3或5):"while(1)cin>>c;proi.rank=c;if(c=3|c=5)break;elsecout<<"输入有误,请重新输入:" cout<<"请输入第"<<i<<"个项目的前"<<c<<"名学校编号:"<<endl;for(a=1;a<=c;a+)B: cout<<"第"<<a<<"名学校编号:" cin>>b;/输入第a名学校编号/ if(b>=1&&b<=n)if(c=5)/判断项目有前三名还是有前五名/proi.numa=b;/第i个项目的第a名编号/ schb.score=schb.score+result5a-1;/统计学校总分/if(i<=m)/判断此项目是男团体还是女团体/schb.boyscore=schb.boyscore+result5a-1;/统计男团体的总分/ else schb.girlscore=schb.girlscore+result5a-1;/统计女团体总分/elseproi.numa=b;/第i个项目的第a名编号/ schb.score=schb.score+result3a-1;/统计学校总分/if(i<=m)/判断此项目是男团体还是女团体/schb.boyscore=schb.boyscore+result3a-1;/统计男团体的总分/ else schb.girlscore=schb.girlscore+result3a-1;/统计女团体总分/elsecout<<"你输入有误,请重新输入:"goto B;cout<<endl;else cout<<"你输入有误,请重新输入:"goto A;信息处理:void Outputschnum()/按学校编号排序,选用简单选择排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;/在i开始的n-i+1个记录中选关键码最小的记录/for(j=i+1;j<=n;+j)if(schj.num<schk.num) k=j;/k中存放关键码最小记录的下标/if(k!=i)/关键码最小的记录与第i个记录交换/l=schi;schi=schk;schk=l;cout<<"按学校编号排列:"<<endl;cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<schi.name<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void Outputschscore()/按学校总分排序,选择直接插入排序/int i,j;for(i=2;i<=n;i+)sch0=schi; /将待插入记录存放到监视哨r0中/j=i-1;/从前一个数开始比较/while(sch0.score<schj.score ) /寻找插入位置/schj+1=schj;j=j-1;schj+1=sch0; /将待插入记录插入到已排序的序列中/cout<<"按学校总分排列:"<<endl;cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<schi.name<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputBoyscore()/按男子团体总分排序输出,采用冒泡排序/int change,i,j;school k;change=TRUE;for(i=1;i<=n-1&&change;+i)change=FALSE;for(j=1;j<=n-i;+j)if(schj.boyscore>schj+1.boyscore)/如果schj比前面aschj-1的小,则交换向上浮/交换数组schj和schj-1/k=schj;schj=schj+1;schj+1=k;change=TRUE;cout<<"按男子团体总分排列:"<<endl;cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<schi.name<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;void OutputGirlscore()/按女子团体总分排列输出,简单选择排序/int i,j,k;school l;for(i=1;i<=n-1;+i)k=i;for(j=i+1;j<=n;+j)if(schj.girlscore<schk.girlscore) k=j;if(k!=i)l=schi;schi=schk;schk=l;cout<<"按女子团体总分排列:"<<endl;cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl;for(i=1;i<=n;i+)cout<<" "<<schi.num<<" "<<schi.name<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl;cout<<endl;信息查询:void Searchschnum()/按学校编号查询/int x,i;cout<<"请输入你要查询的学校编号:"while(1)cin>>x;/输入要查询的学校编号/if(x>=1 && x<=n)/判断输入的学校编号是否存在/break;else cout<<"你输入有误,请重新输入:"cout<<"你要查询的学校有关信息如下:"<<endl;cout<<"学校编号 名称 总分 男子总分 女子总分"<<endl;for(i=1;i<=n;i+)if(schi.num=x)cout<<" "<<schi.num<<" "<<schi.name<<" "<<schi.score<<" "<<schi.boyscore<<" "<<schi.girlscore<<endl; break;cout<<endl;void Searchpronum()/按项目编号查询/int x,i;cout<<"请输入你要查询的项目编号:"while(1)cin>>x;/输入要查询的项目编号/if(x>=1 && x<=w+m)/判断要查询的项目编号是否存在/break;else cout<<"你输入有误,请重新输入:"cout<<prox.name<<"前3或前5名学校的情况如下:"<<endl;cout<<"名次 "<<"学校编号 "<<"名称 "<<"学校总分"<<endl; for(i=1;i<=prox.rank;i+)cout<<" "<<i<<" "<<prox.numi<<" "<<schprox.numi.name<<" "<<schprox.numi.score<<endl;cout<<endl;四 设计与调试分析一开始定义结构体时,定义的不够全面,到后面编码时发现不够用,就要再次定义,这部分比较简单。整个代码在编写过程中,主要在创建信息的时候出现很多问题,一开始构思的时候总是不够全面,不是无法计算男女总分成绩,就是排名得分不知道怎么弄,于是就在网上搜了一些有关信息,找到了一个较好的方式,就是比较麻烦一些,不注意的话就会很容易绕进去,必须一步一步的看清楚。信息输出就比较简单一些,其中按不同方式输出,我就从书上找了几种排序方法,这些书上都有,基本没动。信息查询页比较简单,一开始创建信息的时候就把一些信息存储好了,查询时只需要把那些信息输出来就行了。调试时,有的输入老是循环,查看代码发现时if语句缺少括号,还有就是缺分号、变量没定义等。五 用户手册 操作很简单,按照界面显示一步一步操作就可以,必须要小心输入,而且要按要求,每部基本上都有提示。六 测试成果这是界面信息,介绍设计题目和创建者的个人信息。这是创建信息界面,用于输入学校名称、项目名称以及各个项目每个学校获取名次情况,输入学校、项目名称时用字符型,编号用整型。这是功能菜单界面,你需要干什么就选择那个操作对应的编号,最后选7退出程序。七 附录(源程序清单)4.课程设计心得选了这个题目之后,首先把这个题目认真仔细的分析了一遍,大致在脑中把程序的整个框架结构勾勒一遍,在报告的需求分析和概要设计完整的写出来,然后程序按照概要设计中描绘的一步一步完成。首先,定义结构体,程序需要哪些必须先定义好,结构体定义好后第一部是创建信息,这也是整个代码中最困难,最麻烦的部分,其中需要很多循环,每个循环里还带有循环,必须一一对应,稍有不慎就会出现错误,输入学校名称和数量时还要考虑是否符合要求,需要判断语句,一个字烦。创建项目时,也要考虑相同的问题,之后还要判断有几个名次3个或5个,每个名次得到的分数又不同,这部分又要判断,计算分数时首先计算学校总分然后才计算男女团体分数,计算男女分数也要判断,并且男女团体分数要分开计算,以便后面好输出。信息创建好后就是信息输出了,这部分挺简单的,要求是按学校编号、学校总分、男女团体总分排序输出,只要用一种排序就可以了,也可以用几种,这些书上都有,很简单,没什么困难的,只要细心一些就可以将这一部分搞定,这一部分的四个函数就相当于一个函数。信息查询这部分在我原本想法中应该比较困难,可是在编写时发现这一部分非常简单,比前面的代码简单多了,其中按项目查询时有个地方要小心不然一不小心就会输出与要得到的不一致,需要判断好。最后就是主函数,这一部分就是介绍一下程序用途,调用函数,程序正常运行。

    注意事项

    本文(数据结构课程设计-运动会分数统计(共18页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开