




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)報(bào)告設(shè)計(jì)者:肖昊班級(jí)序號(hào):055071-27學(xué)號(hào): 20071003651指導(dǎo)老師:劉文中C語(yǔ)言程序設(shè)計(jì)編程實(shí)踐是學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的一重要環(huán)節(jié),為提高學(xué)生程序設(shè)計(jì)能力, 通過(guò)課堂和上機(jī)實(shí)踐練習(xí)使學(xué)生的程序設(shè)計(jì)能力上一臺(tái)階。通過(guò)前四單元溫 顧而知新、庖丁解牛、舉一反三、熟能生巧等過(guò)程的練習(xí)設(shè)計(jì)下面一個(gè)完整 的程序1.題目要求設(shè)計(jì)“機(jī)房機(jī)位預(yù)約模擬系統(tǒng)”要求:20臺(tái)機(jī)器,從早8點(diǎn)到晚8點(diǎn),每?jī)蓚€(gè)小時(shí)一個(gè)時(shí)間段。需要實(shí)現(xiàn)功能:1, 查詢,根據(jù)輸入時(shí)間,輸出機(jī)位信息。2, 即為預(yù)定,根據(jù)輸入的日期和時(shí)間段查詢是否有空機(jī)位,若有則預(yù)約,若無(wú) 則提供最近空機(jī)時(shí)間段。另:若用戶要求在非空時(shí)間上機(jī),
2、則將用戶信息插入該 時(shí)間段的等待列表.3, 退出預(yù)定,根據(jù)輸入的時(shí)間,撤銷(xiāo)該時(shí)間的預(yù)定。4, 查詢是否有等待的信息,若有則按順序顯示聯(lián)系方式,若無(wú)則顯示提示信息。2需求分析根據(jù)題目要求在程序中需實(shí)現(xiàn)查詢,預(yù)定,排隊(duì)等功能的操作,所以 需要建立相應(yīng)的模塊來(lái)實(shí)現(xiàn);另外還需提供鍵盤(pán)式選擇菜單實(shí)現(xiàn)功 能,在運(yùn)行時(shí)達(dá)到所要目的。3總體設(shè)計(jì)整個(gè)系統(tǒng)可分為3個(gè)模塊查詢模塊預(yù)定模塊取消模塊機(jī)房機(jī)位預(yù)約模擬查詢模塊取消模塊詳細(xì)設(shè)計(jì)主函數(shù)比較簡(jiǎn)潔,只提供輸入、功能處理和輸出部分的函數(shù)調(diào) 用。main()int i;for(i=0;i<LENGTH;i+)TimeQueuei.CNum=0;TimeQueue
3、i.first=NULL;TimeQueuei.middle=NULL;TimeQueuei.last=NULL;while(1)printf("請(qǐng)輸入序號(hào)!:n");printf("1.查詢預(yù)定的機(jī)位 2.查詢空機(jī)位 3.預(yù)定4.取消預(yù)定 5.等待列表 6.查詢等待者列 表0.退出n");scanf("%d”,&i);switch(i)case 1:Inquir();break;case 2:inquir();break;case 3:booking();break;case 4:cancel();break;case 5:waiti
4、ng();break;case 6:inquir_waiting();break;case 0:exit(0);default:printf("errorn");void Inquir()(int n;char Infor10;struct node *Rem;printf("輸入查詢時(shí)間(24 hours 820 o'clock,include 8o'clock)n");scanf("%d”,&n);if(n>=8&&n<20)n=S(n);printf("請(qǐng)輸入學(xué)號(hào)n"
5、);scanf("%s",Infor);Rem=TimeQueuen.first;for(;Rem->next!=NULL;Rem=Rem->next)if(strcmp(Rem->data,Infor)=0)break;if(Rem->locat!=0)printf("The computer number is %dn",Rem->locat);else printf("對(duì)不起.你依舊在等待列表中或者沒(méi)有預(yù)定");else printf("錯(cuò)誤,請(qǐng)?jiān)俅屋斎?n");void inq
6、uir()int n;printf("輸入想要查詢的時(shí)間 (24 hours 820o'clock,include 8 o'clock)n");scanf("%d”,&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen.CNum<MAX)printf("There are %d empty computer!n”,MAX-TimeQueuen.CNum);else printf("對(duì)不起.沒(méi)有空余機(jī)位n");else printf("錯(cuò)誤,再次
7、輸入.n");預(yù)定模塊void booking()int n;char Infor10;struct node *Rem;struct node *p;printf("輸入想要預(yù)定的時(shí)間n");scanf("%d",&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen.CNum<MAX) printf("請(qǐng)輸入你的學(xué)號(hào)n");scanf("%s",Infor);if(TimeQueuen.first=NULL)Rem=(struct nod
8、e *)malloc(sizeof(struct node);Rem->locat=1;strcpy(Rem->data,Infor);Rem->next=NULL;TimeQueuen.first=Rem;TimeQueuen.last=Rem;TimeQueuen.CNum+;printf("成功預(yù)定 n");elseRem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;p=TimeQueuen.last;Rem->lo
9、cat=TimeQueuen.CNum+1;printf("%d”,Rem->locat);TimeQueuen.last=Rem;p->next=Rem;TimeQueuen.CNum+;printf("成功預(yù)定 n");else printf("沒(méi)有空余機(jī)位!");else printf("錯(cuò)誤.請(qǐng)?jiān)俅屋斎?n");void waiting()int n;char Infor10;struct node *Rem;struct node *p;printf("請(qǐng)輸入想要排隊(duì)的時(shí)間n");s
10、canf("%d",&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen.CNum>=MAX)printf("請(qǐng)輸入你的學(xué)號(hào)n");scanf("%s",Infor );if(TimeQueuen.CNum)=MAX)Rem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;Rem->locat=0;p=TimeQueuen.last;Tim
11、eQueuen.last=Rem;p->next=Rem;TimeQueuen.middle=Rem;TimeQueuen.CNum+;printf("成功排隊(duì) n");elseRem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;Rem->locat=0;p=TimeQueuen.last;TimeQueuen.last=Rem;p->next=Rem;TimeQueuen.CNum+;printf("成功排隊(duì) n&q
12、uot;);else printf("有空余機(jī)位,無(wú)須等待 n");else printf("錯(cuò)誤.再次輸入.n");void cancel()(int n;int i;char Infor10;struct node *Rem;struct node *q;struct node *p;printf("請(qǐng)輸入預(yù)定的時(shí)間n");scanf("%d”,&n);if(n>=8&&n<20)printf("Please input your No.!n");scanf(&qu
13、ot;%s",Infor);n=S(n);Rem=TimeQueuen.first;q=Rem;for(i=1;q=Rem,Rem=Rem->next,i+) if(strcmp(Rem->data,Infor)=0)break; if(i>MAX)if(Rem->next=NULL) q->next=NULL;TimeQueuen.last=q;free(Rem);TimeQueuen.CNum-;printf("Succeed to out the queue!n");elseq->next=Rem->next;fre
14、e(Rem);TimeQueuen.CNum-;printf("Succeed to out the queue!n");elseif(TimeQueuen.CNum>MAX)TimeQueuen.middle->locat=Rem->locat;TimeQueuen.middle=TimeQueuen.middle->next;if(i=1) TimeQueuen.first=Rem->next;else q->next=Rem->next;free(Rem);TimeQueuen.CNum-;printf("成功取消預(yù)
15、定!n");附錄源代碼:#include<stdio.h>#include<stdlib.h>#include<string.h>#define LENGTH 6#define MAX 20#define S(r) (r-8)/2#define NULL 0struct nodeint locat;char data10;struct node *next;struct node *head;struct cellint CNum;struct node *first;struct node *middle;struct node *last;Ti
16、meQueueLENGTH;void Inquir()(int n;char Infor10;struct node *Rem;printf("輸入查詢時(shí)間(24 hours 820 o'clock,include 8o'clock)n");scanf("%d”,&n);if(n>=8&&n<20)n=S(n);printf("請(qǐng)輸入學(xué)號(hào)n");scanf("%s",Infor);Rem=TimeQueuen.first;for(;Rem->next!=NULL;Re
17、m=Rem->next)if(strcmp(Rem->data,Infor)=0)break;if(Rem->locat!=0)printf("The computer number is %dn",Rem->locat);else printf("對(duì)不起.你依舊在等待列表中或者沒(méi)有預(yù)定");else printf("錯(cuò)誤,請(qǐng)?jiān)俅屋斎?n");void inquir()int n;printf("輸入想要查詢的時(shí)間 (24 hours 820o'clock,include 8 o'cl
18、ock)n");scanf("%d",&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen.CNum<MAX)printf("There are %d empty computer!n”,MAX-TimeQueuen.CNum);else printf("對(duì)不起.沒(méi)有空余機(jī)位n");else printf("錯(cuò)誤,再次輸入.n");void booking()int n;char Infor10;struct node *Rem;struct nod
19、e *p;printf("輸入想要預(yù)定的時(shí)間n");scanf("%d",&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen.CNum<MAX) printf("請(qǐng)輸入你的學(xué)號(hào)n");scanf("%s",Infor);if(TimeQueuen.first=NULL)Rem=(struct node *)malloc(sizeof(struct node);Rem->locat=1;strcpy(Rem->data,Infor);Re
20、m->next=NULL;TimeQueuen.first=Rem;TimeQueuen.last=Rem;TimeQueuen.CNum+;printf("成功預(yù)定 n");elseRem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;p=TimeQueuen.last;Rem->locat=TimeQueuen.CNum+1;printf("%d",Rem->locat);TimeQueuen.last=R
21、em;p->next=Rem;TimeQueuen.CNum+;printf("成功預(yù)定 n");else printf("沒(méi)有空余機(jī)位!");else printf("錯(cuò)誤.請(qǐng)?jiān)俅屋斎?n");void waiting()int n;char Infor10;struct node *Rem;struct node *p;printf("請(qǐng)輸入想要排隊(duì)的時(shí)間n");scanf("%d”,&n);if(n>=8&&n<20)n=S(n);if(TimeQueuen
22、.CNum>=MAX) printf("請(qǐng)輸入你的學(xué)號(hào)n");scanf("%s",Infor);if(TimeQueuen.CNum)=MAX)Rem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;Rem->locat=0;p=TimeQueuen.last;TimeQueuen.last=Rem;p->next=Rem;TimeQueuen.middle=Rem;TimeQueuen.CNum+;print
23、f("成功排隊(duì) n");elseRem=(struct node *)malloc(sizeof(struct node);strcpy(Rem->data,Infor);Rem->next=NULL;Rem->locat=0;p=TimeQueuen.last;TimeQueuen.last=Rem;p->next=Rem;TimeQueuen.CNum+;printf("成功排隊(duì) n");else printf("有空余機(jī)位,無(wú)須等待 n");else printf("錯(cuò)誤.再次輸入.n"
24、;);void cancel()int n;int i;char Infor10;struct node *Rem;struct node *q;struct node *p;printf("請(qǐng)輸入預(yù)定的時(shí)間n");scanf("%d”,&n);if(n>=8&&n<20)printf("Please input your No.!n");scanf("%s",Infor);n=S(n);Rem=TimeQueuen.first;q=Rem;for(i=1;q=Rem,Rem=Rem-&g
25、t;next,i+)if(strcmp(Rem->data,Infor)=0)break;if(i>MAX)if(Rem->next=NULL)q->next=NULL;TimeQueuen.last=q;free(Rem);TimeQueuen.CNum-;printf("Succeed to out the queue!n");elseq->next=Rem->next;free(Rem);TimeQueuen.CNum-;printf("Succeed to out the queue!n");elseif(TimeQueuen.CNum>MAX)TimeQueuen.middle->locat=Rem->locat;TimeQueuen.middle=TimeQueuen.middle->next;if(i=1) TimeQueuen.first=Rem->next;else q->next=Rem->next;free(Rem);TimeQueuen.CNum-;printf("成功取消預(yù)定!n");else printf("錯(cuò)誤,請(qǐng)?jiān)俅屋斎?n&qu
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3589-2023 潔凈轉(zhuǎn)子泵標(biāo)準(zhǔn)
- 2025年度礦山新能源利用合作開(kāi)發(fā)協(xié)議
- 二零二五年度船舶租賃與船舶融資租賃合同
- 二零二五年度金融產(chǎn)品創(chuàng)新增資協(xié)議
- 2025年度酒店品牌授權(quán)及加盟合作協(xié)議
- 二零二五年度有機(jī)果園使用權(quán)及品牌授權(quán)合同
- 二零二五美容院轉(zhuǎn)讓合同包含員工培訓(xùn)體系與職業(yè)發(fā)展規(guī)劃
- 2025年度旅游度假區(qū)合租商鋪合作協(xié)議
- 二零二五年度知識(shí)產(chǎn)權(quán)標(biāo)準(zhǔn)化與認(rèn)證顧問(wèn)合同
- 二零二五年度科技園區(qū)出租房承包管理協(xié)議
- 高處作業(yè)吊籃危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)評(píng)價(jià)表
- 2024云游戲平臺(tái)計(jì)費(fèi)系統(tǒng)計(jì)費(fèi)性能技術(shù)要求和測(cè)試方法
- 《和大人一起讀》試題及答案共4套
- 第一課 踏上強(qiáng)國(guó)之路 復(fù)習(xí)課件 統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 部編版語(yǔ)文九年級(jí)下冊(cè)-第三單元古詩(shī)文默寫(xiě)-理解性默寫(xiě)(排版-附答案)
- 數(shù)學(xué)史與數(shù)學(xué)文化教育
- 雨污水管道施工工藝
- 圖紙疑問(wèn)匯總表
- 茯苓栽培技術(shù)
- 空氣能熱泵基礎(chǔ)施工方案
- 起重機(jī)械安全規(guī)程-第部分完整
評(píng)論
0/150
提交評(píng)論