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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国地质大学本科生课程论文封面

课程名称C语言课程设计

教师邵老师

本科生常堃

本科生学号

本科生专业应用化学

所在院系材化学院

类别: C.本科生

日期: 2011 年7 月6 日

课程设计评语

注:1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录

课程设计评语 (2)

目录 (3)

1.课程论文题目 (4)

2.程序设计思路 (4)

3.功能模块图 (5)

4.数据结构设计 (5)

5.算法设计 (5)

6.程序代码 (10)

7.程序运行结果 (13)

8.编程中遇到的困难及解决方法 (14)

9.总结心得及良好建议 (14)

10.致 (15)

1.课程论文题目

投票程序

[要求]

设有代号为‘a’,‘b’,‘c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。

注意:若同一票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠军”。

例如:投票人数:5

请参加投票的人开始投票:

abc

cab

caa 此票无效

cba

bca

三位候选人得分:

a:12

b:13

c:15

祝贺c当选冠军

[提示]

数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一投票,列方向对应各候选人得分。

2.程序设计思路

根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。

但是此程序还不够完善,可以增加以下程序,增强其功能:

1.记录废票数目,以便废票太多,影响选举公正。

2.若出现a,b,c以外的投票,应当将该票记为无效。

3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。

3.功能模块图

输入选票信息:输入对足球先生候选人的选票

输出结果:输出最后足球先生的获得者

统计选票:对选票进行统计

4.数据结构设计

要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。

最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。

每输入一行,就开始判断是否一票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。

返回投票人数re,留到后续函数使用。

5.算法设计

1、主函数:

主函数只提供输入、处理和输出部分函数调用:

【程序】

#include

#include

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循环,直至选出足球先生*****/

}

2、各功能模块设计

(1)输入模块

【分析】

要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。

最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。

每输入一行,就开始判断是否一票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。

返回投票人数re,留到后续函数使用。

【程序】

int start(char p[][3])

{

int re,i,j,v=0;

printf("请输入投票人数\n");

scanf("%d",&re);

/******a为投票人数******/

printf("请参加投票的人开始投票\n");

getchar();

/******输入时以回车结束******/

相关文档
最新文档