数据结构课程设计
运动会分数统 计
1
一.需求分析
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) 可以按项目编号查询取得前三或前五名的学校。 3.测试数据
1)首先进入成绩录入界面,先输入学校编号1,再输入学校1各个项目成绩0或1(‘0’表示没获得该项目的该名次,‘1’表示获得了该项目的该名次); 然后再输入第二个学校编号2,再输入成绩;当输入其他的学校编号和成绩会提示错误输入,重新输入。
2)然后进入总目录,输入 :1 统计各学校总分并输出; 3)输入:2 按学校编号排序输出; 4)输入:3 按学校总分排序输出; 5)输入:4 按男团体总分排序输出; 6)输入: 5 按女团体总分排序输出;
7) 输入:6 按学校编号查询学校某个项目情况; 8)输入:7 按项目编号查询取得名次的学校; 9)输入:0 退出系统;
10)输入其他数据会提示错误输入,重新输入。
二、概要设计
1 结构体
运动项目
{ 项目编号 ;名次;};
2
学校
{ 学校编号;项目;团体总分;男团体总分;女团体总分;}; 2 主程序(main)
包括登陆欢迎程序,分数录入程序,查询程序,退出程序 3 程序模块机之间的调用关系
流程图 启动程序 录入分数 显示主目录 统按按 计学按按学男按按学项退 各 学校校团女校目出校编总体团编系 总号总体编号统 分排分分总号查 序排 序询 排分查 排询学取 校得 某名个次 项的 目学 情校 况 用户选择某命令,产生相应的操作 显示结果,用户选择返回主目录或退出 退出程序
三、详细设计 1、宏定义: #define N 2
3
#define bm 4 #define gm 3
2、数据类型定义
(1)运动项目的定义:
struct match {
int matchnum; int rank[3]; }mat[bm+gm];
(2)学校的定义:
struct school { int schoolnum;
struct match mat[bm+gm]; int total; int boytotal;
int girltotal;
}sch[N]; mulu 3、函数之间的调用关系 funct0 huanyingni funct1 input funct2 main system funct3 totaljisuafunct4 funct5 xunhuan funct6
funct7
4
4、算法设计
主要算法的设计思想:
本程序主要是使用顺序表来实现操作。一个运动会包括运动项目和参加运动会的学校。因此构造顺序表match,school。为了操作的方便,设计了一个总目录,选择相应序号进入各个操作,并有错误提示,每完成一个操作程序会提示选择返回目录或退出程序,对于总分的排序使用了冒泡排序。为了使整个程序界面看起来更加惬意,又添加了背景和字体颜色设置的程序语句。每个操作前都有操作指南,易于使用。
四、调试分析
1、由于刚开始程序比较简单,虽能运行,但处理错误的能力很低,后来经过反
复的添加修改,使程序能处理了错误,提高了健壮性。
2、开始编时由于不太规范,编译出错后由于程序长,很难找到错误,后来规范了格式,错误容易找到了,以后编程要规范。 3、算法的时空分析
线性表使用的是顺序结构,各种算法的时间复杂度相对比较合理 4、本程序相对来说比较容易看明白,其中涉及到的一些函数相对来说比较容易。通过调试,运行,基本上达到了要求,但还存在一些缺点。如:不够人性化等。
五、测试结果
<1>数据输入(输入成绩如图)
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构课程设计 - 运动会分数统计系统在线全文阅读。
相关推荐: