c语言课程设计选票问题,河南科技大学C语言课程设计选票问题实验报告摘要.doc...

河南科技大学C语言课程设计选票问题实验报告摘要.doc

河南科技大学

综合程序设计报告

运动员信息管理系统

学 院 电气工程学院 ___________

年级专业 ________________

学生姓名 _________________

指导老师 _________________

题目内容和要求

设计一个选票信息处理系统,从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)系统主界面。

进入选票信息处理系统时,输出系统主界面。在主界面中显示系统各功能的名称及编号,用户根据需要选择执行相应的功能模块。

总体设计

根据系统功能描述和问题分析,可将系统功能划分为若干模块,如图所示:

图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() 显示系统主界面函数;

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 "stdio.h"

#include "string.h"

#include "stdlib.h"

#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("\n\t\t\t the voting system\n\n");

printf("\t****************************** MENU ******************************\n\n");

printf("\t 1. input player and vote 2. display all players\n");

printf("

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值