投票程序c语言论文,c语言投票程序摘要.doc

c语言投票程序摘要.doc

本科生C语言课程设计论文

课程名称 投票程序

教师姓名

本科生姓名

本科生学号

本科生专业

所在院系 机电学院

类 别:

日 期: 2012年6月

课程设计评语

对课程论文的评语:

平时成绩:课程论文成绩:总 成 绩:评阅人签名:

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

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

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

目 录

课程设计评语2

目 录3

1.课程论文题目4

2.程序设计思路4

3.功能模块图4

4.程序代码5

5.程序运行结果6

6.编程中遇到的困难及解决方法7

7.总结心得及良好建议7

8.致谢8

9.参考文献8

(一)题目要求及提示

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

若同一张票上写有两个相同的代号,则显示“此票无效”,

若最终前两名得分相同应显示“重新投票”,否则显示三个候选人得分并输出“祝贺X当选冠军”。

[提示]数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人的得分。棋盘位置用二维数组代表,初始状态每一位置均为“ ”(空)。其分隔线(即棋盘线)可用- -或||来分隔。需要对每张选票上的候选人顺序进行分析,并统计每个人的得分,进行比较,得出结果。

程序设计思路

本程序中要求候选人有编号和得票数,且每张选票上要同时写上三个候选人的编号,最终输出谁是获胜者。因此可以用结构体来存储候选人的信息。唱票中要求相对应的编号分别记分为5、3、2,因此在记分程序中可以用一个条件表达式来进行统计得分。统计结果中若前两名有相同的得票数则要求重新投票。为此要求把三个后选人的总得分进行比较,则可以用一个判断语句来判断,简单明了。定义结构体存放候选人的信息,包括编号和得分。输入投票总人数和投票结果,然后根据人数和投票结果进行统计得分,把选票中有相同编号的去掉,只统计没有相同编号的票数。然后对最终的分数进行比较,若存在前两名的得分情况一样,则需要重新投票,否则输出谁是获胜者。

(三)功能模块图

(四)程序代码

#include

main()

{

int a[3]={0},n,i,j,m=0,p;

char c[3];

start: printf("投票人数:");

scanf("%d",&n);

printf("输入投票内容:");

getchar();

for(i=1;i<=n;i++)

{ gets(c);

if(c[0]==c[1]||c[1]==c[2]||c[0]==c[2])

{

printf("该票无效\n");continue;}

if(c[0]=='a')a[0]+=5;

else if(c[0]=='b')a[1]+=5;

else if(c[0]=='c')a[2]+=5;

if(c[1]=='a')a[0]+=3;

else if(c[1]=='b')a[1]+=3;

else if(c[1]=='c')a[2]+=3;

if(c[2]=='a')a[0]+=2;

else if(c[2]=='b')a[1]+=2;

else if(c[2]=='c')a[2]+=2;

}

printf("三位候选人得分\na:%d \nb:%d \nc:%d\n",a[0],a[1],a[2]);

if(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[0]||a[0]==a[1]&&a[0]>a[2]||a[0]==a[2]&&a[0]>a[1]||a[1]==a[2]&&a[1]>a[0])

{printf("重新投票\n");

goto start;

}

if(a[0]>a[1]&&a[0]>a[2])

if(a[1]>a[0]&&a[1]>a[2])m=1;

if(a[2]>a[0]&&a[2]>a[1])m=2;

printf("祝贺%c当选冠军!",'a'+m);

}

程序运行结果

(六)总结

对于C语言的学习,本人还是感觉多多动手上机操作比较好,这样我们才能学到更多的知识。 回顾起此次课程设计,至今我们仍感慨颇多,的确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值