ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:40.25KB ,
资源ID:3990278      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3990278.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计 投票程序系统设计讲课稿.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计 投票程序系统设计讲课稿.docx

1、C语言课程设计 投票程序系统设计讲课稿C语言课程设计 投票程序系统设计中 国 地 质 大 学本科生课程论文封面课程名称 C语言课程设计 教师姓名 邵老师 本科生姓名 常堃 本科生学号 20091001079 本科生专业 应用化学 所在院系 材化学院 类别: C.本科生 日期: 2011 年 7 月 6 日 课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总 成 绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。1课程论文题目投票程序要求设有代号为a,b,c的三个足球先生候选人,根据投票者在选

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

3、都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。但是此程序还不够完善,可以增加以下程序,增强其功能:1.记录废票数目,以便废票太多,影响选举公正。2.若出现a,b,c以外的投票,应当将该票记为无效。3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。3功能模块图足球先生评选程序输入选票信息输出结果统计选票输入选票信息:输入对足球先生候选人的选票输出结果:输出最后足球先生的获得者统计选票:对选票进行统计4数据结构设计要输

4、入投票人数,将其定义为re,选票信息可以用一个p1003的数组来存放,re来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现a,b,c以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为0。返回投票人数re,留到后续函数使用。5算法设计1、 主函数:主函数只提供输入、处理和输出部分函数调用:【程序】#include#includeint start(char p3); /*输入函数*/void

5、count(int a,char p3,int pp); /*统计函数*/int result(int a,int b,int c); /*输出函数*/int m; /*全局变量 */void main() /*主函数*/ int a; m=3; int pp3=0,0,0; do char p1003=0; /*p1003赋初值,清空*/ a=start(p); count(a,p,pp); /*计算得分*/ while(result(pp0,pp1,pp2);/*若m=2循环,直至选出足球先生*/2、 各功能模块设计(1) 输入模块【分析】要输入投票人数,将其定义为re,选票信息可以用一个

6、p1003的数组来存放,re来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现a,b,c以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为0。返回投票人数re,留到后续函数使用。【程序】 int start(char p3) int re,i,j,v=0; printf(请输入投票人数n); scanf(%d,&re); /*a为投票人数*/ printf(请参加投票的人开始投票n); get

7、char(); /*输入时以回车结束*/ for(i=0;ire;i+) int flag=0; for(j=0;jm;j+) scanf(%c,&pij); getchar(); /*输入选举投票*/ 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; /*若有以上情况,显示此票无效,忽略此票,并记

8、录废票数*/ printf(作废票数是%d票n,v); return re;(2) 统计模块【分析】功能上要求分别统计a,b,c三个人的得分,因而用x,y,z来存放,每一票中分别统计得分,根据投票者在选票上对他们编号的填写顺序分别记分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分别是他们的得分

9、*/ for(i=0;ia;i+) 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 if(pi2=b) y+=2; if(pi0=c) z+=5; else if(pi1=c) z+=3; else if(pi2=c) z+=2; if(pi0=0) continue; pp0=x; pp1=y; pp2=z;(3)输出模块【分析】功能上要求比较三位候选人的最后得分,三人得分分别为x,y,z。定义max,将最高分赋值到max中。只有一位最高分时

10、,输出三位候选人得分,显示“祝贺某人当选冠军”。 如果有两位最高分,则显示“请重新投票”,接着,令m=2,改变全局变量,只剩下两位候选者,显示三位候选人得分,重新投票统计。如果两位候选人分数还相同,则再次循环,若不同,则显示两人得分,并显示“祝贺某人当选冠军”。【程序】int result(int a,int b,int c) int x,y,z,max=0,s=0,l=0; char k; x=a;y=b;z=c; max=x; k=a; if(maxy) max=y; k=b; if(max0) printf(a:%dn,x); if(y0) printf(b:%dn,y); if(z0)

11、 printf(c:%dn,z); if(!l) printf(祝贺%c当选冠军n,k); /*输出最后结果*/ return l;如果l返回主程序,若l为真值,则代表最后两位候选人分数还相同,主程序的do,while循环,可以再次统计票数,再次比较得分,直到选出最后的足球先生。6程序代码#include#includeint start(char p3);void count(int a,char p3,int pp);int result(int a,int b,int c);int m;void main() int a; m=3; int pp3=0,0,0; do char p100

12、3=0; /*p1003赋初值,清空*/ a=start(p); count(a,p,pp); /*计算得分*/ while(result(pp0,pp1,pp2);int start(char p3) int re,i,j,v=0; printf(请输入投票人数n); scanf(%d,&re); /*a为投票人数*/ printf(请参加投票的人开始投票n); getchar(); /*输入时以回车结束*/ for(i=0;ire;i+) int flag=0; for(j=0;jm;j+) scanf(%c,&pij); getchar(); /*输入选举投票*/ if(pi0=pi1|

13、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;void count(int a,char p3,int pp) int b=a,i; int x=0,y=0,z=0; /*a,b,c分别代表三

14、个候选人 x y z分别是他们的得分*/ for(i=0;ia;i+) 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 if(pi2=b) y+=2; if(pi0=c) z+=5; else if(pi1=c) z+=3; else if(pi2=c) z+=2; if(pi0=0) continue; pp0=x; pp1=y; pp2=z; int result(int a,int b,int c) int x,y,z,max=0,s=0

15、,l=0; char k; x=a;y=b;z=c; max=x; k=a; if(maxy) max=y; k=b; if(max0) printf(a:%dn,x); if(y0) printf(b:%dn,y); if(z0) printf(c:%dn,z); if(!l) printf(祝贺%c当选冠军n,k); /*输出最后结果*/ return l; 7程序运行结果1、主函数运行,输入选票信息3、 统计选票,输出结果8编程中遇到的困难及解决方法在编程的过程中,很容易出现一个问题,就时少大括号“”的问题。这是,error只有一个,但是错误的地方很多,且都在括号处。按照计算机所指出的错

16、误位置寻找是不容易找出错误的。直到整个程序看了一遍后才会发现是一个大括号的问题。通常少的是“”或者“”,错误位置会出现在缺少括号位置之后的其他大括号出现的地方。只要这种情况发生后,往前找是否有大括号缺失就可以将问题很快解决了。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报告出错。我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后再在头文件底下声明。9总结心得及良好建议此次实习为期一周,我学到了很多,也知道了很多的不足。通过老师的精心指导带领下,我不仅获得了很多新知识,还好好

17、复习了一下以前学的知识。在这之前,我们已经对C语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在学习了解的范围,对里面的好多东西还是很陌生,并不是很熟练,有着许多欠缺,更多的在运用起来的时候还是感到很不好动手。C语言课堂上许多关于C语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用C语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握C语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,更加巩固了学过的知识,而且在设计的时候学要系统的知识,也是一个较大的挑战,某一方面知识的欠缺都将影响到整个程序的设计。我所编的虽然只是一个小程序,但是每一步的编的过程,让我懂得很多。重温一下C语言,因为过了计算机二级,因而编

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1