機(jī)房機(jī)位預(yù)約模擬管理系統(tǒng)設(shè)計(jì)源代碼_第1頁(yè)
機(jī)房機(jī)位預(yù)約模擬管理系統(tǒng)設(shè)計(jì)源代碼_第2頁(yè)
機(jī)房機(jī)位預(yù)約模擬管理系統(tǒng)設(shè)計(jì)源代碼_第3頁(yè)
機(jī)房機(jī)位預(yù)約模擬管理系統(tǒng)設(shè)計(jì)源代碼_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、#include<stdio.h>#include<stdlib.h>#include<string.h>#define SJD 6 /*宏定義定義SJD Z NULL D(r)*/#define Z 20#define D(s) (s-8)/2 /*將輸入的時(shí)間劃分時(shí)間段;分別為0,1,2,3,4,5時(shí)間段 */#define NULL 0struct xinxiint jihao;char xuehao20;struct xinxi *next; /*結(jié)構(gòu)函數(shù)包含學(xué)生信息:機(jī)位,學(xué)號(hào),還有下名學(xué)生信息*/struct cellint RS; /*RS 表

2、示總?cè)藬?shù) */ struct xinxi *first; /* struct xinxi *middle; /* struct xinxi *last; /* DUILEISJD; /* 學(xué)生時(shí)間(生*/ /*void yuding()int n;char m20;/*學(xué)號(hào) */struct xinxi *R;struct xinxi *p;第一個(gè)預(yù)訂者記錄*/等待隊(duì)列列表*/最后預(yù)訂者記錄*/SJD)段順序:人數(shù),第一名學(xué)生,排隊(duì)的學(xué)生,最后一名學(xué)預(yù)定模塊 */printf("輸入想要預(yù)定的時(shí)間n");scanf("%d",&n);if(n&g

3、t;=8&&n<20)n=D(n);/*將輸入的時(shí)間劃分時(shí)間段*/if(DUILEIn.RS<Z)/*還有機(jī)位可供預(yù)訂*/printf("請(qǐng)輸入你的學(xué)號(hào)n");scanf("%s",m);if(DUILEIn.first=NULL) /*還沒(méi)有人預(yù)訂 */R=(struct xinxi *)malloc(sizeof(struct xinxi);/*給 R 劃分適當(dāng)?shù)膬?nèi)存*/R->jihao=1;strcpy(R->xuehao,m); /*將輸入的學(xué)號(hào)復(fù)制到R->xuehao */R->next=NU

4、LL;DUILEIn.first=R;DUILEIn.last=R;DUILEIn.RS+;printf("成功預(yù)定 n");精品文檔elseR=(struct xinxi *)malloc(sizeof(struct xinxi);strcpy(R->xuehao,m); /*將輸入的學(xué)號(hào)復(fù)制到R->xuehao */R->next=NULL;p= DUILEIn.last;/*將最后預(yù)訂記錄賦值給p*/R->jihao= DUILEIn.RS+1;printf("%d",R->jihao);/*表示該時(shí)間段第幾位預(yù)訂*/

5、DUILEIn.last=R; /*將當(dāng)前的記錄做為最后記錄以便形成鏈表形式指向下一個(gè) */p->next=R;DUILEIn.RS+;/*記錄人數(shù) */printf("預(yù)定成功 n");else printf("沒(méi)有空余機(jī)位 !n");else printf("錯(cuò)誤 . 請(qǐng)輸入 819,再次輸入 .n");/*查詢空位模塊*/void chaxunkongwei()int n;printf("輸入想要查詢的時(shí)間(819 點(diǎn),包括8 點(diǎn))n");scanf("%d",&n);if(

6、n>=8&&n<20)n=D(n);if(DUILEIn.RS<Z)printf("這里還有 %d臺(tái)空電腦 !n",Z-DUILEIn.RS);else printf("對(duì)不起 . 沒(méi)有空余機(jī)位!n");else printf("錯(cuò)誤 , 請(qǐng)輸入 819,再次輸入 .n");/*查詢預(yù)定機(jī)位模塊*/void chaxunyuding()int n;char m20;struct xinxi *R;printf("輸入查詢時(shí)間 (819 點(diǎn),包括8 點(diǎn) )n");。2 歡迎下載精品文

7、檔scanf("%d",&n);if(n>=8&&n<20)n=D(n);printf("請(qǐng)輸入學(xué)號(hào) n");scanf("%s",m);R= DUILEIn.first; /*將第一名學(xué)生的信息賦予R*/if(DUILEIn.first=0) printf("還沒(méi)有人預(yù)定n"); /*判斷有沒(méi)有人預(yù)訂,如果還沒(méi)有人預(yù)訂,則輸出還沒(méi)有人預(yù)定*/elsefor(;R->next!=NULL;R=R->next)/*從第一名學(xué)生開始查詢直到找到符合的學(xué)號(hào),以便確認(rèn)是否預(yù)訂

8、*/if(strcmp(R->xuehao,m)=0)break;if(R->jihao!=0) /*已預(yù)訂,輸出相應(yīng)的信息*/printf("你的機(jī)位是 %dn",R->jihao);else printf("對(duì)不起 . 你依舊在等待列表中或者沒(méi)有預(yù)定");else printf("錯(cuò)誤,請(qǐng)?jiān)俅屋斎?n");/*排隊(duì)系統(tǒng)模塊*/void paiduixitong()int n;char m20;struct xinxi *R; struct xinxi *p;printf("請(qǐng)輸入想要排隊(duì)的時(shí)間n&quo

9、t;);scanf("%d",&n);if(n>=8&&n<20)n=D(n);if(DUILEIn.RS>=Z)/*該時(shí)間段沒(méi)有空位機(jī),需要預(yù)訂等待*/printf("請(qǐng)輸入你的學(xué)號(hào)n"); scanf("%s",m);if(DUILEIn.RS)=Z)R=(struct xinxi *)malloc(sizeof(struct xinxi);strcpy(R->xuehao,m);R->next=NULL;R->jihao=0;p= DUILEIn.last;DUILEI

10、n.last=R;p->next=R;。3 歡迎下載精品文檔DUILEIn.middle=R;/*等待預(yù)訂列表 */DUILEIn.RS+;printf("成功排隊(duì) n");/* 將剛輸入學(xué)生信息拍到最后一名后,成最后一名*/elseR=(struct xinxi *)malloc(sizeof(struct xinxi);strcpy(R->xuehao,m);R->next=NULL;R->jihao=0;p= DUILEIn.last;DUILEIn.last=R;p->next=R;DUILEIn.RS+;printf("成功

11、排隊(duì) n");else printf("有空余機(jī)位,無(wú)須等待n");else printf("錯(cuò)誤 . 再次輸入 .n");/*取消預(yù)訂模塊*/void cancel()int n;int i;char m20;struct xinxi *R;struct xinxi *q;struct xinxi *p;printf("請(qǐng)輸入預(yù)定的時(shí)間 n");scanf("%d",&n);if(n>=8&&n<20)printf("請(qǐng)輸入你的學(xué)號(hào) !n");sc

12、anf("%s",m);n=D(n);R= DUILEIn.first;q=R;for(i=1;q=R,R=R->next,i+) /*查找符合信息 */if(strcmp(R->xuehao,m)=0)break;if(i>Z)/*i>z表示在等待列表中 */。4 歡迎下載精品文檔if(R->next=NULL)q->next=NULL;DUILEIn.last=q;free(R);DUILEIn.RS-;printf("取消成功 !n"); /*如果是排在20 名后,且是最后一名*/elseq->next=R

13、->next;free(R);DUILEIn.RS-;printf("取消成功 !n"); /*如果排在 20 名后,但不是最后*/else/*正在上機(jī)者取消預(yù)訂*/if(DUILEIn.RS>Z)DUILEIn.middle->jihao=R->jihao;DUILEIn.middle= DUILEIn.middle->next; /*如果排在 20 名內(nèi),但總?cè)藬?shù)(包括等待列表人數(shù))大于20 */if(i=1) DUILEIn.first=R->next;else q->next=R->next;free(R);DUILE

14、In.RS-;printf("成功取消預(yù)定 !n");else printf("錯(cuò)誤,請(qǐng)?jiān)俅屋斎?n");/*待機(jī)者列表模塊*/void daijizheliebiao()int n;struct xinxi *q;printf("查詢其他等待者的預(yù)定時(shí)間n");scanf("%d",&n);if(n>=8&&n<20)n=D(n);if(DUILEIn.RS>Z)/*表示有等待上機(jī)者*/printf("等待列表 :n");。5 歡迎下載精品文檔q=DU

15、ILEIn.middle;for(;q->next!=NULL;q=q->next)printf("%sn",q->xuehao);/* 逐個(gè)輸出等待列表者信息*/printf("%sn", DUILEIn.last->xuehao);else printf("這個(gè)時(shí)間段沒(méi)有預(yù)定者n");else printf("錯(cuò)誤。請(qǐng)?jiān)俅屋斎?n");int main()int i;for(i=0;i<SJD;i+)DUILEIi.RS=0;DUILEIi.first=NULL;DUILEIi.m

16、iddle=NULL;DUILEIi.last=NULL;while(1)printf("*n");printf("*機(jī)房機(jī)位預(yù)定系統(tǒng)*n");printf("*n");printf("* 1查詢空機(jī)位2預(yù)定系統(tǒng)*n");printf("* 3取消預(yù)定4查詢所預(yù)定機(jī)位*n");printf("* 5排隊(duì)系統(tǒng)6等機(jī)者列表*n");printf("* 0退出系統(tǒng)*n");printf("*n");printf("*請(qǐng)輸入序號(hào)( 0-6 ):*n");printf("*n");printf("請(qǐng)輸入序號(hào) !:n"

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論