目录
一、项目要求
1、【问题描述】
参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。
2、【基本要求】
1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;
2)能统计各学校的总分;
3)可以按照学校编号或名称,学校的总分、各项目的总分排序输出;
4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;
5)数据存入文件并能随时查询
3、【设计要求】
1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。
2)输出形式:有中文提示,各学校分数为整数
3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,可以完成相关功能的要求。
4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。
4、【测试数据】
要求使用全部合法数据,整体非法数据,局部非法数据。进行程序测试,以保证程序的稳定。
5、【实现提示】
假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。
二、问题分析
1、任务功能
1.1 输入功能
由管理人员进行输入。
输入数据形式:输入赛事项目编号、名称,然后依次输入参赛学校编号、名称及成绩。
1.2 存储功能
赛事相关数据存储在文件中。
1.3 排序功能
按照学校的总分、各项目的总分排序输出;
以按项目编号查询取得前三名的学校;
1.4 查询功能
按学校的总分、各项目的总分查询
按项目编号查询取得前三名的学校
2、限制条件
3<赛事项目数量<=10
学校名称长度不超过20个字符
有中文提示,各学校分数为整数
三、逻辑设计
1、变量类
Project类 | 项目编号 ,项目名称(String) |
School类 | 学校编号、学校名称(String) |
Team类 | 项目编号、学校编号(String)、队伍成绩(int) |
2、变量
sum[ ] | 每个项目的队伍数量 |
Sscore[] | 学校总分 |
Pscore[] | 项目总分 |
3、函数
pcout() | 每个项目的队伍数量(int类型) |
school() | 按学校总分排序 |
project() | 按项目总分排序 |
queryscool() | 按学校的总分查询 |
queryproject() | 按各项目的总分查询 |
qpnumber() | 按各项目的编号查询(前三名) |
mean() | 查询界面 |
main() | 主函数 |
4、函数调用关系图
四、物理设计
伪代码
Project 类 :项目编号 ,项目名称(String)
School 类 :学校编号、学校名称(String)
Team 类 :项目编号、学校编号(String)、队伍成绩(int)
sum[ ] 每个项目的队伍数量组
Sscore[] 学校总分组
Pscore[] 项目总分组
pcout() 根据Team类中项目编号相同的队伍统计每个项目的队伍数量(int类型)
school(string) 筛选Team类中同学校的队伍,再按学校总分由高到低排序
project(string) 筛选Team类中同项目的队伍,按项目总分由高到低排序
queryscool(string) 按学校的总分查询,调用school(string)函数
queryproject(string)按各项目的总分查询,调用project(string)函数
qpnumber(string) 按各项目的编号查询,调用project(string)函数
mean() 查询界面,给出1、按学校的总分查询2、按各项目的总分查询3、按各项目的编号查询(前三名)4、退出程序 选项让用户自主选择
main() 主函数调用mean()