1、 /*第一个预订者记录*/ struct xinxi *middle; /*等待队列列表*/ struct xinxi *last; /*最后预订者记录*/ DUILEISJD; /*学生时间(SJD)段顺序:人数,第一名学生,排队的学生,最后一名学生*/ /*预定模块*/ void yuding() . int n;char m20; /*学号*/ struct xinxi *R;struct xinxi *p;牰湩晴尨输入想要预定的时间n);scanf(%d,&n);if(n=8&n20) n=D(n); /*将输入的时间划分时间段*/ if(DUILEIn.RSjihao=1; strc
2、py(R-xuehao,m); /*将输入的学号复制到R-xuehao */ next=NULL; DUILEIn.first=R; DUILEIn.last=R; DUILEIn.RS+; 牰湩晴尨成功预定n); 专业资料word else R=(struct xinxi *)malloc(sizeof(struct xinxi); p= DUILEIn.last; /*将最后预订记录赋值给p*/ jihao= DUILEIn.RS+1; printf(%d,R-jihao); /*表示该时间段第几位预订*/ /*将当前的记录做为最后记录以便形成链表形式指向下一个*/ p-next=R; /
3、*记录人数*/ 牰湩晴尨预定成功n); 汥敳瀠楲瑮?没有空余机位!n);汥敳瀠楲瑮?错误.请输入819,再次输入.n);/*查询空位模块*/ void chaxunkongwei() 牰湩晴尨输入想要查询的时间(819点,包括8点)n);20) n=D(n); if(DUILEIn.RSnext!=NULL;R=R-next) /*从第一名学生开始查询直到找到符合的学号,以便确认是否预订*/ if(strcmp(R-xuehao,m)=0)break;if(R-jihao!=0) /*已预订,输出相应的信息*/ 牰湩晴尨你的机位是%dn,R-对不起.你依旧在等待列表中或者没有预定);错误,请再
4、次输入.n);/*排队系统模块*/ void paiduixitong() struct xinxi *p;牰湩晴尨请输入想要排队的时间n);if(DUILEIn.RS=Z) /*该时间段没有空位机,需要预订等待*/ if(DUILEIn.RS)=Z) strcpy(R-jihao=0;p= DUILEIn.last;DUILEIn.last=R;p-DUILEIn.middle=R; /*等待预订列表*/ DUILEIn.RS+;牰湩晴尨成功排队n);/*将刚输入学生信息拍到最后一名后,成最后一名*/ else 有空余机位,无须等待n);错误.再次输入.n);/*取消预订模块*/ void
5、cancel() int i;struct xinxi *q;牰湩晴尨请输入预定的时间n);牰湩晴尨请输入你的学号!scanf(%s,m);R= DUILEIn.first;q=R;for(i=1;q=R,R=R-next,i+) /*查找符合信息*/ if(iZ) /*iz表示在等待列表中*/ next=NULL) q-DUILEIn.last=q;free(R);DUILEIn.RS-;牰湩晴尨取消成功! /*如果是排在20名后,且是最后一名*/ next=R-next; /*如果排在20名后,但不是最后*/ else /*正在上机者取消预订*/ DUILEIn.middle-jihao=
6、R-jihao;DUILEIn.middle= DUILEIn.middle- /*如果排在20名,但总人数(包括等待列表人数)大于20 */ if(i=1) DUILEIn.first=R-else q-牰湩晴尨成功取消预定!/*待机者列表模块*/ void daijizheliebiao() 牰湩晴尨查询其他等待者的预定时间n);Z) /*表示有等待上机者*/ 牰湩晴尨等待列表:q=DUILEIn.middle;q=q-next) printf(%sn,q-xuehao); /*逐个输出等待列表者信息*/ printf(%sn, DUILEIn.last-这个时间段没有预定者n);错误。请
7、再次输入.n);int main() for(i=0;iSJD;i+) DUILEIi.RS=0;DUILEIi.first=NULL;DUILEIi.middle=NULL;DUILEIi.last=NULL;while(1) printf( *n);printf( * 机房机位预定系统 *n);printf( * *n);printf( * 1 查询空机位 2 预定系统 *n);printf( * 3 取消预定 4 查询所预定机位 *n);printf( * 5 排队系统 6 等机者列表 *n);printf( * 0 退出系统 *n);printf( * 请输入序号(0-6): *n);牰湩晴尨请输入序号!:i);switch(i) case 1:chaxunkongwei();break;case 2:yuding();case 3:cancel();case 4:chaxunyuding();case 5:paiduixitong();case 6:daijizheliebiao();case 0:exit(0);敤慦汵?牰湩晴尨错误n);return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1