C语言课程设计报告_运动会分数统计系统

  • 格式:doc
  • 大小:246.50 KB
  • 文档页数:25

C语言课程设计报告

运动会分数统计系统

学校 湖南工程学院

班级:土木0981班

姓名:钟宇

学号:200913170131

一.需求分析

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). 运动员评奖

3.测试数据

《1》输入:1进入添加系的界面,根据提示,再输入:汽车系。再输入:8,成功添加了一个系。再输入:2进入运动项目添加界面,根据提示,再输入:跳高;1;0;1;2;3。之后输入0。再次进入系统界面。

《2》输入:3查看输出结果。

《3》:输入:4查看输出结果。

《4》:输入:5查看输出结果。

《5》:输入:6查看输出结果。

《6》:输入:7根据提示输入项目编号:2。查看输出结果。

《7》:输入:8根据提示输入系编号:3。查看输出结果。

二、概要设计

1.数据结构

<1>系:名称,编号,男子团体总分,女子固体总分。

<2>运动项目: 项目编号,名称,男子项目,女子项目,前三名,前五名,第一名系的编号,第二名系的编号,第三名系的编号,第四名系的编号,第五名系的编号。

2.程序模块及之间的调用关系

三、详细设计

1、数据类型定义

(1)系的定义:

typedef struct Department //系的结构

{

char name[20]; //系的名称

int number; //系的编号

int boy; //男子团体总分

int girl; //女子团体总分

Department *next; }Department;

(2)运动项目定义:

typedef struct Sport //运动项目结构

{

char name[20]; //运动项目名称

int isboy; //0为女项目,1为男项目

int is3; //0为取前五名,1为取前五名

int number; //项目编号

int first; //第一名系的编号

int second; //第二名系的编号

int third; //第三名系的编号

int fourth; //第四名系的编号

int fifth; //第五名系的编号

Sport *next;

}Sport;、

2、函数之间的调用关系

(1)系调用图

department_add

department_Order

<1>Department department_search

department_addmark

department_show

department_isexist

department_output

department_read

department_write

department_getlong

sport_isexist

sport_add

sport_getlong

sport_write

<2>Sport sport_read

sport_output

sport_search

3、算法设计

主要算法的设计思想:

本程序主要是使用链表来实现操作。一个运动会包括运动项目和参加运动会的成员。因此构造两个链表Department,Sport。为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的写和读。每次添加新的数据后都要输入0退出,数据才能保存。对于总分的排序使用了冒泡排序。为了使整个程序看起来更加友好,又添加了程序启动画面。

四、调试分析

本程序相对来说比较容易看明白,其中涉及到的一些函数相对来说比较容易。通过调试,运行,基本上达到了要求,但还存在一些缺点。如:不够人性化等。

五、测试结果

<1>多组数据输入与输出:

(1)输入:3

输出:系名 编号 男团总分 女团总分 总分

法律系 6 0 0 0

电子系 5 3 2 5

数学系 4 6 0 6

历史系 3 9 7 16

中文系 2 15 11 26

计算机系 1 21 11 32

旅游系 7 0 7 7

(2)输入:4

输出: 系名 编号 男团总分 女团总分 总分

法律系 6 0 0 0

电子系 5 3 2 5

数学系 4 6 0 6

旅游系 7 0 7 7

历史系 3 9 7 16

中文系 2 15 11 26

计算机系 1 21 11 32

(3)输入:5

输出:法律系 6 0 0 0

电子系 5 3 2 5

数学系 4 6 0 6

旅游系 7 0 7 7

历史系 3 9 7 16

中文系 2 15 11 26

计算机系 1 21 11 32

(4)输入:6

输出:法律系 6 0 0 0

电子系 5 3 2 5

数学系 4 6 0 6

旅游系 7 0 7 7

历史系 3 9 7 16

中文系 2 15 11 26

计算机系 1 21 11 32

(5)输入:7

输出:请输入项目编号:

输入:1回车

输出:

项目名:100m

项目类型:女子项目

第一名:计算机系

第二名:中文系

第三名:法律系

第四名:无

第五名:无

(6)输入:8

输出:请输入系的编号:

再输入2

则输出:

系名:中文系 男子团体总分:3 女子团体部分:10 总分:13

(7)输入:0 退出

六、用户手册

1、运行环境

Windows,VC++6.0

2、用户界面

4、操作过程

(1)用户进入程序启动界面,等load完成后进入主菜单.主菜单有以下9个选项

1.输入系别

2.输入运动项目

3.按系别编号输出总分

4.按总分排序

5.按男团体总分排序

6.按女团体总分排序

7.按项目编号查询

8.按系别编号查询

0.退出

(2)输入0~8中的一个数

(3)输入1,进行添加系操作,分别输入系的名称和编号

(4)输入2,进行添加运动项目操作,分别输入项目名称,编号,项目类型,名次选

取,排名情况

(5)输入0,则退出系统,并且保存输入的信息.每次添加完都要输入0退出系统

才有效

(6)输入3,输出按系编号总分排名.

(7)输入4,输出按总分排名

(8)输入5,输出按男团体总分排序

(9)输入6,输出按女团体总分排序

(10)输入7,进入按项目编号查询界面.输入要查询的项目编号

(11)输入8,进入按系别编号查询界面,输入要查询的系的编号

七、参考文献