1 / 12
文档名称:

C语言课程设计-投票程序系统设计.doc

格式:doc   大小:76KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言课程设计-投票程序系统设计.doc

上传人:zxwziyou9 2018/9/4 文件大小:76 KB

下载得到文件列表

C语言课程设计-投票程序系统设计.doc

文档介绍

文档介绍:目录
课程设计评语 2
目录 3
4
4
5
5
6
13
22
25
26
26

投票程序
[要求]
设有代号为‘a’,‘b’,‘c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠军”。
例如:投票人数:5
请参加投票的人开始投票:
abc
cab
caa 此票无效
cba
bca
三位候选人得分:
a:12
b:13
c:15
祝贺c当选冠军 
[提示]
数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。

根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。 
但是此程序还不够完善,可以增加以下程序,增强其功能:
,以便废票太多,影响选举公正。
,b,c以外的投票,应当将该票记为无效。
,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。

足球先生评选程序
输入选票信息
输出结果
统计选票
输入选票信息:输入对足球先生候选人的选票
输出结果:输出最后足球先生的获得者
统计选票:对选票进行统计

要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。
最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。
每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。
返回投票人数re,留到后续函数使用。

主函数:
主函数只提供输入、处理和输出部分函数调用:
【程序】
#include<>
#include<>
int start(char p[][3]);                 /****输入函数****/
void count(int a,char p[][3],int pp[]);       /***统计函数***/
int result(int a,int b,int c);                /***输出函数***/
int m;      /*****全局变量*****/
void main()                   /*****主函数*****/
{     
         int a;
         m=3; 
      int pp[3]={0,0,0};  
     do
        {
               char p[100][3]={{0}};
     /******p[100][3]赋初值,清空******/
          a=start(p);
          count(a,p,pp);    
          /******计算得分******/
        }
           while(result(pp[0],pp[1],pp[2]));
/*****若m=2循环,直至选出足球先生*****/
}
各功能模块设计
(1)   输入模块
【分析】
要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。
最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。
每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若