C語言課程設(shè)計優(yōu)秀版_第1頁
C語言課程設(shè)計優(yōu)秀版_第2頁
C語言課程設(shè)計優(yōu)秀版_第3頁
C語言課程設(shè)計優(yōu)秀版_第4頁
C語言課程設(shè)計優(yōu)秀版_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 C程序課程設(shè)計摘要本文程序針對3個候選人投票問題和出租車公司選取3名優(yōu)秀駕駛員的問題編寫了兩道程序,通過運用到的結(jié)構(gòu)體的設(shè)定、if語句、數(shù)組的排序、goto語句構(gòu)成的循環(huán),關(guān)系運算符和關(guān)系表達式、邏輯運算及其優(yōu)先次序等多個C程序設(shè)計知識點,最終設(shè)定出邏輯思維緊密的候選人投票程序與評分多樣化的出租車公司選優(yōu)秀司機的評分程序。每個程序在體現(xiàn)出操作者需求的同時,也總有它本身一下不足的地方,本文中的程序候選人投票程序有較大的局限性,本文中的投票程序只針對只有3名候選人的情況,如果候選人多的話就不再用;出租車公司選優(yōu)秀司機的評分程序具有較低的局限性,其中參與評選的司機人數(shù)可以隨意的設(shè)定,只需改動該程序

2、中的自定義常量N,程序用還附有該程序的輸入說明,讓操作該程序的人簡單明了地完成操作任務(wù),但不足的地方是加入操作員輸入錯誤數(shù)據(jù)時沒有錯誤的提示,也不會返回更改,要求操作員有足夠的細心和耐心。 關(guān)鍵詞:結(jié)構(gòu)體;數(shù)組;循環(huán)目錄一、選舉候選人的投票的程序設(shè)計與實現(xiàn)41、程序流程圖42、源程序63、結(jié)果分析13二、出租車公司選3名優(yōu)秀司機的評分程序的設(shè)計與實現(xiàn)141、程序流程圖142、源程序183、結(jié)果分析21三、心得體會22四、參考文獻23一、選舉候選人的投票的程序設(shè)計與實現(xiàn)對候選人投票問題的設(shè)定一個程序,該程序具有以下功能: (1)設(shè)有“現(xiàn)場群眾投票”7張、“嘉賓領(lǐng)導(dǎo)投票”3張;(2)設(shè)有“棄權(quán)”選

3、項;(3)如果在輸入候選人名字的錯誤的時候,系統(tǒng)會給出相應(yīng)的指示,并返回重新開始選票;(4)在結(jié)果中打印各候選人的現(xiàn)場群眾投票數(shù)和嘉賓領(lǐng)導(dǎo)投票數(shù),以及各候選人得到選票的總數(shù);(5)在結(jié)果中打印得票數(shù)最高的票數(shù)以及相對應(yīng)候選人的名字;(6)設(shè)置程序為如果候選人總得票數(shù)相等,那相比較嘉賓領(lǐng)導(dǎo)的投票數(shù),如果嘉賓領(lǐng)導(dǎo)的投票數(shù)相等,那就比較現(xiàn)場群眾的投票數(shù),如果還相等,那就提示這兩個候選人重新投票;1、程序總流程圖:Y開始定義一個結(jié)構(gòu)體person,包含數(shù)組name、count、sum,并命名為leader定義一個結(jié)構(gòu)體count,包含數(shù)組viewer、rater定義整型變量i=0,j=0,z=0,ma

4、x=0,maxi=0,sum=0;定義字符數(shù)組viewer_vote,rater_vote;定義一個結(jié)構(gòu)體count,包含數(shù)組viewer、raterNi<7分別輸入三個候選人名字(name)、群眾得票(viewer)、領(lǐng)導(dǎo)得票(rater)總得票(sum)候選人的總得票=群眾得票+嘉賓領(lǐng)導(dǎo)投票(leaderi.sum=leaderi.count.viewer+leaderi.count.rater)根據(jù)候選人的總得票進行排序選出得票最高的候選人Leadermaxi輸出得票最高的候選人;所有候選人的得票情況結(jié)束YNj<3輸入各嘉賓領(lǐng)導(dǎo)的投票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、結(jié)果分析:如上圖,當(dāng)候選人zhang和li的總得票一樣時,由于li的嘉賓領(lǐng)導(dǎo)得票高于zhang,所以li競選勝出。 如上圖,當(dāng)三個候選人的總得票都不一樣時,由于fun總得票最高,所以fun勝選勝出。二、出租車公司選3名優(yōu)秀司機的評分程序的設(shè)計與實現(xiàn)針對出租車公司評選3名優(yōu)秀司機設(shè)計的評分程序,

25、該程序具有以下功能:(1)司機的駕齡大于5年小于10年的,加1分,駕齡大于十年的,加2分;駕齡小于5年的,不加分;(2)司機載客過程中服務(wù)態(tài)度好的,加2分,態(tài)度一般的,加1分,差勁的,不加分;(3)司機駕駛過程中,沒有發(fā)生過交通事故的,加2分,駕駛過程中很少發(fā)生交通事故的,加1分,駕駛過程中經(jīng)常發(fā)生交通事故的,不加分。1、程序流程圖:NY開始定義結(jié)構(gòu)體變量:num,name,dt,ds,da,scorei<N輸入自定義常量N等于5,自定義變量i,j i=0,j=0;讀入num,name,dt,ds,da的數(shù)據(jù)輸出num,name,dt,ds,da結(jié)束YYNN開始讀入dt的數(shù)據(jù)dt>

26、=5且<10定義變量scorescore= score+1dt>10score= score+2score= 0輸出dt結(jié)束YYNN開始讀入da的數(shù)據(jù)da等于no定義變量scorescore= score+2da等于somescore= score+1score= 0輸出da結(jié)束YYNN開始讀入ds的數(shù)據(jù)ds等于good定義變量scorescore= score+2ds等于widescore= score+1score= 0輸出ds結(jié)束YYYNNY開始讀入各個司機的總分drii.(score)i<Ni=0,j=0;結(jié)束輸入自定義常量N等于5,自定義變量i,j,dri結(jié)構(gòu)體相似

27、的結(jié)構(gòu)體變量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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論