- 2
- 0
- 约3.74千字
- 约 9页
- 2023-03-12 发布于湖北
- 举报
PAGE
PAGE 9
投票程序
题目与要求: 题目要求
设有代号为’ a’,’b’,’c’的三个个足球先生候选人 ,根据投票者在选票上对他们编号的填写顺序分别记分 5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。请注意;若同一张票上写有两个相同代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺 X 当选冠军!”。
例如:投票人数:5 输入投票内容:
a b c c a b c b a
c a a 该票无效!
c b a
三位候选人得分:
a: 12
b: 13
c: 15
祝贺 c 当选冠军!
问题提出与要求: 需求分析
本程序中要求候选人有编号和得票数,且每张选票上要同时写上三个候选人的编号,最终输出谁是获胜者。因此可以用结构体来存储候选人的信息。唱票中要求相对应的编号分别记分为 5、3、2,因此在记分程序中可以用一个条件表达式来进行统计得分。统计结果中若前两名有相同的得票数则要求重新投票。为此要求把三个侯选人的总得分进行比较,则可以用一个判断语句来判断,简单明了。
数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组, 行方向对应一张投票,列方向对应各候选人得分。
功能实现设计:
总体设计——程序流程图
流程图:
开始
开始
定义结构体与相关变量
输入投票人数
及投票内容
N
Y
选票编号重复?
该票无效
统计相应候选人的票数并排序
Y
判断前两名
总票数是否相等
N
重新投票
输出投票结
果及获胜者
结束
详细设计:
1程序源代码: #includestdio.h
main()
{
int finish=0,first,seccond,i,scores[3],num; char s1,s2,s3;
printf(*******************************************************\n); printf(*****Welcome to use footballman voting programe! ******\n);
printf(*******************************************************\n); while(finish==0) /*****输入模块*****/
{
for(i=0;i3;i++) scores[i]=0;
printf(请输入投票人数: \n); /*****有多少人投票*****/ scanf(%d,num); /*****输入投票人数*****/ getchar();
printf(请输入投票内容(选择您所需的 abc 候选人次序): \n); /*****
选票的内容*****/ for(i=0;inum;i++)
{
scanf(%c %c %c,s1,s2,s3); /*****输入投票内容*****/ getchar();
if(s1==s2||s1==s3||s2==s3)
printf(该票无效!\n); /*****该票无效*****/ if(s1!=s2 s1!=s3 s2!=s3 (s1=a s1=c)
(s2=a s2=c) (s3=a s3=c))/***** 统计模块
*****/
{
scores[s1-a]+=5;
scores[s2-a]+=3;
scores[s3-a]+=2;
}
}
printf(Voting results:\n); /*****输出模块*****/ printf(a: %d\n,scores[0]); /*****结果输出*****/ printf(b: %d\n,scores[1]);
printf(c: %d\n,scores[2]); first=0;
seccond=1; for(i=0;i3;i++)
{
if(scores[i]scores[first])
{
seccond=first; first=i;
}
else
if(scores[i]scores[seccond]) seccond=i;
}
if(scores[first]!=scores[seccond])
{
printf(祝贺 %c 当选冠军!\n,first+a); finish=1;
}
else
printf(请重新投票!\n);
}
return 0;
}
2启动程序:
编译、链接、运行:
输入投票人数:5
输入投票内容:
a b c c a b
c
a
a
该票无效!
c
b
a
c
b
a
成 功 运 行 ! 3.知识点集锦:
什么是结构化程序设计?比较其与对象化程序设计的区别。
答:结构化程序的概念首先是从以往编程过程中
您可能关注的文档
最近下载
- 英语文学阅读与鉴赏B7_Unit 7_Dusk.doc VIP
- 《GB_T 39039-2020高强度钢氢致延迟断裂评价方法》专题研究报告.pptx VIP
- 超声介入室建设方案(含功能布局与合规标准).docx
- 默纳克NICE9000V荣耀控制柜调试手册.pdf VIP
- 一(下)语文 阅读理解解精选42篇 (1).pdf VIP
- 寒号鸟练习题.doc VIP
- 关于推行“干事对账”制度的.doc VIP
- 深度解析(2026)《GBT 223.82-2018钢铁 氢含量的测定 惰性气体熔融-热导或红外法》.pptx VIP
- 量化经典高收益量化策略.ppt VIP
- 2025年消防设施操作员(监控类)考前必练题库资料500题(含真题、重点题).pdf
原创力文档

文档评论(0)