蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOCX文档下载
 

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

  • 资源ID:53132143       资源大小:141.42KB        全文页数:13页
  • 资源格式: DOCX        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

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

课程设计评语错误未定义书签。 目录1 1. 课程论文题目2 2. 程序设计思路2 3. 功能模块图3 4. 数据结构设计3 5. 算法设计3 6. 程序代码7 7. 程序运行结果11 8. 编程中遇到的困难及解决方法12 9. 总结心得及良好建议12 致谢12 1. 课程论文题目 投票程序 [要求] 设有代号为a , b,,的二个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分 别记分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]⑶的数组来存放,re来控 制投票信息数组的彳丁数。 最开始定义一个全局变量m3,来表示候选者人数。这样来控制数列数,达到控制输入的 目的。 每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现a/b.-c以外的 投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。 判断完毕后,若出现废票,就将其中的票府赋值为0。 返回投票人数re,留到后续函数使用。 5. 算法设计 1、主函数 主函数只提供输入、处理和输出部分函数调用 【程序】 includestdio.h includemath.h int startchar p[]⑶;/****输入函数****/ void countint a,char p[][3],int pp[];/***统计函数***/ int resultint a,int b,int c;/***输出函数***/ int m******/ void main/*****主函数*****/ { int a; m3; int pp[3]{ 0,0,0}; do char p[ 100] [3]{{0}}; /******p[100][3]赋初值,清空******/ astartp; counta,p,pp; /****** 计算得分 ******/ } whileresultpp [0] ,pp[l] ,pp[2]; /*****若m2循环,直至选出足球先生*****/ } 2、各功能模块设计 1 输入模块 【分析】 要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制 投票信息数组的行数。 最开始定义一个全局变量m3,来表示候选者人数。这样来控制数列数,达到控制输入的 目的。 每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现aTbTJ以外的投 票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判 断完毕后,若出现废票,就将其中的票府赋值为0為 返回投票人数re,留到后续函数使用。 【程序】 int startchar p[][3] int re,i,j,vO; printfC请输入投票人数\n“; scanf d ,re; printf请参加投票的人开始投票\n”; getchar; /******输入时以回车结束******/ fori0;ire;i int flagO; forj0;jm;j scanf c , p [i] [j ]; getchar; /******输入选举投票******/ ifp[i][0]p[i][l]||p[i][l]p[i][2]llp[i][0]p[i][2] flagl; /******判断一张票上是否写有两个相同代号******/ forj0;jm;j { ifp[i][j]ap[i][j]b p[i]U]c flagl; } /******判断是否有a,b,c以外的字母******/ ifflag { printf”此票无效 \n”; v; forj0;jm;j p[i]Lj]o; } /******若有以上情况,显示此票无效,忽略此票,并记录废票数******/ } printf”作废票数是%d票\n,v; return re; } 2 统计模块 【分析】 功能上要求分别统计a,b,c三个人的得分,因而用x,y,z来存放,每一票中分别统计得分, 根据投票者在选票上对他们编号的填写顺序分别记分5, 3, 2,将如果出现废票,直接跳过不 计,将最后结果分别放入x,y,z.o 引用主函数中的数组pp[3],将统计的x,y,z分别赋值到pp[0],pp[l],pp[2]中,这样就可以带 回主函数中。 【程序】 void countint a,char p[][3],int pp[] { int ba,i; int x0,y0,z0; /******aTb,e分别代表三个候选人x y z分别是他们的得分******/ fori0;ia;i x5; else ifp[i][l]a* x3; else ifp[i] [2]a x2; ifp[i][O],b, y5; else ifp[i][l]-b* y3; else ifp[i][2]b‘ y2; ifp[i][O]C z5; else ifp[i][l]-c

注意事项

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

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开