C/C++学校运动会分数统计系统[2023-04-22]

发布时间 2023-04-22 21:39:51作者: programwriter

C/C++学校运动会分数统计系统[2023-04-22]

学校运动会分数统计系统(schoolGame)(请学号末尾位为3和8的同学完成)
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) 输入形式:20以内的整数(可以输入学校的名称,运动项目的名称)
(6) 输出形式:有中文提示,各学校分数为整形
(7) 界面要求:有合理的提示,每个功能单独设立菜单,根据提示,可以完成相关的功能要求。
(8) 存储结构:运动会的相关数据要存储在数据文件中。在最后的上交资料中指明你用到的存储结构。
(9) 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。

3.数据说明
(1) 宏定义。

 #define N 20
 #define M 20
 #define W 20

(2) 变量定义格式:
int型以n开头,字符数组以s开头,其他数组以sz开头,结构体以sct开头,紧跟其后的字母要大写。尽量以英文命名,也可以用汉语拼音命名,原则是见名知意。

(3) 结构体链表存储学校成绩信息。

#define N 20
#define M 20
#define W 20

/*学校成绩结构体*/
typedef struct sctSchool {
    int nSchNum;            /*学校编号*/
    char sSchname[50];      /*学校名称*/
    float szScore[M+W];     /*项目得分*/
    int szSort[M+W];        /*项目得分排名*/
    int nScoreM;            /*男团体总分*/
    int nScoreW;            /*女团体总分*/
    int nScoreT;            /*学校总分=男团体总分+女团体总分*/
    struct sctSchool * next;
}sctSchool;

(4) 项目名称从文件(item.txt)中读取。项目编号顺序对应于文件中项目名称的顺序。
如:项目编号1 对应于 文件中的第一行
项目编号2 对应于 文件中的第二行
定义一个全局变量:nItem ,存放文件中的项目个数。

4.算法分析
(1) 输入学校以及各个项目的成绩要能保存在文件中(school.txt)。
(2) 采用菜单工作方式。在一个操作命令执行之后, 程序询问是否继续执行该命令。如输入y或Y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序会询问是否将修改后的数据存盘,并根据用户的选择存盘或不存盘退出

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111