C语言课程设计报告—投票程序足球先生.doc

C语言课程设计报告—投票程序足球先生.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计报告—投票程序足球先生

前言 编程实践是学习程序设计语言中的一个重要环节,许多同学在学习了课程设计这门课程后往往来不及消化以及应用所学知识。为了提高同学程序设计能力,强化同学们的理论应用于实际的能力,提高分析问题与解决问题的能力,故开设程序设计的课程使同学们的程序设计能力上一个新的台阶。 设计题目:投票程序——足球先生投票 一、程序要求 设有代号为 a,b,c,的三个足球先生候选人,根据投票者在选票上对他们的编号的填写顺序分别记分为5、3、2。请编程从键盘上输入投票人数和投票结果。统计他们的得分,并输出哪位当选为足球先生。(注意:若一张选票中有两个相同的代号,该选票作废;若最终前两名得分相同则要重新投票。) 二、设计分析 本程序中要求候选人有编号和得票数,且每张选票上要同时写上三个候选人的编号,最终输出谁是获胜者。因此可以用结构体来存储候选人的信息。唱票中要求相对应的编号分别记分为5、3、2,因此在记分程序中可以用一个条件表达式来进行统计得分。统计结果中若前两名有相同的得票数则要求重新投票。为此要求把三个后选人的总得分进行比较,则可以用一个判断语句来判断,简单明了。 三、程序设计总思路 定义结构体存放候选人的信息,包括编号和得分。输入投票总人数和投票结果,然后根据人数和投票结果进行统计得分,把选票中有相同编号的去掉,只统计没有相同编号的票数。然后对最终的分数进行比较,若存在前两名的得分情况一样,则需要重新投票,否则输出谁是获胜者。结构体定义为 struct houxuanren{ int id; int point; }hxr[3]; 唱票情况的数据结构: if(x!=yx!=zy!=z) //判断输入的投票中不能有重复的编号// {hxr[0].point+=(x==a?5:(y==a?3:(z==a?2:0))); //第一个候选人的得分情况和算法// hxr[1].point+=(x==b?5:(y==b?3:(z==b?2:0))); //第二个候选人的得分情况和算法// hxr[2].point+=(x==c?5:(y==c?3:(z==c?2:0))); //第三个候选人的得分情况和算法// 比较总得分与是否要进行重新投票的数据结构为: for(i=0;i3;i++) { if(temphxr[i].point) {temp=hxr[i].point; j=a+i; } printf(people %c point %d\n,a+hxr[i].id,hxr[i].point); } if(((hxr[0].point==hxr[1].point)hxr[0].pointhxr[2].pointhxr[1].pointhxr[2].point)||( (hxr[0].point==hxr[2].point)hxr[0].pointhxr[1].pointhxr[2].pointhxr[1].point)||((hxr[1].point==hxr[2].point)hxr[1].pointhxr[0].pointhxr[2].pointhxr[0].point)) printf(重新投票\n); //若有前两名得分相同进行重新投票// else{ printf(获胜者是 people %c\n,j); } getch(); } 主函数设计流程: 具体的算法有: if(x!=yx!=zy!=z)//判断选票情况,每张选票中的号码不能有相同的候选人号码否则作废// { hxr[0].point+=(x==a?5:(y==a?3:(z==a?2:0))); //第一个候选人的得分情况和算法// hxr[1].point+=(x==b?5:(y==b?3:(z==b?2:0))); //第二个候选人的得分情况和算法// hxr[2].point+=(x==c?5:(y==c?3:(z==c?2:0))); //第三个候选人的得分情况和算法// printf( point: %d %d %d\n,hxr[0].point,hxr[1].point,hxr[2].point); continue; 若第一个选票对应为abc则对应的候选人分别得分为5,3,2。依次类推。 输入数据显示的结果如下:             图A            图B             图C 图A中输入了数据显示出谁是获胜者;图B中前两名的得分相同显示重新投票;图C中有不含B的投票但满足题意。图A和图B输入的规范的数据,图C输入中含不规范的数据但不影响结果。 后记 C语言程序是一种相当实在的应用程序,掌握了对以后的编程有很大的帮助。在编程过程中需要多练习多做题目还要开动脑筋思考问题,能够用最简单的代码完成较复杂的程序要求是最理想的

文档评论(0)

weizhent2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档