机房机位预约模拟管理系统设计源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
#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 xinxi{
int jihao;
char xuehao[20];
struct xinxi *next;
}; /*结构函数包含学生信息:机位,学号,还有下名学生信息*/
struct cell{
int RS; /*RS表示总人数*/
struct xinxi *first; /*第一个预订者记录*/
struct xinxi *middle; /*等待队列列表*/
struct xinxi *last; /*最后预订者记录*/
} DUILEI[SJD]; /*学生时间(SJD)段顺序:人数,第一名学生,排队的学生,最后一名学生*/ /***************************预定模块******************************/
void yuding()
{
.
.
int n;
char m[20]; /*学号*/
struct xinxi *R;
struct xinxi *p;
牰湩晴尨输入想要预定的时间\n);
scanf(%d,&n);
if(n>=8&&n<20){
n=D(n); /*将输入的时间划分时间段*/
if(DUILEI[n].RS { 牰湩晴尨请输入你的学号\n); scanf(%s,m); if(DUILEI[n].first==NULL) /*还没有人预订*/ { R=(struct xinxi *)malloc(sizeof(struct xinxi));/*给R划分适当的存*/ R->jihao=1; strcpy(R->xuehao,m); /*将输入的学号复制到R->xuehao */ R->next=NULL; DUILEI[n].first=R; DUILEI[n].last=R; DUILEI[n].RS++; 牰湩晴尨成功预定\n); 专业资料word . } else { R=(struct xinxi *)malloc(sizeof(struct xinxi)); strcpy(R->xuehao,m); /*将输入的学号复制到R->xuehao */ R->next=NULL; p= DUILEI[n].last; /*将最后预订记录赋值给p*/ R->jihao= DUILEI[n].RS+1; printf(%d,R->jihao); /*表示该时间段第几位预订*/ DUILEI[n].last=R; /*将当前的记录做为最后记录以便形成链表形式指向下一个*/ p->next=R; DUILEI[n].RS++; /*记录人数*/ 牰湩晴尨预定成功\n); } } 汥敳瀠楲瑮?没有空余机位!\n); } 汥敳瀠楲瑮?错误.请输入8~19,再次输入.\n); } /*********************************查询空位模块***********************************/ 专业资料word . void chaxunkongwei() { int n; 牰湩晴尨输入想要查询的时间(8~19点,包括8点)\n); scanf(%d,&n); if(n>=8&&n<20) { n=D(n); if(DUILEI[n].RS 牰湩晴尨这里还有%d台空电脑!\n,Z-DUILEI[n].RS); 汥敳瀠楲瑮?对不起.没有空余机位!\n); } 汥敳瀠楲瑮?错误,请输入8~19,再次输入.\n); } /*********************查询预定机位模块*************************************/ void chaxunyuding() { int n; char m[20]; struct xinxi *R; 牰湩晴尨输入查询时间(8~19点,包括8点)\n); scanf(%d,&n); 专业资料word . if(n>=8&&n<20) { n=D(n); 牰湩晴尨请输入学号\n); scanf(%s,m); R= DUILEI[n].first; /*将第一名学生的信息赋予R*/ if(DUILEI[n].first==0) printf( 还没有人预定\n); /*判断有没有人预订,如果还没有人预订,则输出还没有人预定*/ else{ for(;R->next!=NULL;R=R->next) /*从第一名学生开始查询直到找到符合的学号,以便确认是否预订*/ if(strcmp(R->xuehao,m)==0)break; if(R->jihao!=0) /*已预订,输出相应的信息*/