




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 C程序課程設(shè)計(jì)摘要本文程序針對3個(gè)候選人投票問題和出租車公司選取3名優(yōu)秀駕駛員的問題編寫了兩道程序,通過運(yùn)用到的結(jié)構(gòu)體的設(shè)定、if語句、數(shù)組的排序、goto語句構(gòu)成的循環(huán),關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算及其優(yōu)先次序等多個(gè)C程序設(shè)計(jì)知識(shí)點(diǎn),最終設(shè)定出邏輯思維緊密的候選人投票程序與評(píng)分多樣化的出租車公司選優(yōu)秀司機(jī)的評(píng)分程序。每個(gè)程序在體現(xiàn)出操作者需求的同時(shí),也總有它本身一下不足的地方,本文中的程序候選人投票程序有較大的局限性,本文中的投票程序只針對只有3名候選人的情況,如果候選人多的話就不再用;出租車公司選優(yōu)秀司機(jī)的評(píng)分程序具有較低的局限性,其中參與評(píng)選的司機(jī)人數(shù)可以隨意的設(shè)定,只需改動(dòng)該程序
2、中的自定義常量N,程序用還附有該程序的輸入說明,讓操作該程序的人簡單明了地完成操作任務(wù),但不足的地方是加入操作員輸入錯(cuò)誤數(shù)據(jù)時(shí)沒有錯(cuò)誤的提示,也不會(huì)返回更改,要求操作員有足夠的細(xì)心和耐心。 關(guān)鍵詞:結(jié)構(gòu)體;數(shù)組;循環(huán)目錄一、選舉候選人的投票的程序設(shè)計(jì)與實(shí)現(xiàn)41、程序流程圖42、源程序63、結(jié)果分析13二、出租車公司選3名優(yōu)秀司機(jī)的評(píng)分程序的設(shè)計(jì)與實(shí)現(xiàn)141、程序流程圖142、源程序183、結(jié)果分析21三、心得體會(huì)22四、參考文獻(xiàn)23一、選舉候選人的投票的程序設(shè)計(jì)與實(shí)現(xiàn)對候選人投票問題的設(shè)定一個(gè)程序,該程序具有以下功能: (1)設(shè)有“現(xiàn)場群眾投票”7張、“嘉賓領(lǐng)導(dǎo)投票”3張;(2)設(shè)有“棄權(quán)”選
3、項(xiàng);(3)如果在輸入候選人名字的錯(cuò)誤的時(shí)候,系統(tǒng)會(huì)給出相應(yīng)的指示,并返回重新開始選票;(4)在結(jié)果中打印各候選人的現(xiàn)場群眾投票數(shù)和嘉賓領(lǐng)導(dǎo)投票數(shù),以及各候選人得到選票的總數(shù);(5)在結(jié)果中打印得票數(shù)最高的票數(shù)以及相對應(yīng)候選人的名字;(6)設(shè)置程序?yàn)槿绻蜻x人總得票數(shù)相等,那相比較嘉賓領(lǐng)導(dǎo)的投票數(shù),如果嘉賓領(lǐng)導(dǎo)的投票數(shù)相等,那就比較現(xiàn)場群眾的投票數(shù),如果還相等,那就提示這兩個(gè)候選人重新投票;1、程序總流程圖:Y開始定義一個(gè)結(jié)構(gòu)體person,包含數(shù)組name、count、sum,并命名為leader定義一個(gè)結(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;定義一個(gè)結(jié)構(gòu)體count,包含數(shù)組viewer、raterNi7分別輸入三個(gè)候選人名字(name)、群眾得票(viewer)、領(lǐng)導(dǎo)得票(rater)總得票(sum)候選人的總得票=群眾得票+嘉賓領(lǐng)導(dǎo)投票(leaderi.sum=leaderi.count.viewer+leaderi.count.rater)根據(jù)候選人的總得票進(jìn)行排序選出得票最高的候選人Leadermaxi輸出得票最高的候選人;所有候選人的得票情況結(jié)束YNj3輸入各嘉賓領(lǐng)導(dǎo)的投票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、結(jié)果分析:如上圖,當(dāng)候選人zhang和li的總得票一樣時(shí),由于li的嘉賓領(lǐng)導(dǎo)得票高于zhang,所以li競選勝出。 如上圖,當(dāng)三
18、個(gè)候選人的總得票都不一樣時(shí),由于fun總得票最高,所以fun勝選勝出。二、出租車公司選3名優(yōu)秀司機(jī)的評(píng)分程序的設(shè)計(jì)與實(shí)現(xiàn)針對出租車公司評(píng)選3名優(yōu)秀司機(jī)設(shè)計(jì)的評(píng)分程序,該程序具有以下功能:(1)司機(jī)的駕齡大于5年小于10年的,加1分,駕齡大于十年的,加2分;駕齡小于5年的,不加分;(2)司機(jī)載客過程中服務(wù)態(tài)度好的,加2分,態(tài)度一般的,加1分,差勁的,不加分;(3)司機(jī)駕駛過程中,沒有發(fā)生過交通事故的,加2分,駕駛過程中很少發(fā)生交通事故的,加1分,駕駛過程中經(jīng)常發(fā)生交通事故的,不加分。1、程序流程圖:NY開始定義結(jié)構(gòu)體變量:num,name,dt,ds,da,scorei=5且10score= s
19、core+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開始讀入各個(gè)司機(jī)的總分drii.(score)iNi=0,j=0;結(jié)束輸入自定義常量N等于5,自定義變量i,j,dri結(jié)構(gòu)體相似的結(jié)構(gòu)體變量t;jdrii+1.(score)t=drii.score;drii.score=drii+
20、1.score;drii+1.score=t;輸出各司機(jī)的總分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、結(jié)果分析:如上圖,在程序運(yùn)行后,會(huì)出現(xiàn)類似于說明書的提示框,操作程序的人員可根據(jù)要求輸入各個(gè)司機(jī)的參選信息。 如上圖,在程序運(yùn)行后,輸入各司機(jī)的相關(guān)數(shù)據(jù)后,等到的結(jié)果里司機(jī)pan的得分最高,所以第一名是pan,隨后的是司機(jī)huang和司機(jī)wei。三、心得體會(huì)一直以來程序設(shè)計(jì)給我的感覺就是一種只有天賦很高的人才適合學(xué)習(xí)的科目,帶著信心不足的心理我學(xué)習(xí)了C程序一個(gè)學(xué)期,可總有一種懵懵懂懂的感覺,說自己對這個(gè)知識(shí)點(diǎn)理解了,可要是要我實(shí)際運(yùn)用去的時(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力外包招聘合同范本
- 2025年德州年貨運(yùn)從業(yè)資格證考試題庫
- 勞動(dòng)合同范本 股權(quán)
- 企業(yè)借貸合同質(zhì)押合同范本
- 代理分紅合同范本
- 買門頭房合同范本
- 動(dòng)遷協(xié)議合同范本
- 東莞擺攤餐飲轉(zhuǎn)讓合同范本
- 任意拆解合同范本
- 制作車輛抵押合同范本
- XX攔河堰工程施工組織設(shè)計(jì)
- GB/T 9787-1988熱軋等邊角鋼尺寸、外形、重量及允許偏差
- GB/T 7031-2005機(jī)械振動(dòng)道路路面譜測量數(shù)據(jù)報(bào)告
- 馬工程教材《公共財(cái)政概論》PPT-第十二章 財(cái)政體制
- GB/T 23457-2009預(yù)鋪/濕鋪防水卷材
- GB/T 17614.1-2015工業(yè)過程控制系統(tǒng)用變送器第1部分:性能評(píng)定方法
- 財(cái)務(wù)工作督導(dǎo)檢查記錄表
- 輿情大數(shù)據(jù)監(jiān)測平臺(tái)建設(shè)方案
- 先天性腎上腺皮質(zhì)增生癥(CAH)課件
- 水利工程設(shè)計(jì)變更表格
- 畢業(yè)設(shè)計(jì)(論文)-巴哈賽車懸架系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論