C语言课程设计优秀版_第1页
C语言课程设计优秀版_第2页
C语言课程设计优秀版_第3页
C语言课程设计优秀版_第4页
C语言课程设计优秀版_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、raterNi<7分别输入三个候选人名字(name)、群众得票(viewer)、领导得票(rater)总得票(sum)候选人的总得票=群众得票+嘉宾领导投票(leaderi.sum=leaderi.count.viewer+leaderi.count.rater)根据候选人的总得票进行排序选出得票最高的候选人Leadermaxi输出得票最高的候选人;所有候选人的得票情况结束YNj<3输入各嘉宾领导的投票z<3N输入各群众的投票i<7

5、2、源程序:#include<stdio.h> #include<string.h> 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;c

6、har rater_vote20;printf("please enter the person's name which viewer vote to:n"); loop:leader0.count.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)&&

7、(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 again!n "); if(strcmp(viewer_vote,"li")!=0)&&(strcmp(viewer_vote,&q

8、uot;zhang")!=0)&&(strcmp(viewer_vote,"fun")!=0)&&(strcmp(viewer_vote,"giveup")!=0)goto loop;for(j=0;j<4;j+) if(strcmp(viewer_vote,)=0)leaderj.count.viewer+;printf("please enter the person's name which rater vote to:n"); looy:leade

9、r0.count.rater=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;j<4;j+)if(strcmp(rater_vote,)=0)leaderj.count.rater+; if(strcmp(rater_vote,"li")!=0)&&(strcmp(rater_vote,"zhang"

10、;)!=0)&&(strcmp(rater_vote,"fun")!=0)&&(strcmp(rater_vote,"giveup")!=0)printf("enter is error!nnPlease enter the *all*rater vote again!n "); if(strcmp(rater_vote,"li")!=0)&&(strcmp(rater_vote,"zhang")!=0)&&(strcmp(rate

11、r_vote,"fun")!=0)&&(strcmp(rater_vote,"giveup")!=0)goto looy; printf("n");for(t=0;t<4;t+)leadert.sum=leadert.count.viewer+leadert.count.rater;max=0; maxi=0; if(leader0.sum!=leader1.sum)&&(leader0.sum!=leader2.sum)&&(leader1.sum!=leader2.sum)fo

12、r(i=0;i<4;i+) sum=0; sum=leaderi.sum;if(sum>max) 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.rater>leader1.count.rater)&&a

13、mp;(leader0.count.rater>leader2.count.rater)printf("THE HIGHEAST IS %d %sn",leader0.sum,);else if(leader2.count.rater>leader1.count.rater)&&(leader2.count.rater>leader0.count.rater)printf("THE HIGHEAST IS %d %sn",leader2.sum,);else if(lead

14、er1.count.rater>leader2.count.rater)&&(leader1.count.rater>leader0.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.c

15、ount.rater) if(leader0.count.viewer>leader1.count.viewer)&&(leader0.count.viewer>leader2.count.viewer)printf("THE HIGHEAST IS %d %sn",leader0.sum,); else if(leader1.count.viewer>leader2.count.viewer)&&(leader1.count.viewer>leader0.count.viewer)printf

16、("THE HIGHEAST IS %d %sn",leader1.sum,);elseif(leader2.count.viewer>leader1.count.viewer)&&(leader2.count.viewer>leader0.count.viewer)printf("THE HIGHEAST IS %d %sn",leader2.sum,); else if(maxi=0)if(leader0.sum=leader1.sum)|(leader0.sum=leade

17、r2.sum) if(leader0.sum=leader1.sum) if(leader0.count.rater>leader1.count.rater) printf("THE HIGHEAST IS %d%sn",leader0.sum,); else if(leader0.count.rater<leader1.count.rater) printf("THE HIGHEAST IS %d %sn",leader1.sum,); else if(leader0.count.rater=

18、leader1.count.rater) if(leader0.count.viewer>leader1.count.viewer)printf("THE HIGHEAST IS %d %sn",leader0.sum,); else if(leader0.count.viewer<leader1.count.viewer)printf("THE HIGHEAST IS %d %sn",leader1.sum,); else if(leader0.count.viewer=leader1.cou

19、nt.viewer)printf("li's vote is the same as zhang's vote,please vote they again.n"); if(leader0.sum=leader2.sum) if(leader0.count.rater>leader2.count.rater) printf("THE HIGHEAST IS %d %Sn",leader0.sum,); else if(leader0.count.rater<leader2.count.rater) pr

20、intf("THE HIGHEAST IS %d %sn",leader2.sum,); elseif(leader0.count.rater=leader2.count.rater) if(leader0.count.viewer>leader2.count.viewer)printf("THE HIGHEAST IS %d %sn",leader0.sum,); else if(leader0.count.viewer<leader2.count.viewer)printf("TH

21、E HIGHEAST IS %d %sn",leader2.sum,); else if(leader0.count.viewer=leader2.count.viewer)printf("li's vote is the same as fun's vote,please vote they again.n"); elseif(maxi=1)if(leader1.sum=leader2.sum) if(leader1.count.rater>leader2.count.rater) printf("THE

22、HIGHEAST IS %d %sn",leader1.sum,); else if(leader1.count.rater<leader2.count.rater) printf("THE HIGHEAST IS %d %sn",leader2.sum,); else if(leader1.count.rater=leader2.count.rater) if(leader1.count.viewer>leader2.count.viewer)printf("THE HIGHEAST IS %

23、d %sn",leader1.sum,); else if(leader1.count.viewer<leader2.count.viewer)printf("THE HIGHEAST IS %d %sn",leader2.sum,); else if(leader1.count.viewer=leader2.count.viewer)printf("zhang's vote is the same as fun's vote,please vote they again.n"

24、;); for(i=0;i<4;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竞选胜出。 如上图,当三个候选人的总得票都不一样时,由于fun总得票最高,所以fun胜选胜出。二、出租车公司选3名优秀司机的评分程序的设计与实现针对出租车公司评选3名优秀司机设计的评分程序,

25、该程序具有以下功能:(1)司机的驾龄大于5年小于10年的,加1分,驾龄大于十年的,加2分;驾龄小于5年的,不加分;(2)司机载客过程中服务态度好的,加2分,态度一般的,加1分,差劲的,不加分;(3)司机驾驶过程中,没有发生过交通事故的,加2分,驾驶过程中很少发生交通事故的,加1分,驾驶过程中经常发生交通事故的,不加分。1、程序流程图:NY开始定义结构体变量:num,name,dt,ds,da,scorei<N输入自定义常量N等于5,自定义变量i,j i=0,j=0;读入num,name,dt,ds,da的数据输出num,name,dt,ds,da结束YYNN开始读入dt的数据dt>

26、=5且<10定义变量scorescore= score+1dt>10score= score+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)i<Ni=0,j=0;结束输入自定义常量N等于5,自定义变量i,j,dri结构体相似

27、的结构体变量t;j<N-idrii.(score)>drii+1.(score)t=drii.score;drii.score=drii+1.score;drii+1.score=t;输出各司机的总分drii.(score)2、源程序:#include<stdio.h>#include<string.h>#define N 5struct driver char num6; char name8; int dt; char ds8; char da8; int score; driN,t; void main() int i,j;printf("*

28、n"); printf(" - instruction -n"); printf("when enter every driver's number,please enter the number with 3 digits,For example :001 n"); printf("when enter every driver's name, please do it like this:huangn"); printf("when enter every driver's driver

29、's driving time, please do it like this:5n"); printf("when enter every driver's driver's driving server,please entergoodorwideorbadn"); printf("when enter every driver's driver's driving accident,please enternoorsomeoroftenn"); printf("-n"); pri

30、ntf("*n"); for(i=0;i<N;i+)printf("input score of driver %d:n",i+1); printf("NO.:"); scanf("%s",drii.num); printf("Enter the driver's driving name:n"); scanf("%s",); printf("Enter the driver's driving time:n");

31、scanf("%d",&drii.dt); printf("Enter the driver's driving server:n"); scanf("%s",drii.ds); printf("Enter the driver's driving accident:n"); scanf("%s",drii.da); drii.score=0;for(i=0;i<N;i+) if(drii.dt>=5)&&(drii.dt<10) dri

32、i.score+; else if(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.score=drii.score+2; else if(strcmp(drii.da,"some")=0) drii.score+;fo

33、r(j=0;j<N;j+) for(i=0;i<N-j;i+) if(drii.score<drii+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;i<N;i+) printf("%3s %8s %2d %1

34、5s %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, %

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论