版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C程序课程设计摘要本文程序针对3个候选人投票问题和出租车公司选取3名优秀驾驶员的问题编写了两道程序,通过运用到的结构体的设定、if语句、数组的排序、goto语句构成的循环,关系运算符和关系表达式、逻辑运算及其优先次序等多个C程序设计知识点,最终设定出逻辑思维紧密的候选人投票程序与评分多样化的出租车公司选优秀司机的评分程序。每个程序在体现出操作者需求的同时,也总有它本身一下不足的地方,本文中的程序候选人投票程序有较大的局限性,本文中的投票程序只针对只有3名候选人的情况,如果候选人多的话就不再用;出租车公司选优秀司机的评分程序具有较低的局限性,其中参与评选的司机人数可以随意的设定,只需改动该程序
2、中的自定义常量N,程序用还附有该程序的输入说明,让操作该程序的人简单明了地完成操作任务,但不足的地方是加入操作员输入错误数据时没有错误的提示,也不会返回更改,要求操作员有足够的细心和耐心。 关键词:结构体;数组;循环目录一、选举候选人的投票的程序设计与实现41、程序流程图42、源程序63、结果分析13二、出租车公司选3名优秀司机的评分程序的设计与实现141、程序流程图142、源程序183、结果分析21三、心得体会22四、参考文献23一、选举候选人的投票的程序设计与实现对候选人投票问题的设定一个程序,该程序具有以下功能: (1)设有“现场群众投票”7张、“嘉宾领导投票”3张;(2)设有“弃权”选
3、项;(3)如果在输入候选人名字的错误的时候,系统会给出相应的指示,并返回重新开始选票;(4)在结果中打印各候选人的现场群众投票数和嘉宾领导投票数,以及各候选人得到选票的总数;(5)在结果中打印得票数最高的票数以及相对应候选人的名字;(6)设置程序为如果候选人总得票数相等,那相比较嘉宾领导的投票数,如果嘉宾领导的投票数相等,那就比较现场群众的投票数,如果还相等,那就提示这两个候选人重新投票;1、程序总流程图:Y开始定义一个结构体person,包含数组name、count、sum,并命名为leader定义一个结构体count,包含数组viewer、rater定义整型变量i=0,j=0,z=0,ma
4、x=0,maxi=0,sum=0;定义字符数组viewer_vote,rater_vote;定义一个结构体count,包含数组viewer、raterNi7分别输入三个候选人名字(name)、群众得票(viewer)、领导得票(rater)总得票(sum)候选人的总得票=群众得票+嘉宾领导投票(leaderi.sum=leaderi.count.viewer+leaderi.count.rater)根据候选人的总得票进行排序选出得票最高的候选人Leadermaxi输出得票最高的候选人;所有候选人的得票情况结束YNj3输入各嘉宾领导的投票z3N输入各群众的投票i72、源程序:#include #
5、include struct count int viewer; int rater; struct personchar name20; struct count count; int sum;leader4=li,0,0,0, zhang,0,0,0,fun,0,0,0,giveup,0,0,0;void main()int i,j,t,max,maxi,sum;char viewer_vote20;char rater_vote20;printf(please enter the persons name which viewer vote to:n); loop:leader0.cou
6、nt.viewer=0,leader1.count.viewer=0,leader2.count.viewer=0,leader3.count.viewer=0; for(i=1;i=7;i+) scanf(%s,viewer_vote); if(strcmp(viewer_vote,li)!=0)&(strcmp(viewer_vote,zhang)!=0)&(strcmp(viewer_vote,fun)!=0)&(strcmp(viewer_vote,giveup)!=0) printf(enter is error!nnPlease enter the *all*viewer vote
7、 again!n ); if(strcmp(viewer_vote,li)!=0)&(strcmp(viewer_vote,zhang)!=0)&(strcmp(viewer_vote,fun)!=0)&(strcmp(viewer_vote,giveup)!=0)goto loop;for(j=0;j4;j+) if(strcmp(viewer_vote,)=0)leaderj.count.viewer+;printf(please enter the persons name which rater vote to:n); looy:leader0.count.ra
8、ter=0,leader1.count.rater=0,leader2.count.rater=0,leader3.count.rater=0; for(i=1;i=3;i+) scanf(%s,rater_vote); for(j=0;j4;j+)if(strcmp(rater_vote,)=0)leaderj.count.rater+; if(strcmp(rater_vote,li)!=0)&(strcmp(rater_vote,zhang)!=0)&(strcmp(rater_vote,fun)!=0)&(strcmp(rater_vote,giveup)!=0
9、)printf(enter is error!nnPlease enter the *all*rater vote again!n ); if(strcmp(rater_vote,li)!=0)&(strcmp(rater_vote,zhang)!=0)&(strcmp(rater_vote,fun)!=0)&(strcmp(rater_vote,giveup)!=0)goto looy; printf(n);for(t=0;t4;t+)leadert.sum=leadert.count.viewer+leadert.count.rater;max=0; maxi=0; if(leader0.
10、sum!=leader1.sum)&(leader0.sum!=leader2.sum)&(leader1.sum!=leader2.sum)for(i=0;imax) max=sum; maxi=i;printf(the highest is %d %sn,leadermaxi.sum,);else if(leader0.sum=leader1.sum)&(leader0.sum=leader2.sum)&(leader1.sum=leader2.sum) if(leader0.count.raterleader1.count.rater)&(leader0.c
11、ount.raterleader2.count.rater)printf(THE HIGHEAST IS %d %sn,leader0.sum,);else if(leader2.count.raterleader1.count.rater)&(leader2.count.raterleader0.count.rater)printf(THE HIGHEAST IS %d %sn,leader2.sum,);else if(leader1.count.raterleader2.count.rater)&(leader1.count.raterle
12、ader0.count.rater)printf(THE HIGHEAST IS %d %sn,leader1.sum,);else if(leader0.count.rater=leader1.count.rater)&(leader0.count.rater=leader2.count.rater)&(leader1.count.rater=leader2.count.rater) if(leader0.count.viewerleader1.count.viewer)&(leader0.count.viewerleader2.count.viewer)printf
13、(THE HIGHEAST IS %d %sn,leader0.sum,); else if(leader1.count.viewerleader2.count.viewer)&(leader1.count.viewerleader0.count.viewer)printf(THE HIGHEAST IS %d %sn,leader1.sum,);elseif(leader2.count.viewerleader1.count.viewer)&(leader2.count.viewerleader0.count.viewer)printf(THE
14、 HIGHEAST IS %d %sn,leader2.sum,); else if(maxi=0)if(leader0.sum=leader1.sum)|(leader0.sum=leader2.sum) if(leader0.sum=leader1.sum) if(leader0.count.raterleader1.count.rater) printf(THE HIGHEAST IS %d%sn,leader0.sum,); else if(leader0.count.raterleader1.count.viewer)printf(TH
15、E HIGHEAST IS %d %sn,leader0.sum,); else if(leader0.count.viewerleader2.count.rater) printf(THE HIGHEAST IS %d %Sn,leader0.sum,); else if(leader0.count.raterleader2.count.viewer)printf(THE HIGHEAST IS %d %sn,leader0.sum,); else if(leader0.count.viewerleader2.count
16、.rater) printf(THE HIGHEAST IS %d %sn,leader1.sum,); else if(leader1.count.raterleader2.count.viewer)printf(THE HIGHEAST IS %d %sn,leader1.sum,); else if(leader1.count.viewerleader2.count.viewer)printf(THE HIGHEAST IS %d %sn,leader2.sum,); else if(leader1.count.vi
17、ewer=leader2.count.viewer)printf(zhangs vote is the same as funs vote,please vote they again.n); for(i=0;i4;i+)printf(%5s:viewervote is %d;ratervote is %d;sum is%dn ,,leaderi.count.viewer,leaderi.count.rater,leaderi.sum); 3、结果分析:如上图,当候选人zhang和li的总得票一样时,由于li的嘉宾领导得票高于zhang,所以li竞选胜出。 如上图,当三
18、个候选人的总得票都不一样时,由于fun总得票最高,所以fun胜选胜出。二、出租车公司选3名优秀司机的评分程序的设计与实现针对出租车公司评选3名优秀司机设计的评分程序,该程序具有以下功能:(1)司机的驾龄大于5年小于10年的,加1分,驾龄大于十年的,加2分;驾龄小于5年的,不加分;(2)司机载客过程中服务态度好的,加2分,态度一般的,加1分,差劲的,不加分;(3)司机驾驶过程中,没有发生过交通事故的,加2分,驾驶过程中很少发生交通事故的,加1分,驾驶过程中经常发生交通事故的,不加分。1、程序流程图:NY开始定义结构体变量:num,name,dt,ds,da,scorei=5且10score= s
19、core+2score= 0输出dt结束YYNN开始读入da的数据da等于no定义变量scorescore= score+2da等于somescore= score+1score= 0输出da结束YYNN开始读入ds的数据ds等于good定义变量scorescore= score+2ds等于widescore= score+1score= 0输出ds结束YYYNNY开始读入各个司机的总分drii.(score)iNi=0,j=0;结束输入自定义常量N等于5,自定义变量i,j,dri结构体相似的结构体变量t;jdrii+1.(score)t=drii.score;drii.score=drii+
20、1.score;drii+1.score=t;输出各司机的总分drii.(score)2、源程序:#include#include#define N 5struct driver char num6; char name8; int dt; char ds8; char da8; int score; driN,t; void main() int i,j;printf(*n); printf( - instruction -n); printf(when enter every drivers number,please enter the number with 3 digits,For
21、example :001 n); printf(when enter every drivers name, please do it like this:huangn); printf(when enter every drivers drivers driving time, please do it like this:5n); printf(when enter every drivers drivers driving server,please entergoodorwideorbadn); printf(when enter every drivers drivers drivi
22、ng accident,please enternoorsomeoroftenn); printf(-n); printf(*n); for(i=0;iN;i+)printf(input score of driver %d:n,i+1); printf(NO.:); scanf(%s,drii.num); printf(Enter the drivers driving name:n); scanf(%s,); printf(Enter the drivers driving time:n); scanf(%d,&drii.dt); printf(Enter the dri
23、vers driving server:n); scanf(%s,drii.ds); printf(Enter the drivers driving accident:n); scanf(%s,drii.da); drii.score=0;for(i=0;i=5)&(drii.dt=10) drii.score=drii.score+2; if(strcmp(drii.ds,good)=0) drii.score=drii.score+2; else if(strcmp(drii.ds,wide)=0) drii.score+; if(strcmp(drii.da,no)=0) drii.s
24、core=drii.score+2; else if(strcmp(drii.da,some)=0) drii.score+;for(j=0;jN;j+) for(i=0;iN-j;i+) if(drii.scoredrii+1.score) t=drii; drii=drii+1; drii+1=t; printf(*-*-*-*-*-*n); printf( NO. name drivingtime(year) drivingserver drivingaccident scoren); printf(*-*-*-*-*-*n); for(i=0;iN;i+) printf(%3s %8s
25、 %2d %15s %15s %3dn,drii.num,,drii.dt,drii.ds,drii.da,drii.score); printf(:n); printf(the first is:driver %2s, %8sn,dri0.num,); printf(:n) ; printf(the second is:driver %2s, %8sn,dri1.num,); printf(:n); printf(the third is:driver %2s, %8sn,dri2.num,); printf(:n);3、结果分析:如上图,在程序运行后,会出现类似于说明书的提示框,操作程序的人员可根据要求输入各个司机的参选信息。 如上图,在程序运行后,输入各司机的相关数据后,等到的结果里司机pan的得分最高,所以第一名是pan,随后的是司机huang和司机wei。三、心得体会一直以来程序设计给我的感觉就是一种只有天赋很高的人才适合学习的科目,带着信心不足的心理我学习了C程序一个学期,可总有一种懵懵懂懂的感觉,说自己对这个知识点理解了,可要是要我实际运用去的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026格力电商人才招募备考题库及答案详解一套
- 2026陕西延安北方医院招聘备考题库含答案详解(b卷)
- 2026浙江嘉兴市海宁市儿童福利院招聘2人备考题库含答案详解【培优b卷】
- 2026北京理工大学事业编制相关岗位招聘备考题库及参考答案详解(b卷)
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库附答案详解【培优b卷】
- 2026山东青岛城市轨道交通科技有限公司招聘7人备考题库含答案详解(巩固)
- 2026恒丰银行总行实习生招收备考题库含答案详解(巩固)
- 2026山东青岛海上综合试验场有限公司招聘38人备考题库含完整答案详解【考点梳理】
- 2026年新疆能源职业技术学院单招职业适应性测试题库含答案详细解析
- 2026年成都文理学院单招职业技能考试题库附答案详细解析
- 冶炼车间岗前安全培训课件
- 现代监狱智能信息系统设计方案
- 高三入住酒店安全培训课件
- 医疗废物培训课件
- 管路阀门标识管理办法
- 《新媒体营销》项目4 新媒体内容创作
- 静脉治疗护理技术操作标准2024测试题及参考答案
- 2024年江苏航运语数英真题(含答案)
- 2025年重庆市选调生考试(申论)历年参考题库含答案详解(5套)
- 2025年酸洗工考试题库
- 2025年高空作业安全培训试卷及答案
评论
0/150
提交评论