数据结构实验预习报告——计算机设计大赛赛事统计

问题描述

        参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。

基本要求

1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;

2)能统计各学校的总分;

3)可以按照学校编号或名称查询,学校的总分、各项目的总分排序输出;

4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;

5)数据存入文件并能随时查询

设计要求

1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。

2)输出形式:有中文提示,各学校分数为整数

3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,完成相关功能的要求。

4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。

测试数据

  要求使用全部合法数据,整体非法数据,局部非法数据。进行程序测试,以保证程序的稳定。

实现提示

  假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。

二、问题分析和任务定义
题目中没有给我们相应数据来处理,所以要自己生成。可以自己手动输入,也可以通过随机数生成。在生成时要注意以下两点:             

队伍总数(teams)、学校总数(schools)和赛事项目总数(events)存在以下关系:

10*events<=teams<=6*schools                             


需要完成的功能:     

1.照学校编号或名称查询,学校的总分输出;                                                                    
2.照学校编号或名称查询,学校各项目的总分排序输出;                                                           
3.按学校编号查询学校某个项目的获奖情况;                                                                  
4.可以按项目编号查询取得前三名的学校(注意并列的情况);

三、逻辑设计
1.变量的类型说明:

Team类    参加的项目(int) 所在学校(string)获得成绩(int)
School类    学校的名称(string)和编号(id)参赛队伍数量(int)

2.变量说明:

schools[n]    参加的学校数组(School类型)
events[m]    比赛项目(int)
teams[i]    参加的队伍(Team类型)
total[m]    各项目人数
rank[m][total[m]]    每个项目的队伍排名(Team类型)
                                                                 

3.函数说明:   

prim()    对处理的数据进行初始化
printSum(String str)    照学校编号或名称查询,学校的总分输出
printScore(String str)    照学校编号或名称查询,学校各项目的总分排序输出
printPrize(String str)    按学校编号查询学校某个项目的获奖情况     
printRank(String str)    按项目编号查询取得前三名的学校
main()    主函数用于界面设计和各种函数调用
四、物理设计
伪代码:

类Team:String 项目,String学校,int 成绩,get/set;                      
类School:String 名字,String 编码,int 队伍数,get/set;     
schools[n];
events[m];
teams[i];
total[m];
rank[m][total[m]];
prim(){初始化数据};
printSum(String str){在teams[i]中查询本校的队伍,并加队伍的总分加起来并输出};
printScore(String str){从teams[i]挑选出各个项目的队伍,分别计算其总分,最后降序输出};
printPrize(String str){根据项目在rank[m][3]中查找获奖队伍,若不在,则未获奖};
printRank(String str){使用queryScore函数得到每个学校每个项目的总分,综合计算最后得出特定项目的前三学校};
main(){设计交互界面,根据需要调用上述函数}。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、问题描述:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2、功能要求: (1) 可以输入各个项目的前三名或前五名的成绩; (2) 能统计各学校总分, (3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; (4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 (5) 数据存入文件并能随时查询 (6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 3、输出形式:有中文提示,各学校分数为整形 4、界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 5、存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 6、测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值