




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计课题:运动会分数统计姓名:学号:指导教师 :东华大学信息科学与技术学院2018/1/15设计题目 :运动会分数统计 任务 :参加运动会有 n 个学校,学校编号为 1 n。比赛分成 m个男子项目,和 w个 女子项目。项目编号为男子 1m,女子 m+1 m+w。不同的项目取前五名或前三 名积分;取前五名的积分分别为: 7、5、3、2、1,前三名的积分分别为: 5、 3、2;哪些项目取前五名或前三名由学生自己设定。 m=20,n=20)功能要求 :1可以输入各个项目的前三名或前五名的成绩;2能统计各学校总分;3可以按学校编号、学校总分、男女团体总分排序输出; 4可以按学校编号查询学校
2、某个项目的情况; 5 可以按项目编号查询取得前三或前五名的学校。需求分析 : 本运动会分数统计系统所具备的基本功能是输入运动会各项目的成绩,要 求能依据各种排序要求输出显示成绩统计结果,并能提供对相关项目和学校的 查询功能。概要设计 : 根据课题功能要求和需求分析,本程序采用结构体数组用来存放每个学校 的学校名称、总分等信息以及项目积分和排名情况 同样用结构体型)。 struct Schoolchar schname20 。struct Projectint rank 。int score 。projectM+W 。 / 学校结构体中包含项目结构体int total,mtotal,wtotal
3、,number 。schoolN 。 /N 初始宏定义为参赛学校个数。 具体实行过程中定义了若干用于输入和排序显示的函数。/ 14void Showbasic( 。void Set(int h,int pnum void Input( 。 / 可由用户临时设定项目前三或前五名的排序方式。void Total( 。/ 统计每个学校的男女团体总分和学校总分 void Order_number( 。/ 按学校编号排序void Order_total( void Order_mtotal( void Order_wtotal(/ 按学校总分排序/ 按男子团体总分排序void Search_school
4、(/ 根据学校编号查询学校项目情况/ 根据项目编号查询前几门的学校void Search_project(程序调用关系:/ 按女子团体总分排序调试分析:a. 本程序起初采用结构体数组下标作为学校编号的标志,后来在各种冒泡排 序过程中数组元素位置发生交换,导致按学校编号排序输出不正确的结果。 经改进,后来在结构体中又添加了学校编号成员 number, 使之成为学校的唯 一标识。b. 在用户进行输入操作时,若未输入合理范围内的数值,程序会自动判错。 但是当在需要输入整型数值的地方输入字符时,会导致程序死循环。后经纠 正,程序可以自动判断用户任意输入的不合法指令,大大提高了程序的健壮 性。用户手册:
5、1)演示程序的运行环境为 Windows 7 系统, Microsoft Visual Studio 6.0 中的 Microsoft Visual C+ 6.0中运行。2)进入演示程序后即显示 DOS形式的界面:/ 143)界面友好,用户根据菜单选项和提示,键入命令进行相应操作即可。 测试结果:程序运行功能展示及部分截图。1、程序运行第一步,介绍此次运动会参赛学校及项目等信息,方便后来的操作2、根据菜单选择输入成绩情况,可自动判断输入命令有效性。面分别为按各种方式排序显示的程序运行截图/ 144、按学校或项目编号查询成绩情况。详细设计: 程序设计源代码 #include#include us
6、ing namespace std 。#define N 5 /初始宏定义学校个数4 / 14#define M 5 /男子项目个数#define W 5 /女子项目个数struct Schoolchar schname20 。 struct Projectint rank 。int score 。projectM+W 。 / 学校结构体中包含项目结构体 int total,mtotal,wtotal,number 。schoolN 。 /N 个结构体变量代表 N 个学校char *pronameM+W= 男子 100M, 男子 200M, 男子 400M, 男子跳高 , 男子跳远 , 女子跳
7、高 , 女子跳远 , 女子铅球 , 女子 100M, 女子 400M 。/ 初始化项目名称和后来初始化学校名称,提高程序通用性。void Showbasic(东华大学 。 上海交大 。复旦大学 。 同济大学 。 华东师范大学 。 / 介绍运动会参赛学校和项目等基本情况,更人性化。strcpy(school0.schname,strcpy(school1.schname,strcpy(school2.schname,strcpy(school3.schname,strcpy(school4.schname,for(int i=1。 ischooli-1.number=i 。cout本次运动会参赛
8、学校和男女项目基本情况 *n 。cout* 学校名称* 学校编号 n 。for(i=0 。icoutleftschooli.schnamerightschooli.numberendl 。coutn 。cout* 项目名称 * 项目编号 n 。for(int j=0 。 j coutleftpronamejrightj+1endl coutif(h=3/ 14coutn 项目 pronamepnum-1 的成绩为 输入学校编号 N ) :endl 。for(int j=1 。 jcout 第 jschoolnum 。 while(!cin|schoolnumN char str15 。 cin
9、.clear( 。cin.getline(str,15 。 coutschoolnum 。 jectpnum-1.rank=j 。 if(j=1 jectpnum-1.score=5 。 else if(j=2jectpnum-1.score=3。else if(j=3jectpnum-1.score=2。 if(h=5 coutn 项目 pronamepnum-1 的成绩为 输入学校编号 N ) :endl 。for(int
10、j=1 。 jcout 第 jschoolnum 。 while(schoolnumN char str15 。 cin.clear( 。1至1至/ 14 cin.getline(str,15 。coutschoolnum 。 jectpnum-1.rank=j 。if(j=1 jectpnum-1.score=7 。 TOC o 1-5 h z else if(j=2 jectpnum-1.score=5。else if(j=3 schoolschoolnum-1.p
11、rojectpnum-1.score=3。else if(j=4 jectpnum-1.score=2。else if(j=5 jectpnum-1.score=1。void Input(/ 特点:可由用户临时设定项目前三或前五名的排序方式。int pnum,h,k 。coutn 成绩录入 n 。coutpnum。 while(!cin|pnumW+M/ 可以判断任何非法的输入,提示重新输入 char str15 。cin.clear( 。 cin.getline(str,15 。coutpnum。cout 选
12、择项目排名方式 h 。while(!cin|h!=3&h!=5char str15 。cin.clear( 。/ 14 cin.getline(str,15 。couth 。Set(h,pnum 。/ 输入项目编号和排序方式后,自动调用此函数进行成绩输入。 cout 选择是否继续录入,输入 1是)或 0k 。while(!cin|k!=0&k!=1 char str15 。cin.clear( 。 cin.getline(str,15 。coutk 。if(k=1Input( 。void Total(/ 统计每个学校的男女团体总分和学校总分for(int k=0 。 kfor(int i=0
13、。 ischoolk.mtotal+=jecti.score。for(int j=M 。 jschoolk.wtotal+=jectj.score。schoolk.total=schoolk.wtotal+schoolk.mtotal 。void Order_number(/ 按学校编号排序coutn 运动会分数统计结果 n 。cout 按学校编号排序显示: endl 。女子项目cout * 学校名称 总分 男子项目总分 总分 n 。for(int i=0 。i/ 14 for(int k=0 。 kif(schoolk.number=i+1 / 标
14、志学校结构体变量的是学校编号,而不是数组 下标。coutrightschoolk.schnamerightschoolk.tot alrightschoolk.mtotalrightschoolk.wtotal endl 。cout/ 按学校总分排序struct School temp 。for(int i=0 。 i for(int j=0 。 j if(schoolj.total temp=schoolj 。schoolj=schoolj+1 。 schoolj+1=temp 。运动会分数统计结果 coutnn 。cout 按学校总分排名显示: endl 。cout * 学校名称 总分 男
15、子项目总分 女子项目 总分 n 。for(int k=0 。 kcoutrightschoolk.schnamerightschoolk.totalrightschoolk.mtotalrightschoolk.wtotalendl 。/ 14cout / 按男子团体总分排序struct School temp 。for(int i=0 。 ifor(int j=0 。 jif(schoolj.mtotaltemp=schoolj 。schoolj=schoolj+1 。 schoolj+1=temp 。coutn 运动会分数统计结果 n 。cout 按男子团体总分排名显示: endl 。女子
16、项目cout * 学校名称 总分 男子项目总分 总分 n 。for(int k=0 。 k coutrightschoolk.schnamerightschoolk.tot alrightschoolk.mtotalrightschoolk.wtotal endl 。cout / 按女子团体总分排序struct School temp 。for(int i=0 。 ifor(int j=0 。 jif(schoolj.wtotal/ 14temp=schoolj+1 。schoolj+1=schoolj 。schoolj=temp 。coutn 运动会分数统计结果 n 。cout 按女子团体总
17、分排名显示: endl 。女子项目cout * 学校名称 总分 男子项目总分 总分 n 。for(int k=0 。 k coutrightschoolk.schnamerightschoolk.tot alrightschoolk.mtotalrightschoolk.wtotal endl 。cout/ 根据学校编号查询学校项目情况couta 。while(!cin|aNchar str15 。cin.clear( 。cin.getline(str,15 。couta 。struct School temp 。for(int i=1 。 iif(a=schooli-1.number/ 14
18、temp=schooli-1 。break 。/ 找到成员 number 为指定值的 Student 结构体变量coutntemp.schname 成绩统计 n 。cout( 排名为 0表示未参与排名) n 。cout 项目编号 项目名称 积分 排名 n 。 for(i=0 。 icouti+1 jecti.rankendl 。 cout/ 根据项目编号查询前几门的学校coutb 。 while(!cin|bW+Mchar str15 。cin.clear( 。cin.getline(str,15
19、 。coutb 。coutn 项目 pronameb-1 排名统计 n 。cout( 排名为 0表示未参与排名) n 。 cout 排名 学校 n 。for(int i=1 。 ifor(int k=0 。 k/ 14if(jectb-1.rank=i coutirightschoolk.schnameint i=1,k 。Showbasic( 。coutcout数据结构课程设计n 。制作人:朱正威 nn 。coutcoutcoutcoutcout| 0.coutcout| 3.cout |coutcoutcout | 7.coutcoutk 。while(!cin|k7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主管工作总结的成果总结计划
- 网络时代下的班级管理创新计划
- 农田临时雇工合同样本
- 出售大件挂车合同标准文本
- cnc加工合同样本
- 主持人演出合同范例
- 其他垃圾合同样本
- 与美容师合同标准文本
- 二灰材料合同样本
- 2025「合同管理专家经验」工程合同监管与行政控制策略:电脑化资料运用
- 高中数学必修二(人教A版2019)课后习题答案解析
- 【轻型载货汽车离合器设计13000字(论文)】
- 期末(试题)-2023-2024学年四年级下册数学人教版
- 2024届北京市海淀区初三语文二模作文6篇高分范文:“有了你我真不一样”
- 行政复议法-形考作业3-国开(ZJ)-参考资料
- 2024年公务员(国考)之行政职业能力测验真题及参考答案(完整版)
- 2024年天津市滨海新区中考一模历史试题
- 柜式七氟丙烷气体灭火系统安装与综合项目施工专项方案
- 安全生产责任制培训课件
- 2021年4月自考00808商法试题及答案含解析
- 2024年广州市高三一模高考英语试卷试题答案详解(含作文范文)
评论
0/150
提交评论