河南科技大学
综合程序设计报告
运动员信息管理系统
学 院 电气工程学院 ___________ 年级专业 ________________ 学生姓名 _________________ 指导老师 _________________
1
一、 题目内容和要求
设计一个选票信息处理系统,从10名优秀运动员中评选出3名超级运动员。要求实现如下系统功能。
(1)输入运动员信息及选票信息
运动员信息包括运动员编号、姓名、运动员得分和运动员得票。运动员按1、2、3…顺序编号。选票信息包括选票编号、所投运动员编号、选票有效标志。选票同样按1、2、3…顺序编号。每张选票可投3个不同的运动员编号;对应位置的运动员编号可以有空缺,但必须用0表示;若编号超出规定的范围,或编号出现重复,则选票无效。从键盘或数据文件输入各运动员信息和选票信息。
(2)统计运动员得分
选票中所列运动员顺序不同,则得分不同,选票中第1位运动员至第3位运动员所得分数依次为3分、2分、1分。根据选票信息中的运动员编号及顺序,统计运动员得分,记入相应的得分数据域;统计运动员得票数,记入相应的得票域。
(3)输出运动员及选票信息
输出所有运动员信息及选票信息至屏幕上。建立一个数据文件,将结构体数组中的运动员信息和选票信息写入数据文件。
(4)查询运动员信息
按运动员编号或姓名查询运动员信息。从键盘输入待查询运动员的编号或姓名,若找到该运动员,则输出其编号、姓名、得分及得票信息;若未找到,则输出提示信息,将查询结果输出至屏幕上。
(5)查询选票信息
从键盘输入待查询选票的编号,若找到该选票,则输出选票信息;若未找到,则输出提示信息将查询结果输出至屏幕上。
(6)评选超级运动员
根据各运动员信息中的得分域,评选出得分最高的三名运动员为超级运动员。若运动员得分相同,则得票多者在前,若果得分与票数都相同,则编号小的在前。输出超级运动员排名,格式如下。
Rank Number Name Score Vote 将超级运动员信息输出至屏幕上,并追加写入数据文件。 (7)系统主界面。
进入选票信息处理系统时,输出系统主界面。在主界面中显示系统各功能的名称及编号,用户根据需要选择执行相应的功能模块。
二、 总体设计
根据系统功能描述和问题分析,可将系统功能划分为若干模块,如图所示:
2
图1
三、 详细设计 1、函数设计
图1中的各模块分别由下列若干函数实现。 player_in() 运动员信息输入函数; vote_in() 选票信息输入函数; in_valid() 选票有效性判断函数; scoring() 统计选票函数;
orig_to_file() 信息写入文件函数; load_mod() 信息输入模块函数;
output_player() 运动员信息输出函数; output_vote() 选票信息输出函数;
search_num_player() 按编号查询运动员函数; search_name_player() 按姓名查询运动员函数; search_player() 查询运动员信息函数; search_num_vote() 按编号查询运动员函数; super_player() 评选超级运动员函数; menu() 显示系统主界面函数;
3
main() 选票信息处理函数。 2、数据结构 #define M 10 #define N 30 struct player {
int num;
char name[20]; int score; int votes; };
struct vote {
int num; int top[3]; int valid; };
四、 源代码 #include \#include \#include \#define M 5 #define N 5 struct player { int num; char name[20]; int score; int votes; };
struct vote { int num; int top[3]; int valid; };
void menu() { printf(\ the voting system\\n\\n\ printf(\******************************\\n\\n\ printf(\ 1. input player and vote printf(\ 3. display all votes
4
2. display all players\\n\4.search player\\n\
MENU
printf(\ 5. search vote 6.display super players\\n \ printf(\ 0. duit program\\n\ printf(\****\}
void player_in(struct player ply[M]) { int i; printf(\ for(i=0;i void vote_in(struct vote vot[N]) { int i; printf(\ for(i=0;i void input_inf(struct player ply[M],struct vote vot[N]) { player_in(ply); vote_in(vot); } int in_valid(int top[3]) { 5