机房机位预约模拟系统C语言课程设计Word下载.doc
- 文档编号:13311801
- 上传时间:2022-10-09
- 格式:DOC
- 页数:15
- 大小:291.50KB
机房机位预约模拟系统C语言课程设计Word下载.doc
《机房机位预约模拟系统C语言课程设计Word下载.doc》由会员分享,可在线阅读,更多相关《机房机位预约模拟系统C语言课程设计Word下载.doc(15页珍藏版)》请在冰豆网上搜索。
stdlib.h>
string.h>
#defineN20
#defineT(time-8)/2
intsum[6]={0};
intcomputer[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}};
/*该数组表示假设某天某人查询时机房各个时间段机位数情况*/
voidMenu();
voidSituation();
voidBook();
voidCancel();
voidSearchWaiting();
voidExit();
voiddetail(inttime);
voidprintf_one(inti);
structwaitlist
{
charnumber[3];
chartelephonenumber[12];
}wait[N];
2.主函数
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
其流程图如图所示:
开始
显示一系列功能模块
根据的值调用各功能模块函数
Y
N
输入n的值1-5
结束
2./*主函数*/
voidmain()
Menu();
/*当前状态函数*/
}
voidMenu()/*主界面*/
intn,w;
do
{
puts("
\t\t****************COMPUTERBOOKSYSTERM*******************\n"
);
puts("
\t\t*************************MENU***************************\n"
\t\t\t1.Searchthecurrentsituation"
/*查询某时间段机位状态*/
\t\t\t2.Bookthevacantcomputer"
/*预定空机位*/
\t\t\t3.Cancelbooking"
/*取消预订*/
\t\t\t4.Searchwaiting"
/*查询等待信息*/
\t\t\t5.Exit"
/*退出*/
\t\t********************************************************\n"
printf("
Chooseyournumber(1-5):
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
5)
{w=1;
getchar();
else
w=0;
}while(w==1);
switch(n)
case1:
Situation();
break;
case2:
Book();
case3:
Cancel();
case4:
SearchWaiting();
case5:
Exit(0);
}
3.状态查询函数
流程图
调用detail函数
返回主菜单
输入1
是
否
输入time的值8-20
/*查询模块*/
/*查询当前状态*/
voidSituation()
inttime;
printf("
Inputtimebetween(8-20):
"
scanf("
time);
if(time<
8||time>
20)
{printf("
\tWrongtime!
\n"
Pleaseinputtimebetween(8-20):
}
detail(time);
/*函数调用*/
getchar();
4.预定模块函数
执行一个循环,进入后面的时间段
Sum[T]>
输入时间8-20
调用detail函数,sum[T]的值改变
输出空机位数,是否等待
打开文本文件waitlist.txt,输入预定机位号和联系方式,追加一个结构体成员。
程序:
/*预定模块*/
voidBook()
{inttime,i=0,x,y;
FILE*fp;
charc;
printf("
Inputtimeyouwanttobookbetween(8-20):
scanf("
if(time<
{
printf("
\tInputtimeyouwanttobookbetween(8-20):
scanf("
}
detail(time);
if(sum[T]>
0)
{if((fp=fopen("
waitlist.txt"
"
a"
))==NULL)
{
printf("
\nCannotopenfile!
exit(0);
}
printf("
\n\tPleaseInputthenumberyouwanttobookandleaveyourtelephonenumber!
:
scanf("
%s%s"
wait[i].number,wait[i].telephonenumber);
for(i=0;
i<
1;
i++)
fwrite(&
wait[i],sizeof(structwaitlist),1,fp);
fclose(fp);
/*向文本文档添加一个结构体单元*/
\tInputthenumberyouwanttobookagain!
x);
sum[T]--;
/*预定后该时间段空机位数减1*/
computer[T][x]=1;
/*预定后该机状态变为1*/
\tBooksucceed!
else
Thereisnovacantcomputeratthattime!
for(i=T+1;
6;
{time=9+2*i;
detail(time);
/*函数调用*/
if(sum[T]>
printf("
\tThelatestfreetimeis%d,%d\n"
2*i+8,2*i+10);
\tDoyouwanttowait?
y/n?
scanf("
%s"
c);
getchar();
if(c=='
Y'
||c=='
y'
)
if((fp=fopen("
r"
{
printf("
exit(0);
}
else
{printf("
waitlist:
numbertelephonenumber\n"
for(i=0;
!
feof(fp);
{
fscanf(fp,"
wait[i].number,&
wait[i].telephonenumber);
}
fclose(fp);
}
for(i=0;
10;
{printf_one(i);
printf("
if((fp=fopen("
for(i=0;
/*若等待,就用文件的方式列出当时的等待列表并提示输入你的等待序号和联系方式*/
Inputthenumberofthecomputeragain!
y);
sum[T]--;
com
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房 机位 预约 模拟 系统 语言 课程设计
