宾馆客房管理系统Word文档格式.docx

上传人:b****5 文档编号:19949434 上传时间:2023-01-12 格式:DOCX 页数:31 大小:43.73KB
下载 相关 举报
宾馆客房管理系统Word文档格式.docx_第1页
第1页 / 共31页
宾馆客房管理系统Word文档格式.docx_第2页
第2页 / 共31页
宾馆客房管理系统Word文档格式.docx_第3页
第3页 / 共31页
宾馆客房管理系统Word文档格式.docx_第4页
第4页 / 共31页
宾馆客房管理系统Word文档格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

宾馆客房管理系统Word文档格式.docx

《宾馆客房管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。

宾馆客房管理系统Word文档格式.docx

(三)问题分析:

1.设计主函数,以菜单的形式告诉用户系统的功能,以及输入0—4

号数字功能键实现所需的功能.

2.如何将各个功能集于一函数之下(用SWITCH)语句调用各函数).3.如何将大量信息简单方便地输入输出(利用类形式联系各种信

息,可设计顾客类、顾客类库,客房类、客房类库).4.如何实现功能函数的功能(可定义为类和类库中的成员函数).

可行性研究:

利用类的方式实现该编程,以对象的形式依次

编写各类的内容。

关键词:

浏览;

查询;

修改;

删除

2

前言

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

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

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

该系统满足了用户对客房管理的基本要求,以大众的思维方式将面向用户的界面展示,以最简单易读的程序面向用户,尽量满足用户的要求。

3

正文

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

顾客类的私有成员数据结构表

序成员名数据类长字段含义号(字段名)型度

1noint2编号2name[]char2姓名

0

3idchar2身份证号

4intimeint2入住时间5outtimeint2离开时间6borroomint2所住房间

数据测试表

nonidinoutbor

ametimetimeroom00张37132819870220010111

4

1强4526103

00王321545198603240202222雷2545208

00李130242198703210202233梅5454123

„„„.„„„„„„„.„.

„„„.„„„.„„„„..„.

„„„.„„„„..„„..„

2)(

住房类私有成员数据成员数据表

序成员名数据类长字段含义号型度

1noint2编号

2moneyint2住宿费

3dengji[]char2客房等级

4onshelfint2是否售出

5

3)数据测试表

nomoneydenOnshel

gjif

001300A已售

002200B未售

003100C未售

„„„„.„„.

„„

„„„„.„„..

„..

2.各模块的伪码算法

利用面向对象的方法,设计2个类(住房类和顾客类)及对应的

类库,来实现对客房和顾客的管理。

1)定义住房类:

private:

inttag;

//删除标记1:

已删0:

未删

intno;

//住房编号

intmoney;

//住宿费

6

chardengji[20];

//等级

intonshelf;

//是否售出1:

未售2:

已售

publid:

Room(){}//构造函数

intgettag(){returntag;

}//获取删除标记

intgetno(){returnno;

}//获取住房编号

intgetmoney(){returnmoney;

}//获取住宿费

char*getdengji(){returndengji;

}//获取住房等级

voidsetmoney(intmon)//设置住宿费

voidsetdengji(chardj[])//设置等级

voiddelroom(){tag=1;

}//删除房间

voidaddroom(intn,intmon,char*dj)//增加房间

intborrowroom()//入住操作

voidretroom()//退房操作

voiddisp()//输出住房

)住房库类,实现对住房的维护,查找,删除等2

classRDatabase

{

inttop;

//住房记录指针

Roomroom[Maxr];

//住房记录

public:

RDatabase()//构造函数,将book.txt读到book[]中

voidclear()//全删

intaddroom(intn,intmon,char*dj)//增加住房

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

voidroomdata();

//住房库维护

voiddisp()

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

其中:

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

全删功能。

3)定义顾客类:

classPerson

//删除标记1:

//顾客编号

charname[20];

//顾客姓名

longid;

//顾客身份证号

intborroom;

//所住房间

intintime;

//入住时间

intouttime;

//离开时间

Person(){}

intgettag(){returntag;

}//获取删除标记

intgetno(){returnno;

}//获取顾客编号

char*getname(){returnname;

}//获取姓名

intgetid(){returnid;

}//获取顾客身份证号

intgetintime(){returnintime;

}//获取入住时间

intgetouttime(){returnouttime;

}//获取离开时间voidsetname(charna[])//设置姓名voidsetid(chari)//设置身份号

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

8

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

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

}//设置删除标记1:

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

加顾客

voidborrowroom(introomid)//定房操作

intretroom(introomid)//退房操作

voiddisp()//读出顾客信息,通过循环将所有顾客信息都显示

4)顾客类库,实现建立顾客的个人资料

classPDatabase

//顾客记录指针

Personper[Maxp];

//顾客记录

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()实现对顾客信息的增加,更改,删除,查找,显示,

9

3.函数的调用关系图

1.1.该系统可以按功能进行模块划分,其模块图如下

主模块主模块

菜单模块

对对领退退

住顾取还出

房客房房管

的的间间理

操操钥钥程

作作匙匙序

1新增1新增

2更改2更改

3删除3删除

4查找4查找

5显示5显示

6全删6全删

0退出0退出

10

4.调试分析

a、调试中遇到的问题及对问题的解决方法

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

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

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

3(没有设置密码,顾客和管理员都能对其进行操作。

因此该系统最好只有管理员可见,顾客只是进行咨询,不能直接操作.

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

b、算法的时间复杂度和空间复杂度

时间复杂度为O(n).

空间复杂度

整个程序转为.C可执行后整体的空间复杂度为12.6kb.

5.测试结果

执行图示

11

如果选择1,则

例如:

继续选择5显示,则

如果选择2,则

12

选择3,则要求输入住房编号和顾客编号。

此项的目的是给住房设

置标记,以确定该住房已售出。

选择4,也要求输入住房编号和顾客编号。

置标记,以确定该住房未售出。

选择0,则退出程序。

6.源程序(带注释)

程序源代码及注释

#include<

iostream>

iomanip>

string>

13

fstream>

//输入/输出文件流类

usingnamespacestd;

constintMaxp=100;

//最多的顾客

constintMaxr=100;

//最多的房间

//顾客类,实现对顾客的信息的描述

charid[20];

char*getid(){returnid;

}//获取离开时间

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

strcpy(name,na);

}

14

voidsetid(chari[])//设置身份号

strcpy(id,i);

borroom=bor;

intime=in;

outtime=out;

voidaddperson(intn,char*na,char*i,intin,intout,intbor)//

增加顾客

no=n;

tag=0;

15

borroom=roomid;

return;

if(borroom==roomid)

borroom=0;

return1;

return0;

voiddisp()//读出顾客信息

cout<

<

"

顾客编号:

no<

顾客姓名:

name<

顾客身份证

号:

id<

入住时间:

intime<

离开时间:

outtime<

endl;

cout<

所住房间:

borroom<

};

//顾客类库,实现建立顾客的个人资料

16

Persons;

top=-1;

fstreamfile("

person.txt"

ios:

:

in);

//打开一个输入文件

while

(1)

file.read((char*)&

s,sizeof(s));

if(!

file)break;

top++;

per[top]=s;

file.close();

//关闭reader.txt

{

intaddperson(intn,char*na,char*i,intin,intout,intbor)//添

Person*p=query(n);

if(p==NULL)

per[top].addperson(n,na,i,in,out,bor);

17

for(inti=0;

i<

=top;

i++)

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

&

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

return&

per[i];

returnNULL;

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

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

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

18

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

per[i].disp();

~PDatabase()//析构函数,将read[]写到reader.txt文件中

out);

file.write((char*)&

per[i],sizeof(per[i]));

voidPDatabase:

persondata(){

charchoice;

charpname[20];

intpno;

charpid[20];

intpin,pout,pbor;

Person*r;

19

while(choice!

='

0'

\n\t\t对顾客的操作:

\n\n\n\t\t1新增

\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找

\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出

cin>

>

choice;

switch(choice)

case'

已退出"

break;

1'

"

输入顾客编号:

;

pno;

输入顾客姓名:

pname;

输入顾客身份证号:

cin>

pid;

请输入入住时间:

pin;

请输入离开时间:

pout;

请输入房间号:

pbor;

addperson(pno,pname,pid,pin,pout,pbor);

2'

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

当前位置:首页 > 成人教育 > 电大

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

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