- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计投票程序系统设计1
目 录
课程设计评语 2
目 录 3
1.课程论文题目 4
2.程序设计思路 4
3.功能模块图 5
4.数据结构设计 5
5.算法设计 6
6.程序代码 13
7.程序运行结果 22
8.编程中遇到的困难及解决方法 25
9.总结心得及良好建议 26
10.致谢 26
1.课程论文题目
投票程序
[要求]
设有代号为‘a’,‘b’,‘c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠军”。
例如:投票人数:5
请参加投票的人开始投票:
abc
cab
caa 此票无效
cba
bca
三位候选人得分:
a:12
b:13
c:15
祝贺c当选冠军?
[提示]
数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。
2.程序设计思路
根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。?
但是此程序还不够完善,可以增加以下程序,增强其功能:
1.记录废票数目,以便废票太多,影响选举公正。
2.若出现a,b,c以外的投票,应当将该票记为无效。
3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。
输入选票信息输出结果统计选票要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。
返回投票人数re,留到后续函数使用。主函数主函数只提供输入、处理和输出部分函数调用:【程序】#includestdio.h
#includemath.h
int start(char p[][3]);???????????????? /****输入函数****/void count(int a,char p[][3],int pp[]);?????? /***统计函数***/int result(int a,int b,int c);??????? ????????/***输出函数***/int m;????? /*****全局变量 *****/void main()?????????????????? /*****主函数*****/{?????
?????? ? int a;
???????? m=3;?
????? int pp[3]={0,0,0};??
???? do
?????? ?{
????????????? ?char p[100][3]={{0}};
???? /******p[100][3]赋初值,清空******/????????? a=start(p);
????????? count(a,p,pp);????
????????? /******计算得分******/?????? ?}
?????????? while(result(pp[0],pp[1],pp[2]));
/*****若m=2循环,直至选出足球先生*****/}
各功能模块设计
(1)?? 输入模块
【分析】
要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。
最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。
每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。
返回投票人数re,留到后续函数使用。?
【程序】
?????? int start(char p[][3])
? {
????????? int re,i,j,v=0;
????????? printf(请输入投票人数\n);
????????? scanf(%d,re);
?????????? /******a为
您可能关注的文档
- 2016年两学一做主题教育学习课件图文.ppt
- 2016年学校纪检监察工作总结编辑版.doc
- 2016年北师大版二年级数学上册74分香蕉课件.ppt
- 2016年新版冀教版七年级上册英语导学案可编辑.doc
- 2016年人教版高三英语高考语法让步状语从句课件共45张PPT.ppt
- 2016年春学期金坛市金沙高级中学高二数学备课组工作计划精选文档.doc
- 2016年最新38足疗保健按摩技师部对外承包合作协议内.doc
- 2016年浙江省杭州市中考化学试卷word版含答案及解析.doc
- 2016年新版人教版八年级上册生物导学案全册彩图.doc
- 2016年电大城市管理学期末复习资料考试小抄精编直接打印版电大最新城市管理必备小抄.doc
- Chem805 Identification of organic and inorganic compounds by chem805有机和无机化合物的鉴定.ppt
- Communication 人际沟通能力培训 如何运用有效沟通来解决工作中的问题.ppt
- DB11T 12052015 工业用能单位能源审计报告编制与审核技术规范.doc
- Chapter 9 Consumer Behavior Brand Luxury Index9章消费者行为品牌奢侈品指数.ppt
- BSCI社会责任评审相关知识培训学习计划计划解决方案实用文档.ppt
- DB33 T 53232005 无公害中药材 浙贝母 第3部分 生产技术规程.doc
- DOC 中学物理思维引导课堂教学模式.doc
- Developing Usable Vocabulary Knowledge开发可用的词汇知识PPT87.ppt
- doc 新护士岗前规范化培训的实施与管理.doc
- DOC 云南在中国东盟自由贸易区建成背景下的机遇和挑战.doc
文档评论(0)