C语言旅馆管理系统1Word格式.doc
- 文档编号:15403482
- 上传时间:2022-10-30
- 格式:DOC
- 页数:32
- 大小:335KB
C语言旅馆管理系统1Word格式.doc
《C语言旅馆管理系统1Word格式.doc》由会员分享,可在线阅读,更多相关《C语言旅馆管理系统1Word格式.doc(32页珍藏版)》请在冰豆网上搜索。
七、总结·
(30)
一、题目要求
要求编写一个旅馆客房管理系统,系统包括新用户登录功能、统计功能、查询功能、修改功能。
建立如下结构体:
structClient{
charname[20];
intsex;
intage;
charID_card[20];
//身份证号码;
intyear;
intmonth;
intdate;
//居住时间;
};
structHotel{introom_ID;
//房间号;
inttel;
intprice;
intsign;
//标记房间是否为空;
structClientClient_list;
//实现结构体的嵌套;
}sum[N];
二、需求分析
根据题目要求,房间信息数据存放在一个文本文件中;
通过文件的输入和输出来实现新用户登录、统计、查询、修改等各项功能;
且各项功能能独立完成,不受其它工程是否完成的影响;
程序中应设有主菜单函数,通过主菜单函数可以调用各个功能函数,各个功能函数操作完成后可以回到主菜单,等待下一个操作;
还应设有菜单选项,能通过键盘操作实现选择;
同时,应有通道退出程序;
三、总体设计
通过分析,整个系统应包括以几个模板:
登录模板enter、统计模板count、查询模板search、修改模板modify、离开模板leave、退出。
系统功能模块图
客房管理系统
统计模板count
查询模板search
修改模板modify
离开模板leave
退出
登录模板enter
主菜单函数menu
四、详细设计
1、主函数main
通过主函数,可以实现数据赋初值,函数的原形声明,为以后的操作做准备。
[流程图]
N
变量i加1
Y
是否新建数据库
数据赋初值
用fwrite向文件写入数据
新建file.txt是否成功
读取file.txt是否成功
输出错误信息
用fread从文件读入数据
判断是否读完
判断是否写完
判断i是否小于房间数N
判断房间是否有人
Left--
调用住菜单函数menu
关闭文件
进入系统
[程序]
main()
{inti;
charc;
FILE*fp;
voidmenu();
voidenter();
voidcount();
voidsearch();
voidmodify();
voidleave();
printf("
\n\n\n\n\t-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"
);
\n\n\n\t\tWelcometothesystermofhotelmanagement!
!
\n\n\n"
\t-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n\n\n"
\t\tAreyougoingtonewthefile:
(y/n)\tIchoose[]\b\b"
scanf("
%c"
&
c);
if(c=='
y'
)
{for(i=0;
i<
N;
i++)
{sum[i].room_ID=i+1;
sum[i].tel=800+i;
sum[i].price=100;
sum[i].sign=0;
}
if((fp=fopen("
file.txt"
"
w"
))==NULL)
{printf("
\nCannotopenthefile!
\n"
exit(0);
}
for(i=0;
fwrite(&
sum[i],sizeof(structHotel),1,fp);
}
else{if((fp=fopen("
r"
{printf("
for(i=0;
fread(&
if(sum[i].sign)left--;
fclose(fp);
menu();
2、主菜单函数menu
为了使系统执行完没部分功能模快后能通过调用函数方便的返回到系统界面,设次函数。
同只这个函数中能设置了各个功能的入口。
显示一系列的功能选项
输入n,判断n是否1-6之内
调用enter函数
调用count函数
调用search函数
调用modify函数
调用leave函数
voidmenu()
{intn,a;
do{printf("
\n\n\n\n\t*************************MENU*****************************\n\n"
printf("
\t\t\t\t1.Newcustomer\n"
\t\t\t\t2.Countrooms\n"
\t\t\t\t3.Searchroom\n"
\t\t\t\t4.Modifycustomer\n"
\t\t\t\t5.Leave\n"
\t\t\t\t6.Exit\n\n"
\t**********************************************************\n\n"
Youchoosenumber(1-6)[]\b\b"
scanf("
%d"
n);
if(n<
1||n>
6)
{a=1;
printf("
\nWrongnumber!
\n\nPrintanykeytocontinue...\n"
getch();
elsea=0;
}while(a==1);
switch(n){case1:
enter();
break;
case2:
count();
case3:
search();
case4:
modify();
case5:
leave();
case6:
}
3、登录模板enter
此模块用于新用户的登录,在此模块中要求输入新用户的姓名、性别,年龄,身份证号,入住时间。
并将数据存入名为file.txt的文件中。
打开file.txt文件是否成功
开始
从文件中读如数据
输入想租用的房间号e
判断e是否在1-N之内
判断n房间是否被占用
输入新用户信息
是否保存
输出错误房间号
输出该房间以被占用
向文件输出数据
输出保存成功,并输出结果,left--
是否还需要房间
调用主菜单函数
voidenter()
{FILE*fp;
charc;
inti,t=0;
inte;
clrscr();
do
{if((fp=fopen("
{printf("
printf("
\n\nWhichroomareyougoingtorent:
(1-%d)Room[]\b\b"
N);
scanf("
e);
if(e>
=1&
&
e<
=N)
{e--;
if(sum[e].sign==0)
{
printf("
\nPleaseinputyourname:
"
scanf("
%s"
sum[e].Client_list.name);
printf("
\n\tsex:
(1standsforF,2standsforM)"
\n\t%d"
sum[e].Client_list.sex);
\n\tage:
sum[e].Client_list.age);
\n\tID_card:
sum[e].Client_list.ID_card);
\n\tdate(yearmonthdate):
scanf("
%d%d%d"
sum[e].Client_list.year,&
sum[e].Client_list.month,&
sum[e].Client_lis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 旅馆 管理 系统