目录
一、【问题描述和基本要求】
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.【数据类型】
name(队伍名称) | item(项目) | score(得分) | position(名次) | school(学校) |
2.【函数说明】
schoolin(SeqList* L) | 队伍线性表的数据初始化 |
printTeam(SeqList * L, int length) | 输出队伍的数据 |
count(SeqList *a, string item) | 算出某项目的参赛队伍的个数 |
sort(SeqList *A,string item) | 输入项目将其参赛队伍从大到小排序 |
forma3(SeqList *a, string item) | 输出各项目获奖前三名队伍及其所在的学校 |
Totalsch(SeqList* q, string sch) | 按照学校名字查询总分 |
totalteam(SeqList* q, string sch) | 统计出某个学校的所有队伍个数 |
getwin(SeqList* m, string sch, string item) | 学校编号查询学校某个项目的获奖情况 |