江苏科技大学数据结构课程设计——项目1:中国计算机设计大赛赛事统计(预习)

一、问题及要求

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

【基本要求】 1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;
                       2)能统计各学校的总分;
                       3)可以按照学校编号或名称查询,学校的总分、各项目的总分排序输出;
                       4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;
                       5)数据存入文件并能随时查询

【设计要求】 1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。
                       2)输出形式:有中文提示,各学校分数为整数
                       3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,完成相关功能的要求。
                       4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。

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

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

二、需求分析

1、所需功能 

(1)数据保存
         学校名称(ID)、队伍名称、参加项目、所得分数

(2)数据统计

  • 学校名称(ID)、队伍名称、该队伍参加项目、该队伍在该项目所得分数
  • 各个项目的获奖情况(4种情况:一等、二等、三等、未获奖)

 (3)数据查询

  • 输出学校总分
  • 根据学校编号或名称输出学校的总分、各项目的总分排序(降序)
  • 根据学校编号或名称查询学校某个项目的获奖情况
  • 根据项目编号查询取得前三名的学校;

2.类的建立 

  • School类:含括学校ID,学校名称,学校参赛队伍个数,总分等字段
  • Team类:含括所属学校ID,队伍名称,参加项目和所得分数等字段
  • Event类:含括一个存储Team类对象的集合表示参加该项目的队伍以及项目
  • Function类:其内容涉及一个存储所有参赛项目的集合events和一个存储所有参赛学校的集合     schools以及各项查询功能

3.算法函数 

  • 项目添加函数:用于添加相应的项目
  • 学校添加函数:用于添加参赛学校
  • 队伍添加函数:用于添加参赛队伍,该函数为主要添加函数,若在添加过程中发现不存在当前所要添加的项目或学校,则在执行结果命令行显示添加错误及原因,若学校参赛队伍达到上限,同上
  • 学校总分计算函数:计算某学校的总分
  • 学校总分排名的函数:按总分进行降序排序
  • 学校的项目总分排名函数:返回一个字典集合,内含项目id和项目总分
  • 单个项目获奖情况函数:对项目内的队伍按分数进行排名,索引为0,1,2,3;   0,1,2即为前三;    3则代表未获奖
  • 学校各项目获奖情况函数、

4.主要流程 

三、重难点 

  1. 数据存储于文件中
  2. 数据从文件中调用
  3. 数据更新后重新写入另一个文件中

四、编程语言

           java 

五、开发工具

           IDEA 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值