C語(yǔ)言程序的設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第1頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第2頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第3頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第4頁(yè)
C語(yǔ)言程序的設(shè)計(jì)報(bào)告課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、分類號(hào)編號(hào)華北水利水電大學(xué)North China Institute of Water Conservancy and HydroelectricPower課程設(shè)計(jì)課程名高級(jí)語(yǔ)言程序設(shè)計(jì)題目機(jī)房機(jī)位預(yù)定系統(tǒng)院系信息工程學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)姓 名 學(xué) 號(hào) 指導(dǎo)教師 2022年1月3日一、根底題【題目3】任意輸入一個(gè)偶數(shù),驗(yàn)證其總能表示為兩個(gè)素?cái)?shù)之和.程序代碼:#includeint main()(int n;while(scanf(%d,&n),n)(int i,j;for(j=2;j=n/2;j+)(for(i=2;ij-1)(for(i=2;in-j-1)&n-j!=1)printf(%

2、d=%d+%dn,n,j,n-j);return 0;)某個(gè)公司采用公用 傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過(guò)程中是加密的,加密規(guī)那么如下:每位數(shù)字都加上 5,然后用和除以10的余數(shù)代替該數(shù)字,再將 第一位和第四位交換,第二位和第三位交換.程序代碼:#include using namespace std;void main()char num4,i;cinnum;for(i=0;i4;i+)numi-48=(numi-48-48+5)%10+48;i=num0;num0=num3;num3=i;i=num1;num1=num2;num2=i;coutnum;)運(yùn)行結(jié)果:T TDebug Cp

3、pl.eHe2022 0G57Ppess any key to continue【題目6】編寫一個(gè)將某個(gè)范圍在032767之間的整數(shù)轉(zhuǎn)換為R進(jìn)制(R=Z 8, 16)的通 用程序.程序代碼:#include #include void trans(int n,int m)if(n)trans(n/m,m);if(n%m10) printf(%c,n%m+0);else printf(%c,n%m-10+A);void main()(int n,m;printf(輸入十進(jìn)制數(shù)N和轉(zhuǎn)化的進(jìn)制數(shù)M :);scanf(%d%d,&n,&m);printf(十進(jìn)制數(shù)%d轉(zhuǎn)化成%d進(jìn)制后的結(jié)果為:,n,m

4、);trans(n,m);printf(n);運(yùn)行結(jié)果:輸入十進(jìn)制數(shù)崎口轉(zhuǎn)化的進(jìn)制數(shù)n:5,進(jìn)制數(shù)沏轉(zhuǎn)化成8進(jìn)制后的結(jié)果為:3 7Fi*ess an 9 key to cdnt Inue二、綜合應(yīng)用題【題目6】機(jī)房機(jī)位預(yù)定系統(tǒng)20臺(tái)機(jī)器,編號(hào)1到20,從早八點(diǎn)到晚八點(diǎn).兩小時(shí)一個(gè)時(shí)間段,每次可預(yù)定 一個(gè)時(shí)間段.功能要求:(1)系統(tǒng)以菜單方式工作(2)查詢,根據(jù)輸入時(shí)間,輸出機(jī)位信息.(3)機(jī)位預(yù)定,根據(jù)輸入的時(shí)間查詢是否有空機(jī)位,假設(shè)有那么預(yù)約,假設(shè)無(wú)那么提供最近的時(shí)間段,另:假設(shè)用戶在非空時(shí)間上機(jī),那么將用戶信息列入等待列表.(4)退出預(yù)定,根據(jù)輸入的時(shí)間,機(jī)器號(hào)撤銷該事件的預(yù)定!(5)查詢

5、是否有等待信息,假設(shè)有那么提供最優(yōu)解決方案(等待時(shí)間盡量短),假設(shè)無(wú) 那么顯示提示信息.1 .題目分析:根據(jù)題目要求在程序中需實(shí)現(xiàn)查詢,預(yù)定,排隊(duì)等功能的 操作,所以需要建立相應(yīng)的模塊來(lái)實(shí)現(xiàn);另外還需提供鍵盤式選擇菜 單實(shí)現(xiàn)功能,在運(yùn)行時(shí)到達(dá)所要目的.因此,整個(gè)系統(tǒng)總體分為3個(gè)模 塊,分別是:查詢模塊、預(yù)定模塊、取消模塊.首先,主函數(shù)設(shè)計(jì)的一般比擬簡(jiǎn)潔,只能提供輸入、處理和輸出局部的函數(shù)調(diào)用. 其中各功能模塊用菜單方式選擇.本模塊通過(guò)do-while語(yǔ)句和switch語(yǔ)句實(shí)現(xiàn) 主菜單的顯示和對(duì)功能的選擇.查詢模塊:本模塊的功能是通過(guò)調(diào)用函數(shù)指向隊(duì)列的指針查詢用戶輸入的時(shí)間段 的機(jī)位狀態(tài),如果有

6、空機(jī)位就在屏幕上顯示出來(lái)當(dāng)前時(shí)刻的空機(jī)位的總數(shù)和所以 的空機(jī)位的序號(hào),如果沒有空機(jī)位那么在屏幕上顯示有零臺(tái)空機(jī)位.預(yù)定模塊:在該模塊的設(shè)計(jì)中,要讓預(yù)定者按預(yù)定的順序存在結(jié)構(gòu)體中, 當(dāng)預(yù)定 者的總數(shù)小于最大值時(shí),就要用到通過(guò)指針的移動(dòng)來(lái)把預(yù)定者的信息按順序存儲(chǔ) 起來(lái),用兩個(gè)不同的指針?lè)謩e指向鏈表的開始,鏈表的結(jié)尾處.取消模塊:要取消預(yù)定,有兩種情況.第一是從有機(jī)位的人要取消預(yù)定,在該種 情況下,排隊(duì)的第一人的位置就插入到該取消者的位置.而指向等待隊(duì)列首地址 的指針就指向原來(lái)排隊(duì)的第二人.第二種情況就是取消預(yù)定的人本來(lái)就在等待隊(duì) 列中,只需要直接刪除該結(jié)點(diǎn)即可.2 .程序代碼:#include #

7、include#include#include #define N 20#define T (time-8)/2int sum6=0;int computer620=1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,11111,0,0,0,0,0,0,0,011,1,111,1111111111111,111,1,111,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1;/

8、* 該數(shù)組表示彳段設(shè)某天某人查詢時(shí)機(jī)房各個(gè)時(shí)間段機(jī)位數(shù)情況*/void Menu();void Situation();void Book();void Cancel();void SearchWaiting();void detail(int time);void prione(int i);struct waitlist/* 等待列表 */char number3;char telephonenumber11;waitN;void printone(int i);void main()Menu(); /*當(dāng)前狀態(tài)函數(shù)*/void Menu()/* 主界面 */int n,w;do*機(jī)房機(jī)位

9、預(yù)定系統(tǒng)*n);*n;putsttt 1.查詢某時(shí)間段機(jī)位狀態(tài);/*查詢某時(shí)間段機(jī)位狀態(tài)*/putsttt 2.預(yù)定空機(jī)位;/*預(yù)定空機(jī)位*/putsttt 3.取消預(yù)訂/*取消預(yù)訂*/putsttt 4.查詢等待信息/*查詢等待信息*/putsttt 5.退出;/* 退出*/puts(tt*n);printf(選擇菜單號(hào)(1-5):);scanf(%d,&n);if(n5)w=1;getchar();else w=0;while(w=1);switch(n)case 1:Situation();break;case 2:Book();break;case 3:Cancel();break;c

10、ase 4:SearchWaiting();break;case 5:exit(0);break;getch();/*時(shí)間查詢*/void Situation()int time;printf(輸在(8-20)范圍內(nèi)的時(shí)間:);scanf(%d,&time);if(time20)printf(t時(shí)間輸入錯(cuò)誤!n);printf(輸入在(8-20)范圍內(nèi)的時(shí)間:);scanf(%d,&time);detail(time);/* 函數(shù)調(diào)用 */getchar();Menu();/*預(yù)定函數(shù)*/void Book()int time,i=0,x,y;FILE *fp;char c;printf(在(

11、8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:);scanf(%d,&time);if(time20)printf(t時(shí)間輸入錯(cuò)誤!n);printf(t在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:);scanf(%d,&time);detail(time);/* 函數(shù)調(diào)用 */if(sumT0)if(fp=fopen(waitlist.txt,a)=NULL)printf(n無(wú)法翻開文件!n);exit(0);!:n);printf(nt請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的 號(hào) scanf(%s %s,waiti.number,waiti.telephonenumber);for(i=0;i1

12、;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp);/*向文本文檔添加一個(gè)結(jié)構(gòu)體單元*/printf(t再次輸入你想要預(yù)定的時(shí)間!n);scanf(%d,&x); /*sumT-; /預(yù)定后該時(shí)間段空機(jī)位數(shù)減1*/*computerTx=1; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/printf(t 預(yù)訂成功!n);getchar();Menu();elseprintf(這是在這個(gè)時(shí)間段內(nèi)未預(yù)定的電腦!n);for(i=T+1;i0)printf(t 最近的空閑時(shí)間是 d,%dn,2*i+8,2*i+10);break;printf(t

13、你想要預(yù)定嗎?:y/n?);idscanf(%s,&c);getchar();if(c=Y|c=y)(if(fp=fopen(waitlist.txt,r)=NULL)(printf(n無(wú)法翻開文件!n);exit(0);else(printf(waitlist number telephonenumbern);for(i=0;!feof(fp);i+)(fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i10;i+) prione(i);printf(nt請(qǐng)輸入您想預(yù)定的機(jī)號(hào)并留下您的聯(lián)系方式!:

14、n);11if(fp=fopen(waitlist.txt,a)=NULL) (printf(n無(wú)法翻開文件!n);exit(0);scanf(%s %s,waiti.number,waiti.telephonenumber);for(i=0;i1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp);/*假設(shè)等待,就用文件的方式列出當(dāng)時(shí)的等待列表并提示輸入你的等待序號(hào)和聯(lián)系方式*/printf(再次輸入電腦的序號(hào)!n);scanf(%d,&y);sumT-;computerTy=1;printf(t好了,請(qǐng)等待我們的 !n);Me

15、nu();else Menu(); /*取消預(yù)訂*/void Cancel()12int time,number;printf(在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:);scanf(%d,&time);if(time20)printf(t輸入時(shí)間錯(cuò)誤!n);printf(t在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:);scanf(%d,&time);elseprintf(t輸入你預(yù)定的機(jī)號(hào):);scanf(%d,&number);detail(time);/* sumT+; /預(yù)定后該時(shí)間段空機(jī)位數(shù)加1*/*computerTnumber=0;/ *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/prin

16、tf(t 取消成功!n);getchar();Menu();/*查看等待信息*/void SearchWaiting()13int time,i;FILE *fp;printf(t在(8-20)之間輸入您要搜索的時(shí)間:);scanf(%d,&time);if(time20)printf(t時(shí)間輸入錯(cuò)誤!n);printf(t在(8-20)之間輸入您要搜索的時(shí)間:);scanf(%d,&time);else;if(fp=fopen(waitlist.txt,r)=NULL)printf(nCannot open file!n);exit(0);elseprintf(waitlist number

17、 telephonenumbern);for(i=0;!feof(fp);i+)fscanf(fp,%s %s,&waiti.number,&waiti.telephonenumber);14)fclose(fp);)for(i=0;i10;i+) prione(i);)Menu();/*公共函數(shù)*/void detail(int time)/*此函數(shù)功能是實(shí)現(xiàn)查找每個(gè)時(shí)間段空機(jī)位總數(shù)和空機(jī)位號(hào)*/int i,j=0,k,s=0;int v30;for(i=0;i20;i+)if(computerTi=0)s+;vj+=i;sumT=s;printf(t 目前空置的電腦:dn,sumT);15

18、for(k=0;k 時(shí)售聲S香雷皆雷 1的的E-肪 :-EMWMW -RT1 Krl1rTrT4h-r-JYrjYt a范一曹首置置置首 號(hào)0目生竇*.工空( 單-2菜8 擇在請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的 號(hào)仙 IL3298309901再次輸入你想要預(yù)定的時(shí)間,LQ預(yù)訂成linL查詢基時(shí)間段機(jī)位狀態(tài);密麟朝%翻番工信息5展出I * D:c+DebugC ppi .exe* MIKMMM W!K*D:c+Debu gCpp l.exe *f機(jī)房機(jī)位預(yù)定系統(tǒng),看百餐首餐|*餐首神首*彳*餐首神首餐置ra2 t?nvul E E E E E E E E 5 -| 區(qū) F 匚號(hào)時(shí)目六天工空空空

19、空空空單6菜-2擇0詡在入11沼:7:9:?1111 母向一里&-竺竺均電必.齒 L AJ L H I 一,LraJH M 爾8 I 產(chǎn) KHM -菜單間位息士一h時(shí)機(jī)蔣 H 詢定消詢出 查預(yù)馨追售!r:s0 12 3入幾庖6 7 8 9 1111 05:覽FS-:圍T -源空的的的的的SSS .與0M-2捍s17D:c*4-D ebugC ppi.ex?12 3 4 5時(shí)機(jī)落 88 詢定消詢出 查預(yù)罌退MWMMMNMMNMWiNMMXM機(jī)房機(jī)位預(yù)定系統(tǒng)乂12 3 4 5時(shí)機(jī)需 58 詢定箱詢出 查預(yù)馨退酈位自心士 一d選擇菜單號(hào)ST,: 4在?8-2g之間輸入您要搜索的時(shí)間;10 uaitlist number telephonenumber10 132983099018 8B擇菜單號(hào)UTA5ress any key to continue三、總結(jié)通過(guò)這次C語(yǔ)言的課程設(shè)計(jì),我 明白了很多也知道了很多,更 收獲了很 多.在課 程設(shè)計(jì)的過(guò)程中出現(xiàn) 過(guò)困難,兩 周的課程 設(shè)計(jì)已經(jīng) 結(jié)束了.回 想學(xué)習(xí)C語(yǔ)言的過(guò)程中,既有 快樂(lè)又有煩惱.回憶 這次課程 設(shè)計(jì),至今 我仍感慨頗多,確實(shí),自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐, 在整整兩 個(gè)星 期的日子里,可以 學(xué)到 很多 很多 的東

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論