本次课程设计利用《C语言程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务
设计一个运动会管理系统,用于管理比赛时体操、跳水、滑冰等赛事裁判员对赛事的评分。假设只有这3场比赛event,每场有5个裁判评分。
实现功能
1)能够提供一个程序界面对运动员的基本资料进行输入、删除、修改和查询等,基本资料应保存在文件中。
2)能够输入、修改、查询某项比赛event的比赛时间,3项比赛的资料保存在文件中。
3) 比赛项目分男子组和女子组,每个运动员的总分计算规则是:去掉最高分、去掉最低分求平均值。
4) 提供界面让工作人员输入每场比赛的所有运动员的每个裁判的分数,能查询某场比赛所有运动员的最后得分
5)评分的资料保存在score.txt中,包含的数据项有:所属的学校、运动员编号、得分1、得分2、得分3、得分4、得分5、总分、平均分。
概要设计
模块说明
程序中一共包括了三个大模块,分别是:运动员信息模块、比赛时间模块、裁判分数模块,每个模块根据不同要求分成3—5个小模块,分别是:输入模块、修改模块、查询模块、删除模块、退出系统模块。这几个模块中输入、查找和修改都是独立分开作为子函数的,另外的则是作为switch语句中的一部分,通过switch语句,把模块联系了起来,同时,为了实现多次使用这几个模块,就在switch语句外加了do-while循环。
以下是模块结构图:
详细设计
源程序代码
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h> /*用于动态分布空间*/
#include <string.h>
typedef struct Athlete /*定义运动员管理信息的结构体。typedef用来指定新的类型名来代替已有的类型名*/
{
char name[10];
int sex;
char school[10];
int number;
char class1[10];
}athtype;
typedef struct Athlete1 /*定义比赛时间管理的结构体*/
{
char name[10];
int event;
int score[5];
int sex;
int tp;
float aver;
}score;
typedef struct Athletenode /*使用链表录入运动员数据athtyp