河南科技大学C语言课程设计选票问题实验报告 下载本文

内容发布更新时间 : 2024/5/5 17:38:44星期一 下面是文章的全部内容请认真阅读。

河南科技大学

综合程序设计报告

运动员信息管理系统

学 院 电气工程学院 ___________ 年级专业 ________________ 学生姓名 _________________ 指导老师 _________________

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