欢迎来到天天文库
浏览记录
ID:41713690
大小:132.59 KB
页数:12页
时间:2019-08-30
《王浪波第七题投票程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言课程设计设计题目:投票程序-足球先生投票院系姓名学号班号工程学院王浪波20081001153054081-07指^导教师:王老师日期:2010年1月•、程序要求设冇代号为a,b,c,的三个足球先生候选人,根据投票者在选票上对他们的编号的填写顺序分别记分为5、3、2。请编程从键盘上输入投票人数和投票结果。统计他们的得分,并输出哪位当选为足球先生。(注意:若一张选票中有两个相同的代号,该选票作废;若最终前两名得分相同则耍重新投票。)二、设计分析本程序中要求候选人有编号和得票数,且每张选票上要同吋写上三个候选人的编号,最终
2、输出谁是获胜者。因此可以丿IJ结构体來存储候选人的信息。唱票屮要求相对应的编号分别记分为5、3、2,因此在记分程序中可以用一个条件表达式来进行统计得分。统计结果中若前两名冇相同的得票数则要求重新投票。为此要求把三个后选人的总得分进行比较,则可以用一•个判断语句来判断,简单明了。三、程序设计总思路定义结构体存放候选人的信息,包括编号和得分。输入投票总人数和投票结果,然后根据人数和投票结果进行统计得分,把选票屮有相同编号的去掉,只统计没有相同编号的票数。然后对最终的分数进行比较,若存在前两名的得分情况一-样,则需要重新投票,否
3、则输出谁是获胜者。结构休定义为:structhouxuanron{intid;intpoint;//定义结构体变量表示候选人包含的信息,包括编号和得分//唱票情况的数据结构:if(x!二y&&x!=z&&y!=z)//判断输入的投票中不能有重复的编号//{hxr[0].point+=(x=,a'?5:(y=-a'?3:(z二二'a?2:0)));//第一个候选人的得分情况和算法//hxrtll.point+=(x==b,?5:(y=‘b'?3:(z二二'b'?2:0)));//第二个候选人的得分情况和算法//hxr[2].
4、point+=(x=-c*?5:(y二二'c'?3:(z='c'?2:0)));//第三个候选人的得分情况和算法//比较总得分与是否要进行重新投票的数据结构为:for(i=0;i<3;i++){if(temp5、[0]・point>hxr[2].point&&hxr[1].point>hxr[2].point)I((hxr[0].point==hxr[2].point)&&hxr[0].point>hxr[1].point&&hxr[2]・point>hxr[1].point)I((hxr[1].point二二hxr[2]・point)&&hxr[1]・point>hxr[0]・point&&hxr[2].point>hxr[0].point))printfC重新投票『);//若有前两名得分相同进行重新投票//else{prin6、tfC获胜者是people%crT,j);getchO;匸函数设计流程:具体的算法冇:if(x!=y&&x!=z&&y!=z){//判断输入的投票中不能有重复的编号//hxr[O].point+=(x=-a'?5:(y二二'a'?3:(z='a?2:0)));〃第一个候选人的得分情况和算法//hxr[l]・point+=(x==b,?5:(y==,b'?3:(z二二'b'?2:0)));//第二个候选人的得分情况和算法//hxr[2].point+=(x==,c'?5:(y==,c'?3:(z==,c'?2:0)));/7、/第三个候选人的得分情况和算法//printf(z/point:%d%d%d/z,hxr[0],point,hxr[l].point,hxr[2].point);continue;程序运行情况若第一个选票对应为abc则对应的候选人分别得分为5,3,2。依次类推,丿口8、"C:DocumEntsandSEttings'Administrator、桌面D£bug投票程序・£xe"I请输入投票总人数请输入投票abcpoint:532bacpoint:884aab此票作废abcpoint:13116abcpoint:189、148peopleapoint18peoplebpoint14peoplecpoint8获胜者是peoplea说明:上图是笫一种情况,输入了数据,显示出谁是获腔者■10、口11、[c"CzXDocumentsandSettingsAdministrator^®Debugfi^Sff.exe请输入投票总人
5、[0]・point>hxr[2].point&&hxr[1].point>hxr[2].point)I((hxr[0].point==hxr[2].point)&&hxr[0].point>hxr[1].point&&hxr[2]・point>hxr[1].point)I((hxr[1].point二二hxr[2]・point)&&hxr[1]・point>hxr[0]・point&&hxr[2].point>hxr[0].point))printfC重新投票『);//若有前两名得分相同进行重新投票//else{prin
6、tfC获胜者是people%crT,j);getchO;匸函数设计流程:具体的算法冇:if(x!=y&&x!=z&&y!=z){//判断输入的投票中不能有重复的编号//hxr[O].point+=(x=-a'?5:(y二二'a'?3:(z='a?2:0)));〃第一个候选人的得分情况和算法//hxr[l]・point+=(x==b,?5:(y==,b'?3:(z二二'b'?2:0)));//第二个候选人的得分情况和算法//hxr[2].point+=(x==,c'?5:(y==,c'?3:(z==,c'?2:0)));/
7、/第三个候选人的得分情况和算法//printf(z/point:%d%d%d/z,hxr[0],point,hxr[l].point,hxr[2].point);continue;程序运行情况若第一个选票对应为abc则对应的候选人分别得分为5,3,2。依次类推,丿口
8、"C:DocumEntsandSEttings'Administrator、桌面D£bug投票程序・£xe"I请输入投票总人数请输入投票abcpoint:532bacpoint:884aab此票作废abcpoint:13116abcpoint:18
9、148peopleapoint18peoplebpoint14peoplecpoint8获胜者是peoplea说明:上图是笫一种情况,输入了数据,显示出谁是获腔者■
10、口
11、[c"CzXDocumentsandSettingsAdministrator^®Debugfi^Sff.exe请输入投票总人
此文档下载收益归作者所有