机房机位预约模拟管理系统设计源代码.doc_第1页
机房机位预约模拟管理系统设计源代码.doc_第2页
机房机位预约模拟管理系统设计源代码.doc_第3页
机房机位预约模拟管理系统设计源代码.doc_第4页
机房机位预约模拟管理系统设计源代码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #include #define SJD 6 /*宏定义定义SJD Z NULL D(r)*/#define Z 20 #define D(s) (s-8)/2 /*将输入的时间划分时间段;分别为0,1,2,3,4,5时间段*/ #define NULL 0 struct xinxiint jihao; char xuehao20;struct xinxi *next; ; /*结构函数包含学生信息:机位,学号,还有下名学生信息*/struct cellint RS; /*RS表示总人数*/struct xinxi *first; /*第一个预订者记录*/struct xinxi *middle; /*等待队列列表*/struct xinxi *last; /*最后预订者记录*/ DUILEISJD; /*学生时间(SJD)段顺序:人数,第一名学生,排队的学生,最后一名学生*/*预定模块*/void yuding() int n; char m20; /*学号*/struct xinxi *R; struct xinxi *p; printf(输入想要预定的时间n); scanf(%d,&n); if(n=8&n20) n=D(n); /*将输入的时间划分时间段*/ if(DUILEIn.RSjihao=1; strcpy(R-xuehao,m); /*将输入的学号复制到R-xuehao */ R-next=NULL; DUILEIn.first=R; DUILEIn.last=R; DUILEIn.RS+; printf(成功预定n); else R=(struct xinxi *)malloc(sizeof(struct xinxi); strcpy(R-xuehao,m); /*将输入的学号复制到R-xuehao */ R-next=NULL; p= DUILEIn.last; /*将最后预订记录赋值给p*/ R-jihao= DUILEIn.RS+1; printf(%d,R-jihao); /*表示该时间段第几位预订*/ DUILEIn.last=R; /*将当前的记录做为最后记录以便形成链表形式指向下一个*/ p-next=R; DUILEIn.RS+; /*记录人数*/ printf(预定成功n); else printf(没有空余机位!n); else printf(错误.请输入819,再次输入.n); /*查询空位模块*/void chaxunkongwei() int n; printf(输入想要查询的时间(819点,包括8点)n); scanf(%d,&n); if(n=8&n20) n=D(n); if(DUILEIn.RS=8&nnext!=NULL;R=R-next) /*从第一名学生开始查询直到找到符合的学号,以便确认是否预订*/if(strcmp(R-xuehao,m)=0)break;if(R-jihao!=0) /*已预订,输出相应的信息*/printf(你的机位是%dn,R-jihao); else printf(对不起.你依旧在等待列表中或者没有预定); else printf(错误,请再次输入.n); /*排队系统模块*/void paiduixitong() int n; char m20; struct xinxi *R; struct xinxi *p; printf(请输入想要排队的时间n); scanf(%d,&n); if(n=8&n=Z) /*该时间段没有空位机,需要预订等待*/ printf(请输入你的学号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; DUILEIn.last=R; p-next=R; DUILEIn.middle=R; /*等待预订列表*/DUILEIn.RS+; printf(成功排队n); /*将刚输入学生信息拍到最后一名后,成最后一名*/else R=(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(成功排队n); else printf(有空余机位,无须等待n); else printf(错误.再次输入.n); /*取消预订模块*/void cancel() int n; int i; char m20; struct xinxi *R; struct xinxi *q; struct xinxi *p; printf(请输入预定的时间n); scanf(%d,&n); if(n=8&nnext,i+) /*查找符合信息*/if(strcmp(R-xuehao,m)=0)break; if(iZ) /*iz表示在等待列表中*/ if(R-next=NULL) q-next=NULL; DUILEIn.last=q; free(R); DUILEIn.RS-; printf(取消成功!n); /*如果是排在20名后,且是最后一名*/ else q-next=R-next; free(R); DUILEIn.RS-; printf(取消成功!n); /*如果排在20名后,但不是最后*/ else /*正在上机者取消预订*/ if(DUILEIn.RSZ) DUILEIn.middle-jihao=R-jihao; DUILEIn.middle= DUILEIn.middle-next; /*如果排在20名内,但总人数(包括等待列表人数)大于20 */if(i=1) DUILEIn.first=R-next; else q-next=R-next; free(R); DUILEIn.RS-; printf(成功取消预定!n); else printf(错误,请再次输入.n); /*待机者列表模块*/void daijizheliebiao() int n; struct xinxi *q; printf(查询其他等待者的预定时间n); scanf(%d,&n); if(n=8&nZ) /*表示有等待上机者*/ printf(等待列表:n); q=DUILEIn.middle; for(;q-next!=NULL;q=q-next) printf(%sn,q-xuehao); /*逐个输出等待列表者信息*/printf(%sn, DUILEIn.last-xuehao); else printf(这个时间段没有预定者n); else printf(错误。请再次输入.n); int main() int i; 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( * *n);printf( * 请输入序号(0-6): *n);printf( *n); printf(请输入序号!:n); scanf(%d,&i); switch(i) case 1:chaxunkongwei();break; case

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论