c语言课程设计投票程序系统设计.pdf
《c语言课程设计投票程序系统设计.pdf》由会员分享,可在线阅读,更多相关《c语言课程设计投票程序系统设计.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 中 国 地 质 大 学本科生课程论文封面课 程 名 称 C语言课程设计教 师 姓 名邵老师本科生姓名常堃本科生学号 079 本科生专业应用化学所 在 院 系材化学院类别:C.本科生日期:2011 年 7 月 6 日2 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。3 目 录课程设计评语.错误!未定义书签。目 录.错误!未定义书签。1课程论文题目.错误!未定义书签。2程序设计思路.错误!未定义书签。3功能模块图.错误!未定义书签。
2、4数据结构设计.错误!未定义书签。5算法设计.错误!未定义书签。6程序代码.错误!未定义书签。7程序运行结果.错误!未定义书签。8编程中遇到的困难及解决方法.错误!未定义书签。9总结心得及良好建议.错误!未定义书签。10致谢.错误!未定义书签。4 1课程论文题目投票程序 要求 设有代号为 a,b,c的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分 5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠
3、军”。例如:投票人数:5请参加投票的人开始投票:abccabcaa 此票无效cbabca三位候选人得分:a:12b:13c:15祝贺 c 当选冠军 提示 数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。2程序设计思路根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。但是此程序还不够完善,可以增加以下程序,增强其功能:1.记录废票数目,以
4、便废票太多,影响选举公正。2.若出现 a,b,c以外的投票,应当将该票记为无效。3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。5 3功能模块图输入选票信息:输入对足球先生候选人的选票输出结果:输出最后足球先生的获得者统计选票:对选票进行统计4数据结构设计要输入投票人数,将其定义为re,选票信息可以用一个p1003的数组来存放,re 来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每 输 入 一 行,就 开 始 判 断 是 否 一 张 票 上 写 有 两 个 相 同 代 号,或 者
5、是 出 现a,b,c以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量 v 记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为0。返回投票人数re,留到后续函数使用。5算法设计1、主函数:主函数只提供输入、处理和输出部分函数调用:【程序】#include#includeint start(char p3);/*输入函数*/足球先生评选程序输 入选票信息输出结果统计选票6 void count(int a,char p3,int pp);/*统计函数*/int result(int a,int b,int c);/*输出函数*/int m;/*全局变量 */void
6、main()/*主函数*/int a;m=3;int pp3=0,0,0;dochar p1003=0;/*p1003赋初值,清空*/a=start(p);count(a,p,pp);/*计算得分*/while(result(pp0,pp1,pp2);/*若 m=2循环,直至选出足球先生*/2、各功能模块设计(1)输入模块【分析】要输入投票人数,将其定义为re,选票信息可以用一个p1003的数组来存放,re 来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每 输 入 一 行,就 开 始 判 断 是 否 一 张 票 上 写 有 两
7、个 相 同 代 号,或 者 是 出 现a,b,c以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量 v 记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为0。返回投票人数re,留到后续函数使用。【程序】int start(char p3)int re,i,j,v=0;printf(请输入投票人数n);scanf(%d,&re);/*a为投票人数*/printf(请参加投票的人开始投票n);getchar();/*输入时以回车结束*/for(i=0;ire;i+)7 int flag=0;for(j=0;jm;j+)scanf(%c,&pij);getchar();/
8、*输入选举投票*/if(pi0=pi1|pi1=pi2|pi0=pi2)flag=1;/*判断一张票上是否写有两个相同代号*/for(j=0;jm;j+)if(pij!=a&pij!=b&pij!=c)flag=1;/*判断是否有a,b,c以外的字母*/if(flag)printf(此票无效 n);v+;for(j=0;jm;j+)pij=0;/*若有以上情况,显示 此票无效,忽略此票,并记录废票数*/printf(作废票数是%d票n,v);return re;(2)统计模块【分析】功能上要求分别统计a,b,c三个人的得分,因而用x,y,z来存放,每一票中分别统计得分,根据投票者在选票上对他们
9、编号的填写顺序分别记分5,3,2,将如果出现废票,直接跳过不计,将最后结果分别放入x,y,z.。引用主函数中的数组pp3,将统计的x,y,z分别赋值到pp0,pp1,pp2中,这样就可以带回主函数中。【程序】void count(int a,char p3,int pp)int b=a,i;int x=0,y=0,z=0;/*a,b,c分别代表三个候选人 x y z分别是他们的得分*/for(i=0;ia;i+)8 if(pi0=a)x+=5;else if(pi1=a)x+=3;else if(pi2=a)x+=2;if(pi0=b)y+=5;else if(pi1=b)y+=3;else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 投票 程序 系统 设计
限制150内