数据结构题目:酒店客房管理系统专业:班级:姓名学号:实训时间:实训地点:成绩:详细设计说明书目录引言 (3)1.1编写目的 (3)1.2项目背景 (3)2.总体设计 (4)2.1需求概述 (4)2.2软件结构 (4)2 3.程序描述 (5)3 .详细设计 (5)3.2性能 (6)3.3输入项目 (6)3.4输出项目 (6)3.5算法 (6)3.6程序逻辑 (6)3.7 界面浏览 (7) (7)引言1.1编写目的完成期中考试作业1.2项目背景酒店客房管理系统主要功能:前台操作:包括开房登记、退房结账和房状态查看预订管理:包括预订房间、预订入住和解除预订信息查询:包括在住客人列表、预订客人列表报表统计:包括开房记录统计、退房结账和预订房间统计完成提示:(1)住店情况记录在住店管理表中:客人姓名、房号、入住时期、预计离开日期、结账离开日期、应付金额(2)每个房间的使用情况记录在房间信息表中:房号、价格、押金、房状态(空,入住)(3)预定情况记录在预订情况表中:客人姓名、房号、入住日期、预计离开日期(4)数据存在文件中2.总体设计2.1需求概述1.客房预定系统客房预定预定未到处理预售查询预定系统可随时查询酒店客房预售一览表,及可售房间数,可查询某间客房预定情况。
2.前台接待系统入住登记预定客房查询可售客房查询3.前台收银系统记帐退房押金加入查帐客人信息查询动态房态查询房间明细帐查询收银员报表当日入住客人报表住店客单查询查询客房状态查询可售情况客房占用统计帐务查询万能查询报表输出2.2软件结构图 2. 系统总流程图表1:系统总流程数据字典2 3.程序描述3 .详细设计3.1备注 按照客人从住店、离店的过程将系统划分为预订、接待、取消预订和离店四个处理过程。
客人通过预订,也可直接到酒店登记住宿。
客人预订后,也可能取消预订。
表3: 个人预订数据字典 数据库1客人来店预订,服务员查询“客房预订信息表”,无空房则返回客人。
有客房则登记,并核对“客人黑名单”(进行消费而未付帐的客人名单)及“挂帐表”,无误后收取预订押金并记入“预订金入帐表”。
进行订房,将预订信息记入“客人预订信息表”,修改“客房预订信息表”的客房状态,给客人预订证明表。
预订完成。
3.2性能1.对数据对象类的确定2.对各类间关联的确定3.系统应提供客房的分类管理功能、4.系统在各功能模块的实现当中,提供多级分类检索和组合搜索3.3输入项目1.客房类型2.员工名或编号3.客房信息4.客房状态3.4输出项目1.客房类型表2. 客房信息表3.客房状态表3.5算法见后面3.6程序逻辑3.7 界面浏览3.5算法补充#include<stdio.h> #include<stdlib.h> #include<string.h>#include<time.h>//成员变量的声明int i,j,k,p=0;char temp[]=" ";int room[5][5];clock_t start;//成员方法的声明void init(){int x,y,z;for(x=0;x<5;x++){for(y=0;y<5;y++){room[x][y]=0;}}}void hotelTitle(){printf("\n-------酒店房间登记与计费管理系统----\n");printf("\t1.登记入住\n");printf("\t2.查询房间的入住情况\n");printf("\t3.查询当前费用\n");printf("\t4.结账退房\n");printf("\t5.退出程序\n");}void hotel_execute();void hotel_select();void hotel_outhotel();void outsystem();void hotel_total();int main(void){system("color f1");init();while(1){Loop:hotelTitle();printf("\n请选择:");j=scanf("%d",&k);if(j==0||k<1||k>5){printf("\n输入错误。
\n\t请输入所列出的选项。
\n\n 3 秒后刷新...Please Weit! Thanks\n"); fflush(stdin);system("cls");goto Loop;}else{switch(k){case 1:hotel_execute();break;case 2:hotel_select();break;case 3:hotel_total();break;case 4:hotel_outhotel();break;case 5:outsystem();return;default:printf("\n\t系统出错!请联系管理员!\n");//怕出现BUG return;}}fflush(stdin); //清空缓存}}//入住登记void hotel_execute(){int x,y,z;printf("请输入你要住本酒店多少层楼的住房?【1-5】");fflush(stdin);L:scanf("%d",&x);p=x;if(x>5){printf("不好意思本店没有该层楼房。
\n请重新选择:");goto L;}printf("请输入你要住第%d层的几号房间?【1-5】",x);fflush(stdin);LP:scanf("%d",&y);if(y>5){printf("不好意思该层楼并无该房间。
\n请重新选择:");goto LP;//无条件的回去 GOTO语句}if(x>2){//二层以上则100元一天printf("\n提示:该房是贵宾套房,100元一天\n");}else{printf("\n提示:该房是标准套房,50元一天\n");}if(room[x-1][y-1]==0)//判断该房已经入住room[x-1][y-1]=1;printf("\n谢谢您的光临,您已经成功登记。
\n您的信息如下:\n入住房间:%d-%d\n",x,y); start=clock();}else{printf("警告:该房已经有人入住...请换房入住哈。
\n");}}//查询住房信息void hotel_select(){int x,y,z;system("cls");//清空内容。
//以下没什么重要的。
就是控制输出格式printf("宾馆入住情况如下:");printf("\n|-------|--------|--------|--------|--------|--------|\n");printf("| |");for(x=1;x<=5;x++){printf("房间号 |");}printf("\n");for(x=0;x<5;x++){if(x==0){printf("|-------|--------|--------|--------|--------|--------|\n|第%d层 |",x+1); }else{printf("\n|-------|--------|--------|--------|--------|--------|\n|第%d层|",x+1);}for(y=0;y<5;y++){if(room[x][y]==0){printf("空%d-%d |",x+1,y+1);}else{printf("住%d-%d |",x+1,y+1);}if(y+1==5){if(x+1==1||x+1==2)printf(" 该层标间均50元");elseprintf(" 该层标间均100元");}}}printf("\n|-------|--------|--------|--------|--------|--------|\n");printf("\n住房信息:\n");for(x=0,z=0;x<5;x++){for(y=0;y<5;y++){if(room[x][y]!=0){z++;printf("\t%d-%d有人入住\n",x+1,y+1);}}}if(z==0){printf("\t现无人入住本酒店...\n");}}//结账void hotel_outhotel(){int x=0,y=0;printf("请输入您要结账退房的楼层编号?");scanf("%d",&x);printf("请输入该楼层退房的房间编号?");scanf("%d",&y);if(room[x-1][y-1]==1){room[x-1][y-1]=0;printf("\n\t房间%d-%d退房成功,再会。
\n",x,y);}else{printf("\n\t房间%d-%d退房失败。
\n\t\t原因:未入住,是空房,不需要退...再会。
\n",x,y); }}//查看价钱void hotel_total(){//在c语言中有专门处理系统时间,程序计时等等功能的库,即time.h//在time.h中函数clock_t clock( void )可以完成计时功能。
//这个函数返回从"开启这个程序进程"到"程序中调用clock()函数"时之间的CPU时钟计时单元(clock tick)数,//在MSDN中称之为挂钟时间(wal-clock)。
//其中clock_t是用来保存时间的数据类型,在time.h文件中,//我们可以找到对它的定义: #ifndef _CLOCK_T_DEFINED typedef long clock_t;//#define _CLOCK_T_DEFINED #endif 很明显,clock_t是一个长整形数。