新运动会分数统计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
衡阳师范学院
课程设计
课题名称:运动会分数统计系统系别:计算机科学系
专业:计算机科学与技术
班级: 1303 姓名:肖丽玲
学号: 13190303 指导老师:赵磊
日期: 2015/01/05
目录
1.需求分析 (1)
2.概要设计 (2)
2.1.程序流程图 (2)
2.2.程序设计理念 (2)
3. 程序代码 (3)
4. 调试分析 (11)
4.1.调试过程中出现的问题及处理方式 (11)
4.2.调试分析 (12)
4.3.调试结果 (12)
4.4总结 (17)
一、需求分析
为了简便地对运动会的报名、成绩的录入和统计,本组设计开发了本系统,以解决需求。当然,本系统只是一个较为简单的系统,仍然存在着一些操作上以及显示上的问题,本组将在以后的学习中进行完善。
问题描述:参加运动会有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) 能统计各学校总分,
3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。
- 3 -
二、概要设计
1. 本系统的流程图如下:
2. 本系统采用的存储结构为结构化设计理念,这是数据库的最基本的设计要求,主要包括三个数据表: (1) 项目数据表:运动会开始前必须详细制定本次运动会所需的参赛项
目为接下来报名、场地的准备提供依据。本数据表根据要求设计存储每个项目的编号、名称、要取的名次以及各个名次对应的学校的编号,在初始输入时仅输入项目编号、名称及要取的名次,而各名次对应的学校编号将由系统自动统计。这也有利于以后项目情况的 (2) 查询。
- 4 -
Y
N
N
N
Y Case1
Case3
N
Y
Y
开始---初始化
输入
输入某项目各名次成绩
输入学校及男女项目范围
继续输
查询各学校成绩
Case2 查询团体总分
成绩查询
输出查询学校成绩
继续
结束—退出
继续
(3)
typedef struct
{
int itemnum; //项目编号
int top; //取名次的数目
int range[5]; //名次
int mark[5]; //分数
}itemnode; //定义项目结点的类型
(4)学校数据表:本数据表储存了各个参赛学校的总体情况,包括学校的编号、名称、男子团体总分、女子团体总分和学校总分。其中学
校编号和名称是提前输入的,而其他三项内容将由系统进行自动统
计。
typedef struct
{
int schoolnum; //学校编号
int score; //学校总分
int mscore; //男团体总分
int wscore; //女团体总分
itemnode c[m+w]; //项目数组
}headnode;//定义头结点类型
(5)单项数据表:本数据表是对各个学校的报名情况及成绩进行汇总,为了操作方便,本数据表只包含了学校的编号、项目的编号以及其
在比赛中的成绩。
typedef struct /*单项成绩*/
{
int schoolnum; /*学校编号*/
int itemnum; /* 项目编号*/
int xmch; /*项目成绩*/
}danx;
danx dx[Y];
这三个数据表之间由项目编号和学校编号进行相关联接,形成一个整体。
三、程序代码
源代码:
#include
#include
#include
#include
#define n 2//学校数目
#define m 1//男子项目数目
#define w 1//女子项目数目 - 5 -
#define null 0
typedef struct
{
int itemnum; //项目编号
int top; //取名次的数目
int range[5]; //名次
int mark[5]; //分数
}itemnode; //定义项目结点的类型
typedef struct
{
int schoolnum; //学校编号
int score; //学校总分
int mscore; //男团体总分
int wscore; //女团体总分
itemnode c[m+w]; //项目数组
}headnode;//定义头结点类型
headnode h[n];//定义一个头结点数组
void inputinformation() //输入信息,建立系统
{
int i,j,k,s;
for(i=0;i { h[i].score=0; h[i].mscore=0; h[i].wscore=0; } //初始化头结点 for(i=0;i { printf("*****学校编号:"); scanf("%d",&h[i].schoolnum); //输入头结点信息 for(j=0;j { printf("*****项目编号:"); scanf("%d",&h[i].c[j].itemnum); printf("*****取前3名or前5名:"); scanf("%d",&h[i].c[j].top); printf("*****获得几个名次:"); scanf("%d",&k); //输入项目信息 for(s=0;s<5;s++) h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分数 - 6 -