酒店住房信息管理系统doc 34页Word下载.docx
《酒店住房信息管理系统doc 34页Word下载.docx》由会员分享,可在线阅读,更多相关《酒店住房信息管理系统doc 34页Word下载.docx(27页珍藏版)》请在冰豆网上搜索。
进入程序后,根据输入操作,执行相应的读入、查询、排序、增加、删除、显示当前信息、保存、显示平均成绩、退出等功能,并在屏幕上输出。
酒店信息管理系统
登记入住
查询当前费用
查询房间入住
结账退房
帮助说明
关于
退出
图2酒店住房信息管理系统的总体结构图
2.界面设计
如图3,下面的Choose:
表示通过选择1、2、3、4、5、6、0等来进入各项功能,从而实现程序对信息的管理。
图3管理信息界面
3.输入方式设计
此程序为dos下程序,因此简化为键盘控制。
1、2、3、4、5、6、0分别表示各项功能。
回车表示确认进入各个程程序;
主页面开始之后,键入:
4.重要数据的数据结构设计
酒店住房信息管理系统结构
typedefstructtmtm;
/*structtm命名为tm*/
typedefstructnode/*把struct命名为node*/
{
void*elem;
/*无类型指针类型成员*/
structnode*next;
/*指针类型成员存放*/
}node_t;
/*指针地址*/
typedefstructroom/*房间结构*/
introom_number;
/*房间号*/
Boolroom_is_used;
/*房间已使用*/
Typeroom_kind;
/*房间种类*/
charguest_name[20];
/*客人姓名*/
charguest_Id[19];
/*省份证号*/
doubleroom_price;
/*房间价格*/
tm*start_time;
/*入住时间*/
tm*end_time;
/*退房时间*/
doubletotal_cost;
/*合计消费金额*/
}room_t;
5.函数设计
文件中函数的功能如下:
文件名
函数原型
函数功能
“filemenu.c”
voidwelcome()
显示欢迎页面
voidmenu()
主菜单页面
voidlocateposition();
定位光标
voidanimal();
显示一个小动画
voidanimation();
显示另一动画
voidmenu();
菜单项
voidgoodbai()
完成时退出程序
voidpriceinfo()
显示房间价格
四、关键技术、难点及其解决方法
此程序的关键是是否有保存功能,而且是保存把信息保存到文件中后退出程序,当再次进入程序是是否能查找到上次登陆是录入的信息,还有就是当系统要查找、删除信息是如何确定程序中是否有你要查找、删除的信息,来验证系统中是否存在所要的信息。
五、测试方法
1.按键测试。
检查正确的输入时,是否界面正确表现;
错误输入时,是否无效。
2.程序运行测试。
正确运行,观察是否异常;
运行时中断,程序是否正确退出。
六、总结
通过这次课程设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。
对一些基础知识有了更规范的认识。
让我理解到结构化设计相关知识在实际方面的应用的操作,让我更深刻理解的“自顶向下,逐步细化的”思想;
模块设计,多个函数并用;
代码的重要性及注释的关键性。
使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。
此外,我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。
同时,也要感谢我的指导老师和同学们在本系统的设计过程中给予我的支持和帮助。
附1、使用说明:
1.功能说明.
此程序分为7个选项,分别是登记入住、查询房间入住、查询当前费用、查询当前费用、结账退房、帮助说明、关于、退出等功能,当选1时是进入登记入住功能,2是进入查询房间入住功能,3是进入查询当前费用功能,4是结账退房功能、5是显示帮助说明功能、6是显示关于的信息功能,0是退出系统功能。
2.用户手册.
.显示主菜单后键入数字:
附2、代码清单
*****************************************************************
●“filemenu,c”*
#include<
stdio.h>
stdlib.h>
time.h>
math.h>
conio.h>
ctype.h>
string.h>
windows.h>
#defineROOM_MAX100
#defineTYPE_NUM4
#defineWIDTH80
#defineHIGH25
typedefenum{False,True}Bool;
typedefenum{Single,Standard,Vip,President}Type;
typedefstructnode
/*房间结构*/
typedefstructroom
voidwelcome();
voidlocate_position();
voidanimation(intx);
voidgoodbye();
node_t*list_init();
node_t*list_add(node_t*head,void*elem);
node_t*list_del(node_t*head,node_t*dest);
node_t*list_for_each(node_t*head,
void*(*func)(node_t*head,node_t*cur,void*arg),
void*arg);
node_t*list_reverse(node_t*head);
voidlist_destory(node_t*head);
void*mprint(node_t*head,node_t*cur,void*arg);
void*madd(node_t*head,node_t*cur,void*arg);
void*mdel(node_t*head,node_t*cur,void*arg);
voidroom_add(node_t*head,room_thotal[TYPE_NUM][ROOM_MAX]);
voidroom_del(node_t*head);
voidprice_info();
intincrease_two(inti);
doubleprice_of_room(Typekind);
char*Type_to_string(Typekind);
char*Bool_to_string(Bool_bool_);
room_t*get_first_room(room_thotal[ROOM_MAX],Typekind);
/**
*increase_two
*
*@i要自增的数
*调用一次增加2
*/
intincrease_two(inti)
returni+2;
}
*price_of_room
*@kind房间类型
*根据房间的类型得到房间的单价
doubleprice_of_room(Typekind)
returnpow(2,(int)kind)*100;
*定位光标
*@x要定位的列数
*@y要定位的行数
*无返回值
*
*调用API,定位光标位置,比用空格,Tab,回车定位方便许多
voidlocate_position(intx,inty)
COORDC;
C.X=x;
C.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),C);
*welcome
*显示欢迎界面(总菜单界面的大部分内容)
*列出用户可进行的操作
*每次任务完成后,再次调用些界面
intposition=4;
locate_position(25,3);
printf("
酒店房间登记与计费管理系统"
);
locate_position(30,position=increase_two(position));
1:
登记入住"
2:
查询房间入住"
3:
查询当前费用"
4:
结账退房"
5:
帮助说明"
locate_position(30,posit