1、 1 数据结构课程设计数据结构课程设计 运 动 会 分 数 统 计 运 动 会 分 数 统 计 2 一.需求分析 1 问题描述 运动会分数统计运动会分数统计 参加运动会有 n个学校,学校编号为 1n。比赛分成 m个男子项目,和 w 个女子项目。项目编号为男子 1m,女子 m+1m+w。不同的项目取前五名或 前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、 3、2;哪些项目取前五名或前三名由学生自己设定。 (m=20,n=20) 2. 基本要求: 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分; 3) 可以按学校编号、学校总分、男女团体总分排
2、序输出; 4) 可以按学校编号查询学校某个项目的情况; 5) 可以按项目编号查询取得前三或前五名的学校。 3.测试数据 1)首先进入成绩录入界面,先输入学校编号 1,再输入学校 1 各个项目成 绩 0 或 1( 0表示没获得该项目的该名次, 1表示获得了该项目的该名次); 然后再输入第二个学校编号 2,再输入成绩;当输入其他的学校编号和成绩会提 示错误输入,重新输入。 2)然后进入总目录,输入 :1 统计各学校总分并输出; 3)输入:2 按学校编号排序输出; 4)输入:3 按学校总分排序输出; 5)输入:4 按男团体总分排序输出; 6)输入: 5 按女团体总分排序输出; 7) 输入:6 按学校
3、编号查询学校某个项目情况; 8)输入:7 按项目编号查询取得名次的学校; 9)输入:0 退出系统; 10)输入其他数据会提示错误输入,重新输入。 二、概要设计 1 结构体 运动项目 项目编号 ;名次; 3 学校 学校编号;项目;团体总分;男团体总分;女团体总分; 2 主程序(main) 包括登陆欢迎程序,分数录入程序,查询程序,退出程序 3 程序模块机之间的调用关系 流程图 三、详细设计 1、宏定义: #define N 2 启动程序 录入分数 显示主目录 统 计 各 学 校 总 分 按 学 校 编 号 排 序 按 学 校 总 分 排 序 按 女 团 体 总 分 排 按 学 校 编 号 查 询
4、 学 校 某 个 项 目 情 况 按 男 团 体 总 分 排 按 项 目 编 号 查 询 取 得 名 次 的 学 校 退 出 系 统 用户选择某命令,产生相应的操作 显示结果, 用户选择返回主目录或退出 退出程序 4 #define bm 4 #define gm 3 2、数据类型定义 (1)运动项目的定义: struct match int matchnum; int rank3; matbm+gm; (2)学校的定义: struct school int schoolnum; struct match matbm+gm; int total; int boytotal; int girltotal; schN; 3、函数之间的调用关系 main xunhuan totaljisua input huanyingni funct4 funct6 funct5 funct3 funct2 funct1 funct0 mulu funct7 system 5 4、算法设计 主要算法的设计思想: 本程序主要是使用顺序表