|
|
#include<stdio.h>
|
|
|
#include<stdlib.h>
|
|
|
#include<string.h>
|
|
|
#define N 20
|
|
|
#define T (time-8)/2
|
|
|
int sum[6]={0};
|
|
|
int computer[6][20]={{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1},
|
|
|
{1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},
|
|
|
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
|
|
|
{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1},
|
|
|
{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0},
|
|
|
{1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1}};
|
|
|
void Menu();
|
|
|
void Situation();
|
|
|
void Book();
|
|
|
void Cancel ();
|
|
|
void SearchWaiting ();
|
|
|
void Exit();
|
|
|
void detail(int time);
|
|
|
void printf_one(int i);
|
|
|
struct waitlist
|
|
|
{
|
|
|
char number[3];
|
|
|
char telephonenumber[11];
|
|
|
}wait[N];
|
|
|
int main()
|
|
|
{
|
|
|
Menu();
|
|
|
}
|
|
|
void Menu()
|
|
|
{
|
|
|
char a;
|
|
|
system ("cls");
|
|
|
system ("color f4");
|
|
|
printf ("\n\n\n\n\n\n\n");
|
|
|
printf ("\t\t\t 【机房机位预定系统】\n");
|
|
|
printf ("================================================================================\n");
|
|
|
printf ("\t\t\t\t**************\n");
|
|
|
printf ("\t\t\t\t*1.查询某时间段机位状态*\n");
|
|
|
printf ("\t\t\t\t*2.预定空机位*\n");
|
|
|
printf ("\t\t\t\t*3.取消预定*\n");
|
|
|
printf ("\t\t\t\t*4.查询等待结果*\n");
|
|
|
printf ("\t\t\t\t*5.退出*\n");
|
|
|
printf ("\t\t\t\t**************\n");
|
|
|
printf ("================================================================================\n");
|
|
|
printf("选择菜单号(1-5):[ ]\b\b");
|
|
|
scanf ("%d",&a);
|
|
|
system("cls");
|
|
|
switch (a)
|
|
|
{
|
|
|
case 5: break;
|
|
|
case 1:
|
|
|
{
|
|
|
Situation();
|
|
|
break;
|
|
|
}
|
|
|
case 2:
|
|
|
{
|
|
|
Book ();
|
|
|
break;
|
|
|
}
|
|
|
case 3:
|
|
|
{
|
|
|
Cancel ();
|
|
|
break;
|
|
|
}
|
|
|
case 4:
|
|
|
{
|
|
|
SearchWaiting ();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
getchar();
|
|
|
}
|
|
|
void Situation()
|
|
|
{
|
|
|
int time,k;
|
|
|
printf("输出(8-20)范围内的时间:");
|
|
|
scanf("%d",&time);
|
|
|
if(time<8||time>20)
|
|
|
{
|
|
|
printf("\t时间输入错误!\n");
|
|
|
printf("输入在(8-20)范围内的时间:");
|
|
|
scanf("%d",&time);
|
|
|
}
|
|
|
detail(time);
|
|
|
getchar();
|
|
|
printf ("按任意数字键再点击回车键返回主菜单");
|
|
|
scanf ("%s",&k);
|
|
|
Menu();
|
|
|
}
|
|
|
void Book()
|
|
|
{
|
|
|
int time,i=0,x,y,k;
|
|
|
FILE *fp;
|
|
|
char c;
|
|
|
printf("在(8-20)时间范围内输入你想要的时间:");
|
|
|
scanf("%d",&time);
|
|
|
if(time<8||time>20)
|
|
|
{
|
|
|
printf("\t时间输入错误!\n");
|
|
|
printf("输入在(8-20)范围内的时间:");
|
|
|
scanf("%d",&time);
|
|
|
}
|
|
|
detail(time);
|
|
|
if(sum[T]>0)
|
|
|
{
|
|
|
if((fp=fopen("waitlist.txt","a"))==NULL)
|
|
|
{
|
|
|
printf("\n无法打开文件!\n");
|
|
|
exit(0);
|
|
|
}
|
|
|
printf("\n\t请输入你想要预定的机号,并且留下你的手机号码!:\n");
|
|
|
scanf("%s %s",wait[i].number,wait[i].telephonenumber);
|
|
|
fclose(fp);
|
|
|
for(i=0;i<i;i++)
|
|
|
fwrite(&wait[i],sizeof(struct waitlist),1,fp);
|
|
|
printf("\t请输入你想要的预定的机位!\n");
|
|
|
scanf("%d",&x);
|
|
|
sum[T]--;
|
|
|
computer[T][x]=1;
|
|
|
printf("\t预定成功!\n");
|
|
|
getchar();
|
|
|
printf ("按任意数字键再点击回车键返回主菜单");
|
|
|
scanf ("%s",&k);
|
|
|
Menu();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("这是在这个时间段内未预定的电脑!\n");
|
|
|
for(i=T+1;i<6;i++)
|
|
|
{
|
|
|
time=9+2*i;
|
|
|
detail(time);
|
|
|
if(sum[T]>0)
|
|
|
printf("\tThe latest free time is %d,%d\n",2*i+8,2*i+10);
|
|
|
break;
|
|
|
}
|
|
|
printf("\t 你想要预定吗?:y/n?");
|
|
|
scanf("%s",&c);
|
|
|
getchar();
|
|
|
if(c=='Y'||c=='y')
|
|
|
{
|
|
|
if((fp=fopen("waitlist.txt","r"))==NULL)
|
|
|
{
|
|
|
printf("\n 无法打开文件!\n");
|
|
|
exit(0);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("waitlist: number telephonenumber\n");
|
|
|
for(i=0;!feof(fp);i++)
|
|
|
{
|
|
|
fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
}
|
|
|
for(i=0;i<10;i++)
|
|
|
{
|
|
|
printf_one(i);
|
|
|
}
|
|
|
printf("\n\t 请输入你想要预定的机号,并且留下你的电话号码!:\n");
|
|
|
if((fp=fopen("waitlist.txt","a"))==NULL)
|
|
|
{
|
|
|
printf("\n 无法打开文件!\n");
|
|
|
exit(0);
|
|
|
}
|
|
|
scanf("%s %s",wait[i].number,wait[i].telephonenumber);
|
|
|
for(i=0;i<1;i++)
|
|
|
fwrite(&wait[i],sizeof(struct waitlist),1,fp);
|
|
|
fclose(fp);
|
|
|
printf("请再次输入电脑的序号!\n");
|
|
|
scanf("%d",&y);
|
|
|
sum[T]--;
|
|
|
computer[T][y]=1;
|
|
|
printf("\t 好了,请等待我们的电话!\n");
|
|
|
Menu();
|
|
|
}
|
|
|
else Menu();
|
|
|
}
|
|
|
}
|
|
|
void Cancel()
|
|
|
{
|
|
|
int time,number,k;
|
|
|
printf("在(8-20)时间范围内输入你已经预定的时间:");
|
|
|
scanf("%d",&time);
|
|
|
if(time<8||time>20)
|
|
|
{
|
|
|
printf("\t 输入时间错误!\n");
|
|
|
printf("在(8-20)时间范围内输入你已经预定的时间:");
|
|
|
scanf("%d",&time);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t 输入你预定的机号 :");
|
|
|
scanf("%d",&number);
|
|
|
}
|
|
|
detail(time);
|
|
|
sum[T]++;
|
|
|
computer[T][number]=0;
|
|
|
printf("\t取消成功!\n");
|
|
|
getchar();
|
|
|
printf ("按任意数字键再点击回车键返回主菜单");
|
|
|
scanf ("%s",&k);
|
|
|
Menu();
|
|
|
}
|
|
|
void SearchWaiting()
|
|
|
{
|
|
|
int time,i,k;
|
|
|
FILE *fp;
|
|
|
printf("\tlnput time you want to search between(8-20):");
|
|
|
scanf("%d",&time);
|
|
|
if(time<8||time>20)
|
|
|
{
|
|
|
printf("\tWrong time!\n");
|
|
|
printf("\tlnput time you want to search between(8-20):");
|
|
|
scanf("%d",&time);
|
|
|
}
|
|
|
else
|
|
|
if((fp=fopen("waitlist.txt","r"))==NULL)
|
|
|
{
|
|
|
printf("\nCannot open file!\n");
|
|
|
exit(0);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("waitlist: number telephonenumber\n");
|
|
|
for(i=0;feof(fp);i++)
|
|
|
{
|
|
|
fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
}
|
|
|
for(i=0;i<10;i++)
|
|
|
{
|
|
|
printf_one(i);
|
|
|
}
|
|
|
printf ("按任意数字键再点击回车键返回主菜单");
|
|
|
scanf ("%s",&k);
|
|
|
Menu();
|
|
|
}
|
|
|
void detail(int time)
|
|
|
{
|
|
|
int i,j=0,k,s=0;
|
|
|
int v[30];
|
|
|
for(i=0;i<20;i++)
|
|
|
{
|
|
|
if(computer[T][i]==0)
|
|
|
{
|
|
|
s++;
|
|
|
v[j++]=i;
|
|
|
}
|
|
|
}
|
|
|
sum[T]=s;
|
|
|
printf("\t空置的电脑有:%d台\n",sum[T]);
|
|
|
for(k=0;k<j;k++)
|
|
|
printf("\t空置的电脑是:%d\n",v[k]);
|
|
|
}
|
|
|
void printf_one(int i)
|
|
|
{
|
|
|
printf("\t\t%s %s \n",wait[i].number,wait[i].telephonenumber);
|
|
|
}
|