logo资料库

运动会分数统计课程设计.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
运动会分数系统
1 题目与要求
2 概要设计
2.1 算法设计
2.2功能模块设计
2.3 模块图
3 详细设计
4 调试分析
5心得体会
6程序清单
运动会分数系统 1 题目与要求 参加运动会有 n 个学校,学校编号为 1……n。比赛分成 m 个男子项目,和 w 个女子项目。项目编号为男子 1……m,女子 m+1……m+w。不同的项目取前五名或 前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、 3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)1.2 功能要求: 1). 可以输入各个项目的前三名或前五名的成绩; 2). 能统计各学校总分, 3). 可以按学校编号、学校总分、男女团体总分排序输出; 4). 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前 五名的学校。 规定:输入数据形式和范围:20 以内的整数(如果做得更好可以输入学校的 名称,运动项目的名称) 输出形式:有英文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相 关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数 据要存储在数据文件中。(数据文件的数据读写方法等相关内容在 c 语言程序设计 的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用 1、全部合法数据;2、整体非法数据;3、局部非法数据。 进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2 概要设计 2.1 算法设计 本方案要求准备结构体数组、读写文件。还能把信息直接输入存储到文件中, 读取文件中信息,从而得到结果。 (1) 菜单设计 分为主函数菜单、比赛成绩输出菜单、查询分数统计结果菜单、查询方式子 菜单。 - 1 -
(2) 数据保存方式 建立文件,数据保存在文件中。运动运分数统计程序 (3) 数据类型 采用结构体类型。 (4) 存储结构 采用结构体类型数组存储结构存储。 (5) 算法设计 输入比赛结果模块中运用了冒泡算法将输入的数据排序。 2.2 功能模块设计 根据分析整个系统主要划分为 4 个功能模块,分别执行要求中的功能。该系 统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩 输出模块有四个子模块,分别是:按学校编号输出模块、按学校总分输出模块、 安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号 查询模块河岸项目编号查询两个子模块。 (1) 比赛成绩输入模块 比赛成绩输入模块分为:创建信息部分,该部分需输入学校编号,项目 编号,取得的名次,以及哪些名次;算法部分,得到排序结果。 (2) 比赛成绩输出模块 将以输入的数据按照输出比赛菜单的选择输出相应的数据。 (3) 查询比赛成绩模块 按照查询比赛结果菜单和其查询方式子菜单查询需要的数据。 (4) 调用统计结果 将输入的各学校运动会成绩排序输出。 2.3 模块图 功能模块图如图 1 所示。 - 2 -
图 1 功能模块图 3 详细设计 内容:分模块简述其功能;模块中使用的各变量的类型及作用,包括声明数 据类型(如结构体);设计过程;并列出该模块(函数)的代码。 本系统主要包括三个数据表: ○1 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项目为接下来 报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、 要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名 称及要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后 项目情况的查询。 typedef struct { int itemnum; //项目编号 - 3 -
int top; //取名次的数目 int range[5]; //名次 int mark[5]; //分数 }itemnode; //定义项目结点的类型 ○2 学校数据表:本数据表储存了各个参赛学校的总体情况,包括学校的编号、名 称、男子团体总分、女子团体总分和学校总分。其中学校编号和名称是提前输入 的,而其他三项内容将由系统进行自动统计。 typedef struct { int schoolnum; //学校编号 int score; //学校总分 int mscore; //男团体总分 int wscore; //女团体总分 itemnode c[m+w]; //项目数组 }headnode;//定义头结点类型 ○3 单项数据表:本数据表是对各个学校的报名情况及成绩进行汇总,为了操作方 便,本数据表只包含了学校的编号、项目的编号以及其在比赛中的成绩。 typedef struct /*单项成绩*/ { int schoolnum; /*学校编号*/ int itemnum; /* 项目编号*/ int xmch; /*项目成绩*/ }danx; danx dx[Y]; 这三个数据表之间由项目编号和学校编号进行相关联接,形成一个整 1)函数原形:void input(struct student stu[ ],int n) 体。 - 4 -
2)功 能:利用 for 循环语句和 scanf、gets、getchar 函数完成对结构数组的输 入,存放 n 个学生的信息(学号、姓名、性别、4 门成绩)。 4 调试分析 (1)首先运行文件运动会统计分数 7.exe:如图 2 所示: 图 2 运行运动会分数统计界面 (2) 输入信息:程序首先赋初值,定义学校的个数为 2,男生项目为 1, 女生项目为 1。输入 1 得到进入输入信息模块。如图 3 所示: 图 3 输入学校运动会分数界面 (3)输出信息 输入 2 进入输出信息模块,该模块分四项: 如图 4 所示: - 5 -
图 4 输出运动会分数界面 1 按学校编号输出: 如图 5 所示: 图 5 按学校编号输出分数界面 2 按学校总分输出:如图 6 所示: - 6 -
图 6 按学校总分输出分数界面 3 按男团总分输出:如图 7 所示: 图 7 按学校编号男团总分输出分数界面 4 按女团总分输出:如图 8 所示: 图 8 按女团总分输出分数界面 5 输入 2 返回输出信息模块,输入 0 返回主菜单。 (4)查询信息:如图 9 所示: 输入 3 进入信息查询模块: - 7 -
1 按学校编号查询:如图 10 所示: 图 9 查询界面 2 按项目编号查询:如图 11 所示: 图 10 按学校编号查询界面 3 输入错误信息时给出提示:如图 12、13 所示: 图 11 按项目编号查询界面 - 8 -
分享到:
收藏