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

下载本文档

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

文档简介

摘要本文程序针对3个候选人投票问题和出租车公司选取3名优秀驾驶员的问题编写了两道程序,通过运用到的结构体的设定、if语句、数组的排序、goto语句构成的循环,关系运算符和关系表达式、逻辑运算及其优先次序等多个C程序设计知识点,最终设定出逻辑思维紧密的候选人投票程序与评分多样化的出租车公司选优秀司机的评分程序。每个程序在体现出操作者需求的同时,也总有它本身一下不足的地方,本文中的程序候选人投票程序有较大的局限性,本文中的投票程序只针对只有3名候选人的情况,如果候选人多的话就不再用;出租车公司选优秀司机的评分程序具有较低的局限性,其中参与评选的司机人数可以随意的设定,只需改动该程序中的自定义常量N,程序用还附有该程序的输入说明,让操作该程序的人简单明了地完成操作任务,但不足的地方是加入操作员输入错误数据时没有错误的提示,也不会返回更改,要求操作员有足够的细心和耐心。关键词:结构体;数组;循环目录TOC\o"1-5"\h\z\o"CurrentDocument"一、选举候选人的投票的程序设计与实现41、程序流程图42、源程序63、结果分析13二、出租车公司选3名优秀司机的评分程序的设计与实现141、程序流程图142、源程序183、结果分析21\o"CurrentDocument"三、心得体会22四、参考文献23一、选举候选人的投票的程序设计与实现对候选人投票问题的设定一个程序,该程序具有以下功能:(1)设有“现场群众投票”7张、“嘉宾领导投票”3张;(2)设有“弃权”选项;(3)如果在输入候选人名字的错误的时候,系统会给出相应的指示,并返回重新开始选票;(4)在结果中打印各候选人的现场群众投票数和嘉宾领导投票数,以及各候选人得到选票的总数;(5)在结果中打印得票数最高的票数以及相对应候选人的名字;(6)设置程序为如果候选人总得票数相等,那相比较嘉宾领导的投票数,如果嘉宾领导的投票数相等,那就比较现场群众的投票数,如果还相等,那就提示这两个候选人重新投票;1、程序总流程图:

2、源程序:#include<stdio.h>#include<string.h>structcount(intviewer;intrater;};structperson(charname[20];structcountcount;intsum;}leader[4]=("li",0,0,0,〃zhang〃,0,0,0,〃fun〃,0,0,0,〃giveup〃,0,0,0};voidmain()(inti,j,t,max,maxi,sum;charviewer_vote[20];charrater_vote[20];printf("pleaseentertheperson'snamewhichviewervoteto:\n");(loop:leader[0].count.viewer=0,leader[1].count.viewer=0,leader[2].count.viewer=0,leader[3].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("enteriserror!\n\nPleaseenterthe*all*viewervoteagain!\n");if((strcmp(viewer_vote,〃li〃)!=0)&&(strcmp(viewer_vote,〃zhang")!=0)&&(strcmp(viewer_vote,〃fun〃)!=0)&&(strcmp(viewer_vote,"giveup〃)!=0))gotoloop;for(j=0;j<4;j++)if(strcmp(viewer_vote,leader[j].name)==0)leader[j].count.viewer++;}}printf("pleaseentertheperson'snamewhichratervoteto:\n");(looy:leader[0].count.rater=0,leader[1].count.rater=0,leader[2].count.rater=0,leader[3].count.rater=0;for(i=1;i<=3;i++)(scanf("%s",rater_vote);for(j=0;j<4;j++)if(strcmp(rater_vote,leader[j].name)==0)leader[j].count.rater++;if((strcmp(rater_vote,〃li〃)!=0)&&(strcmp(rater_vote,〃zhang")!=0)&&(strcmp(rater_vote,〃fun〃)!=0)&&(strcmp(rater_vote,〃giveup")!=0))printf("enteriserror!\n\nPleaseenterthe*all*ratervoteagain!\n");if((strcmp(rater_vote,〃li〃)!=0)&&(strcmp(rater_vote,〃zhang")!=0)&&(strcmp(rater_vote,〃fun〃)!=0)&&(strcmp(rater_vote,〃giveup")!=0))gotolooy;}printf("\n");for(t=0;t<4;t++)leader[t].sum=leader[t].count.viewer+leader[t].count.rater;(max=0;maxi=0;if((leader[0].sum!=leader[1].sum)&&(leader[0].sum!=leader[2].sum)&&(leader[1].sum!=leader[2].sum))((for(i=0;i<4;i++)(sum=0;sum=leader[i].sum;if(sum>max)(max=sum;maxi=i;}}}printf("thehighestis%d%s\n”,leader[maxi].sum,leader[maxi].name);}elseif((leader[0].sum==leader[1].sum)&&(leader[0].sum==leader[2].sum)&&(leader[1].sum==leader[2].sum))(if((leader[0].count.rater>leader[1].count.rater)&&(leader[0].count.rater>leader[2].count.rater))printf("THEHIGHEASTIS%d%s\n〃,leader[0].sum,leader[0].name);elseif((leader[2].count.rater>leader[1].count.rater)&&(leader[2].count.rater>leader[0].count.rater))printf("THEHIGHEASTIS%d%s\n”,leader[2].sum,leader[2].name);elseif((leader[1].count.rater>leader[2].count.rater)&&(leader[1].count.rater>leader[0].count.rater))printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);elseif((leader[0].count.rater==leader[1].count.rater)&&(leader[0].count.rater==leader[2].count.rater)&&(leader[1].count.rater==leader[2].count.rater))(if((leader[0].count.viewer>leader[1].count.viewer)&&(leader[0].count.viewer>leader[2].count.viewer))printf("THEHIGHEASTIS%d%s\n〃,leader[0].sum,leader[0].name);elseif((leader[1].count.viewer>leader[2].count.viewer)&&(leader[1].count.viewer>leader[0].count.viewer))printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);elseif((leader[2].count.viewer>leader[1].count.viewer)&&(leader[2].count.viewer>leader[0].count.viewer))printf("THEHIGHEASTIS%d%s\n”,leader[2].sum,leader[2].name);}}elseif(maxi==0)(if((leader[0].sum==leader[1].sum)||(leader[0].sum==leader[2].sum))(if(leader[0].sum==leader[1].sum)(if(leader[0].count.rater>leader[1].count.rater)printf("THEHIGHEASTIS%d%s\n〃,leader[0].sum,leader[0].name);elseif(leader[0].count.rater<leader[1].count.rater)printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);elseif(leader[0].count.rater==leader[1].count.rater)(if(leader[0].count.viewer>leader[1].count.viewer)printf("THEHIGHEASTIS%d%s\n〃,leader[0].sum,leader[0].name);elseif(leader[0].count.viewer<leader[1].count.viewer)printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);elseif(leader[0].count.viewer==leader[1].count.viewer)printf("li'svoteisthesameaszhang'svote,pleasevotetheyagain.\n〃);}}if(leader[0].sum==leader[2].sum)(if(leader[0].count.rater>leader[2].count.rater)printf("THEHIGHEASTIS%d%S\n〃,leader[0].sum,leader[0].name);elseif(leader[0].count.rater<leader[2].count.rater)printf("THEHIGHEASTIS%d%s\n”,leader[2].sum,leader[2].name);elseif(leader[0].count.rater==leader[2].count.rater)(if(leader[0].count.viewer>leader[2].count.viewer)printf("THEHIGHEASTIS%d%s\n〃,leader[0].sum,leader[0].name);elseif(leader[0].count.viewer<leader[2].count.viewer)printf("THEHIGHEASTIS%d%s\n”,leader[2].sum,leader[2].name);elseif(leader[0].count.viewer==leader[2].count.viewer)printf("li'svoteisthesameasfun'svote,pleasevotetheyagain.\n〃);}}}elseif(maxi==1)(if(leader[1].sum==leader[2].sum)(if(leader[1].count.rater>leader[2].count.rater)printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);elseif(leader[1].count.rater<leader[2].count.rater)printf("THEHIGHEASTIS%d%s\n”,leader[2].sum,leader[2].name);elseif(leader[1].count.rater==leader[2].count.rater)(if(leader[1].count.viewer>leader[2].count.viewer)printf("THEHIGHEASTIS%d%s\n”,leader[1].sum,leader[1].name);

elseif(leader[1].count.viewer<leader[2].count.viewer)printf("THEHIGHEASTIS%d%s\n〃,leader[2].sum,leader[2].name);elseif(leader[1].count.viewer==leader[2].count.viewer)printf(〃zhang'svoteisthesameasfun'svote,pleasevotetheyagain.\n〃);}}}}for(i=0;i<4;i++)printf("%5s:viewervoteis%d;ratervoteis%d;sumis%d\n,leader[i].name,leader[i].count.viewer,leader[i].count.rater,leader[i].sum);}}}3、结果分析:ileasehangbhangzhangzhanglililileaseileasehangbhangzhangzhanglililileaselifungiuetipentertheenterthepersonJsnamewhichuieweruoteto:personJsnamewhichrateruoteto:hehighestis4lirateruoteis1;rateruoteis;rateruoteis0;rateruoteis141S4ssisiirateruoteis1;rateruoteis;rateruoteis0;rateruoteis141S4ssisiiim如上图,当候选人zhang和li的总得票一样时,由于li的嘉宾领导得票高于zhang,所以li竞选胜出。:\TC\TC.EXEpleaseenterthepersonasnamewhichuieweruoteto:zhangzhanglifunfunfunpleaseenterthepersonJsnamewhichrateruoteto:giueupfunzhangthehighestis4funli:uieweruoteis2;rateruoteis0;sumis2zhang:uieweruoteis2;rateruoteis1;sumis3fun:uieweruoteis3;rateruoteis1;sumis4giueup:uieweruoteisBjrateruoteis1:sumisl如上图,当三个候选人的总得票都不一样时,由于fun总得票最高,所以fun胜选胜出。二、出租车公司选3名优秀司机的评分程序的设计与实现针对出租车公司评选3名优秀司机设计的评分程序,该程序具有以下功能:(1)司机的驾龄大于5年小于10年的,加1分,驾龄大于十年的,加2分;驾龄小于5年的,不加分;(2)司机载客过程中服务态度好的,加2分,态度一般的,加1分,差劲的,不加分;(3)司机驾驶过程中,没有发生过交通事故的,加2分,驾驶过程中很少发生交通事故的,加1分,驾驶过程中经常发生交通事故的,不加分。1、程序流程图:

结束2、源程序:#include<stdio.h>#include<string.h>#defineN5structdriver(charnum[6];charname[8];intdt;chards[8];charda[8];intscore;}dri[N],t;voidmain()(inti,j;printf("*********************************************************************************\n");printf("instruction\n");printf("whenentereverydriver'snumber,pleaseenterthenumberwith3digits,Forexample:001\n");printf("whenentereverydriver'sname,pleasedoitlikethis:huang\n");printf("whenentereverydriver'sdriver'sdrivingtime,pleasedoitlikethis:5\n");printf("whenentereverydriver'sdriver'sdrivingserver,pleaseentergoodorwideorbad\n");printf("whenentereverydriver'sdriver'sdrivingaccident,pleaseenternoorsomeoroften\n");printf("\n");printf("********************************************************************************\n");for(i=0;i<N;i++)(printf("inputscoreofdriver%d:\n",i+1);printf(〃NO.:〃);scanf("%s",dri[i].num);printf("Enterthedriver'sdrivingname:\n");scanf("%s",dri[i].name);printf("Enterthedriver'sdrivingtime:\n");scanf(〃%d〃,&dri[i].dt);printf("Enterthedriver'sdrivingserver:\n");scanf("%s",dri[i].ds);printf("Enterthedriver'sdrivingaccident:\n");scanf("%s",dri[i].da);dri[i].score=0;}for(i=0;i<N;i++)(if((dri[i].dt>=5)&&(dri[i].dt<10))dri[i].score++;elseif(dri[i].dt>=10)dri[i].score=dri[i].score+2;if(strcmp(dri[i].ds,〃good〃)==0)dri[i].score=dri[i].score+2;elseif(strcmp(dri[i].ds,〃wide〃)==0)dri[i].score++;if(strcmp(dri[i].da,〃no〃)==0)dri[i].score=dri[i].score+2;elseif(strcmp(dri[i].da,〃some〃)==0)dri[i].score++;}for(j=0;j<N;j++)for(i=0;i<N-j;i++)if(dri[i].score<dri[i+1].score)(t=dri[i];dri[i]=dri[i+1];dri[i+1]=t;}printf(〃******\n");printf("NO.namedrivingtime(year)drivingserverdrivingaccidentscore\n");printf("******\n");for(i=0;i<N;i++)printf("%3s%8s%2d%15s%15s%3d\n”,dri[i].num,dri[i].name,dri[i].dt,dri[i].ds,dri[i].da,dri[i].score);printf(〃::::::::::::::::::::::::::::::::::::::::::::::::\n〃);printf("thefirstis:driver%2s,%8s\n”,dri[0].num,dri[0].name);printf("::::::::::::::::::::::::::::::::::::::::::::::::\n");printf("thesecondis:driver%2s,%8s\n”,dri[1].num,dri[1].name);printf("::::::::::::::::::::::::::::::::::::::::::::::::\n");printf("thethirdis:driver%2s,%8s\n”,dri[2].num,dri[2].name);printf("::::::::::::::::::::::::::::::::::::::::::::::::\n");}3、结果分析:

-L:XgD:-L:Xwhenenterle:001whenenterwhenenterkfhenenterwhenenterle:001whenenterwhenenterkfhenenterwhenenterften'eueryeueryeueryeueryeuerydriuerJsdriuerJsdriuer1sdriuerJsdriuerJsnumber,pleaseenterthenumberwith3digits,Forexampnamej.pleasedoitlikethis:huangdriuepfsdriuingtime,pleasedoitlikethis:5driuei'Jsdriuingseruer,pleaseenter'good'or'wide'or'bdriuei'Jsdriuingaccident,pleaseenter'no'or'some'or'oinputscoreofdriuer1:NO.:001EnterthedriuerJsdriuingname:huangEnterthedriuerJsdriuingtime:如上图,在程序运行后,会出现类似于说明书的提示框,操作程序的人员可根据要求输入各个司机的参选信息。wD:\PROGRA1\Tencent\QQ\Users\359906l\FileRecv\TurboC2\TC.EXEwD:\PROGRA1\Tencent\QQ\Users\359906l\FileRecv\TurboC2\TC.EXE口XNO.:Q05EnterthezhangEnterthe09EnterthebadEntertheoftendriuerJsdi'iuerJsdi'iuerJsdi'iuerJsdriuingdriuingdriuingdriuingname:tine:seruer:accident:namedriuingtime<year〉driuingseruerdriuingaccidentscore31245_M-_M-_M-_M-_M_panhuangweiIllozhang056092598oodaaoo-lbbnononosomeoftennamedriuingtime<year〉

温馨提示

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

评论

0/150

提交评论