宾馆客房管理系统说明书.doc

上传人:b****2 文档编号:1261574 上传时间:2022-10-19 格式:DOC 页数:34 大小:269.46KB
下载 相关 举报
宾馆客房管理系统说明书.doc_第1页
第1页 / 共34页
宾馆客房管理系统说明书.doc_第2页
第2页 / 共34页
宾馆客房管理系统说明书.doc_第3页
第3页 / 共34页
宾馆客房管理系统说明书.doc_第4页
第4页 / 共34页
宾馆客房管理系统说明书.doc_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

宾馆客房管理系统说明书.doc

《宾馆客房管理系统说明书.doc》由会员分享,可在线阅读,更多相关《宾馆客房管理系统说明书.doc(34页珍藏版)》请在冰豆网上搜索。

宾馆客房管理系统说明书.doc

*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2012年春季学期

数据结构课程设计

题目:

宾馆客房管理系统

专业班级:

姓名:

学号:

指导教师:

成绩:

目录

摘要 1

1. 采用类c语言定义相关的数据类型 2

2. 各模块的伪码算法 2

3. 函数的调用关系图 6

4. 调试分析 6

5. 测试结果 7

6. 源程序(带注释) 10

总结 15

参考文献 16

致谢 17

附件Ⅰ任务一源程序代码 18

摘要

为了实现酒店能够及时地录入客房和顾客信息,以备对客房的各项管理,实现顾客的定房、推房操作。

以简单,易读友好的界面面向用户,以易于理解的方式提醒用户如何操作。

该程序以菜单的形式清楚地展示在DOS环境下系统的各块的功能,当录入的住房和顾客信息需要修改,删除,查询等时如何进行操作。

该系统满足了客房管理的基本要求,以简单的思维方式展示界面,尽量满足用户的要求。

关键词:

信息管理

31

1.采用类c语言定义相关的数据类型

顾客类(person)的成员:

1、NO(顾客编号),int

2、Name(顾客姓名),char

3、ID(顾客身份证号),int

4、Intime(入住时间),int

5、Outtime(离开时间),int

6、Borrow(所住房间),int

房间类(room)的成员:

1、NO(房间编号),int

2、Price(住宿费),int

3、Level(房间等级),char

2.各模块的伪码算法

1)房间类

private:

intstate;

intNO//住房编号

intprice;//住宿费

charlevel[20];//级别

public:

Room(){}//构造函数

intgetstate(){returnstate;}

intgetNO(){returnNO;}//获取住房编号

intgetprice(){returnprice;}//获取住宿费

char*getlevel(){returnlevel}//获取房间级别

voidsetprice(intpri)//设置住宿费

voidsetlevel(charle[])//设置等级

voiddelroom(){state=1;}//删除

voidaddroom(intn,intpri,char*le)//增加房间

intborrowroom()//入住

voidretroom()//退房

voiddisp()//输出

2)房间数据类

classRDatabase

{

private:

inttop;//住房记录指针

Roomroom[Maxr];//住房记录

public:

RDatabase()//将book.txt读到book[]中

voidclear()//清除所有信息

intaddroom(intn,intprichar*le)//增加房间

Room*query(introomID)//查找住房

voidroomdata();//住房库维护

voiddisp()

~RDatabase()//析构函数,将book[]写到book.txt文件中

其中:

voidroomdata()实现对住房信息的增加,更改,删除,查找,显示,清除信息功能。

3)顾客类:

classPerson

{

private:

intstate

intNO//顾客编号

charname[20];//顾客姓名

longID//顾客身份证号

intborroom;//所住房间

intintime;//入住时间

intouttime;//离开时间

public:

Person(){}

intgetstate(){returnstate;}

intgetNO(){returnNO;}//获取顾客编号

char*getname(){returnname;}

intgetID(){returnID;}//获取顾客身份证号

intgetintime(){returnintime;}//获取入住时间

intgetouttime(){returnouttime;}//获取离开时间

voidsetname(charna[])//设置姓名

voidsetID(chari)//设置身份号

voidsetborroom(charbor)//设置预定房间

voidsetintime(charin)//设置入住时间

voidsetouttime(charout)//设置离开时间

voiddelroom(){state=1;}

voidaddperson(intn,char*na,longi,intin,intout,intbor)/增加顾客

voidborrowroom(introomID)//定房

intretroom(introomID)//退房

voiddisp()//显示信息

4)顾客数据类

classPDatabase

{

private:

inttop;//顾客记录指针

Personper[Maxp];//顾客记录

public:

PDatabase()//将reader.txt读到read[]中

voidclear()//清除所有顾客信息

intaddperson(intn,char*na,longi,intin,intout,intbor)//添加顾客时先查找是否存在

Person*query(intpersonNO)//按编号查找

Person*queryn(charpersonname[20])//按姓名查找

Person*queryi(intpersonID)//按身份证号查找

voiddisp()//显示信息

voidpersondata();//顾客数据操作

~PDatabase()//将read[]写到reader.txt文件中

其中voidpersondata()实现对顾客信息的增加,更改,删除,查找,显示,清除功能。

主模块

3.函数的调用关系图

菜单模块

退出

房间管理

查询浏览

顾客管理

4.调试分析

在显示顾客的所有信息时,只能同时显示住房的编号,不能同时把住房的所有信息显示。

顾客类和住房类之间没能很好的沟通。

在程序的严谨性和规范化上还不是很好。

按姓名查询的时候如果姓名一样,则只能显示一个,不能够将所有的信息都显示出来。

算法的时间复杂度:

时间复杂度为O(n).

5.测试结果

图1(登录界面)

图2(房间管理)

图3(顾客管理)

图4(按房间编号查询浏览)

图5(按顾客信息查询浏览)

图6(退房管理)

图7(退出界面)

6.源程序(带注释)

Person*query(intpersonno)//按编号查找

{

for(inti=0;i<=top;i++)

if(per[i].getNO()==personno&&

per[i].getstate()==0)

{

return&per[i];

}

returnNULL;

}

Person*queryn(charpersonname[20])//按姓名查找

{

for(inti=0;i<=top;i++)

if((strcmp(per[i].getname(),personname)==0)&&

per[i].getstate()==0)

{

return&per[i];

}

returnNULL;

}

Person*queryi(charpersonid[20])//按身份证号查找

{

for(inti=0;i<=top;i++)

if((strcmp(per[i].getID(),personid)==0)&&

per[i].getstate()==0)

{

return&per[i];

}

returnNULL;

}

voiddisp()

{

for(inti=0;i<=top;i++)

if(per[i].getstate()==0)

{

per[i].disp();

}

}

voidpersondata();

~PDatabase()//将read[]写到reader.txt文件中

{

fstreamfile("person.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(per[i].getstate()==0)

file.write((char*)&per[i],sizeof(per[i]));

file.close();

}

};

voidPDatabase:

:

persondata()

{

intchoice;

charpname[20];

intpno;

charpid[20];

intpin,pout,pbor;

Person*r;

while(choice!

=0)

{

cout<

cout<<"[顾客管理]"<

cout<<"1.->新增2.->更改3.->删除4.->清除数据0.->退出"<

cin>>choice;

switch(choice)

{

case0:

cout<<"已退出"<

break;

case1:

cout<<"输入顾客编号:

";

cin>>pno;

cout<<"输入顾客姓名:

";

cin>>pname;

cout<<"输入顾客身份证号:

";

c

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1