C++课程设计投票程序.doc
《C++课程设计投票程序.doc》由会员分享,可在线阅读,更多相关《C++课程设计投票程序.doc(16页珍藏版)》请在三一办公上搜索。
1、各专业全套优秀毕业论文图纸C/C+程序设计课程设计课程设计题目: 投票程序 系 别: 计算机科学与工程 专 业: 信息管理与信息系统 小组成员: XXX 设 计 者: XXX 指导教师: XXX 批语:河南城建学院2014年 12 月 25 日设计题目:投票程序1一、设计要求和分工11、设计要求12、设计目标2二、数据结构设计2数据结构设计描述2三、变量的定义和作用4四、系统各模块( 函数)的组成,功能61、 输入模块:62、 统计模块:63、 输出功能:7五、各功能模块的算法处理流程图及相关说明81、 输入模块的算法处理流程图及相关说明:82、统计模块的算法处理流程图及相关说明:82、 输出
2、模块的算法处理流程图及相关说明:9六、程序设计过程中遇到的问题及解决过程101、 问题一及解决过程:102、 问题二及解决过程:103、 问题三及解决过程:11七、 课程设计总结或体会111、总结112、体会12附录:源程序12参考文献14设计题目:投票程序一、设计要求和分工1、设计要求要求在设计过程中,充分发挥自己的独立工作能力及创造能力,对每个问题都应进行分析、比较,并提出自己的见解,反对盲从,杜绝抄袭。在设计过程中必须做到:1.随时复习教科书、听课笔记及习题;2.做好准备工作,充分发挥自己的主观能动性和创造性,及时查阅相关资料;3.认真编程;4.按预定计划及时完成任务。2、设计目标设有代
3、号为a,b,c的三位亚洲小姐候选人,根据投票者在选票上对他们代号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选亚洲小姐。请注意:若同一张票上写有两个相同代号,或者投票者在选票上填写的代号不是a,b,c的三位亚洲小姐候选人的代号,则显示“此票无效”;对候选人按照他们的得分排序,然后比较前两名候选人得分是否相同。如果相同,则显示“重新投票”;否则显示三个候选者得分并输出“祝贺X当选冠军”,X为最高分候选者。例如:投票人数:6输入投票内容:abccabcbacaa该票无效!rca该票无效!cba三位候选人得分:a:12b:13c:15 “祝贺X当选
4、冠军”,X为最高分候选者。二、数据结构设计数据结构设计描述开始定义结构体、相关变量和常量输入投票人数和投票内容选票代号是否重复是否含有其他人NY该票无效统计相应候选人的票数并排序输出投票结果YN判断前两名总票数是否相等重新投票输出获胜者结束三、变量的定义和作用#include #include /以上两个是包含库。struct hxr int code; int score; /定义代号、得分两个整型数据。 hxr3; /定义一个结构体存放候选人数据。main() /入口函数。 int i=0,j=0,k,temp=0,end=0; char x,y,z; /定义接收投票的变量。 struct
5、 hxr hxr3; /用hxr定义结构体数组。 printf(请输入投票总人数:n); scanf(%d,&k); /将投票人数放入标量k。 printf(请输入投票:n); getchar(); /拦截scanf的最后一个回车。 while(end=0) /while语句进行循环判定,if出现出现前两名并列第一时,返回while语句重新投票else输出冠军结束程序。 for(i=0;i3;i+) hxri.code=i; hxri.score=0; /初始化结构体数组。 for(i=1;i=k;i+) scanf(%c%c%c,&x,&y,&z); /将投票按照x,y,z的顺序输入。 ge
6、tchar();/拦截回车,否则最后一个字符输入完毕按回车之后,回车的输入没有东西接收,就会变成下次循环的第一个字符scanf就会接收,那么二次循环的第一个字符就智能读到回车了,所以第一次结尾用getchar()拦截回车. if(x!=y&x!=z&y!=z)&(x=a| x=b|x=c)&(y=a| y=b|y=c)&(z=a| z=b|z=c) / 只有所投票中3位候选人各出现一次且所投票必须是a,b,c以内的字母此票才有效,不符合执行if下面的prinft语句。 hxr0.score+=(x=a?5:(y=a?3:2); hxr1.score+=(x=b?5:(y=b?3:2); hxr
7、2.score+=(x=c?5:(y=c?3:2); /三目运算判断三个投票人一轮投票的结果,每有人投一次就判断累加一次。 printf( score: %d %d %dn,hxr0.score,hxr1.score,hxr2.score); / 输出投入该票后,三个人累计得分。 continue; / continue 语句的用法是跳过continue下面的语句进入下一次循环! printf(此票无效n); for(i=0;i3;i+) if(temp=hxr2.score) | ( (hxr0.score=hxr2.score)&hxr0.score=hxr1.score) | (hxr1
8、.score=hxr2.score)&hxr1.score=hxr0.score) printf(重新投票n);/ 如果出现前两名并列第一,则打印“重新投票”。 else printf(祝贺%c当选冠军,%c为最高分候选者。n,j,j); / 否则输出得分最高者的名字。 end=1; getchar(); / 增加一个输入命令,防止程序直接退出看不到结果。四、系统各模块( 函数)的组成,功能1、 输入模块:main() /入口函数。 int i=0,j=0,k,temp=0,end=0; char x,y,z; /定义接收投票的变量。 struct hxr hxr3; /用hxr定义结构体数组
9、。 printf(请输入投票总人数:n); scanf(%d,&k); /将投票人数放入标量k。 printf(请输入投票:n); getchar(); /拦截scanf的最后一个回车。 while(end=0) /while语句进行循环判定,if出现出现前两名并列第一时,返回while语句重新投票else输出冠军结束程序。 for(i=0;i3;i+) hxri.code=i; hxri.score=0; /初始化结构体数组。 for(i=1;i=k;i+) scanf(%c%c%c,&x,&y,&z); /将投票按照x,y,z的顺序输入。 getchar();/拦截回车,否则最后一个字符输
10、入完毕按回车之后,回车的输入没有东西接收,就会变成下次循环的第一个字符scanf就会接收,那么二次循环的第一个字符就智能读到回车了,所以第一次结尾用getchar()拦截回车.2、 统计模块:if(x!=y&x!=z&y!=z)&(x=a|x=b|x=c)&(y=a| y=b|y=c)&(z=a| z=b|z=c) / 只有所投票中3位候选人各出现一次且所投票必须是a,b,c以内的字母此票才有效,不符合执行if下面的prinft语句。 hxr0.score+=(x=a?5:(y=a?3:2); hxr1.score+=(x=b?5:(y=b?3:2); hxr2.score+=(x=c?5:(
11、y=c?3:2); /三目运算判断三个投票人一轮投票的结果,每有人投一次就判断累加一次。 printf( score: %d %d %dn,hxr0.score,hxr1.score,hxr2.score); / 输出投入该票后,三个人累计得分。 continue; / continue 语句的用法是跳过continue下面的语句进入下一次循环! printf(此票无效n); 3、 输出功能:for(i=0;i3;i+) if(temp=hxr2.score) | ( (hxr0.score=hxr2.score)&hxr0.score=hxr1.score) | (hxr1.score=hx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 投票 程序
链接地址:https://www.31ppt.com/p-2384449.html