1、 数据结构数据结构 课程设计报告 设计题目:运动会分数统计运动会分数统计 1 题目:题目:运动会分数统计运动会分数统计 一、一、 问题描述问题描述 参加运动会有 n 个学校,学校编号为 1n.比赛分成 m 个男子项目和 w 个女子项目。 项目编号为男子 1m,女子 m+1m+w。不同的项目取前五名或前三名积分;取前 五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或 前三名由学生自己设定。 (m=20,n=20) 二、二、 基本要求基本要求 1). 可以输入各个项目的前三名或前五名的成绩; 2). 能统计各学校总分; 3). 可以按学校编号、学校总分、男女团体
2、总分排序输出; 4). 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五 名的学校。 5). 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的 功能要求。 6). 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要 存储在数据文件中。 三、三、算法思想算法思想 本课设要求输入信息,统计分数,执行排序与查找功能,在要求中没有在建立数 据之后进行插入和删除操作,而在排序和查找过程中有许多的随机读取数据操作,因 此使用顺序结构而不用链表。由于各个要求属性具有一定的联系,在定义数据时使用 结构体和结构体数组来存储信息数据。考虑到程序的要求
3、在设计函数时将学校个数和 项目个数设计为可变的数据,为方便使用设计菜单函数(menu),而由于要求将信息 存储在文件中故设计文件的存储(savetofile)与读取函数(readfromfile),信息 输入函数 (input) 在输入基本信息后由系统统计总分的内容并全部存入文件 file 中, 在接下来的函数中开始都需要读取文件中的信息,信息的输出(output)输出输入函 数中统计后的各项信息,在排序输出(sortput)中使用冒泡排序法进行不同关键字 的排序,查询函数(search)采用顺序表的查找来完成。 四、四、数据结构数据结构 (1) 项目数据表: 运动会系统先制定本次运动会所需的
4、参赛项目。 本数据表根据要 求设计存储每个项目的编号、 要取的名次、 各个名次名称及各名次对应的分数。 用于对以后项目情况的统计已及查询。 其中 inum,top,range 由输入信息输入, 而 mark 有 range 和 top 决定。 typedef struct 2 int inum; /*项目编号*/ int top; /*取名次的数目*/ int range5; /*名次*/ int mark5; /*分数*/ itemnode; /*存放项目信息*/ (2) 学校数据表: 本数据表根据要求储存了各个参赛学校的总体情况, 包括学校的 编号、 学校总分、 男子团体总分、 女子团体总分, 并且包括项目数据数组 tn。 其 中 snum 和 tn 中 部 分 数 据 由 输 入 信 息 输 入 , 而 其 他 三 项 内 容 score,mscore,wscore 将由系统进行自动统计。 typedef struct int snum; /*学校编号*/ int score;