C-课程设计·酒店管理系统Word文件下载.docx

上传人:聆听****声音 文档编号:324970 上传时间:2023-04-28 格式:DOCX 页数:21 大小:24.85KB
下载 相关 举报
C-课程设计·酒店管理系统Word文件下载.docx_第1页
第1页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第2页
第2页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第3页
第3页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第4页
第4页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第5页
第5页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第6页
第6页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第7页
第7页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第8页
第8页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第9页
第9页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第10页
第10页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第11页
第11页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第12页
第12页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第13页
第13页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第14页
第14页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第15页
第15页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第16页
第16页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第17页
第17页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第18页
第18页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第19页
第19页 / 共21页
C-课程设计·酒店管理系统Word文件下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C-课程设计·酒店管理系统Word文件下载.docx

《C-课程设计·酒店管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C-课程设计·酒店管理系统Word文件下载.docx(21页珍藏版)》请在冰点文库上搜索。

C-课程设计·酒店管理系统Word文件下载.docx

修改客房信息

删除客房信息

退出系统

图1

2.具体设计及截屏图

1、类的设计

根据上述需求分析,有客房类和链表类。

(1)客房类

系统研究客房cGuestroom类中成员:

ID[SIZE]是客房编号,Type[SIZE]是客房类型,Book[SIZE]是定房日期,Price[SIZE]是每间客房的价格,StayTime[SIZE]是定房的有效期,Function[SIZE]是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。

客房类的UML图如(图2)所示:

classcGuestroom

+ID[BUFSIZE]:

char//客房编号

+Type[BUFSIZE]:

char//客房类型

+Book[BUFSIZE]:

char//定房日期

+Function[BUFSIZE]:

char//客房内容

+StayTime:

int//定房有效期

+flay:

bool//标志

+cGuestroom()//构造函数初始化

图2

(2)链表类

在tList类中,有成员:

构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty()const,从尾部插入一个元素的函数Insert(constTe),返回第i个节点的函数GetcNode(inti),在链表中查询某个值的函数boolFind(constTe),析构函数~tList(),头节点head。

链表类的UML图如(图3)所示:

tList

+tList();

+Create():

void

+Empty()const:

bool

+Insert(conste:

T):

void

+*GetcNode(i:

int):

cNode<

T>

+Find(conste:

bool

+~tList();

+*head:

图3

2.界面设计:

(1)主界面的设计

主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩余客房的输出,客房信息管理系统如图4所示。

图4主界面

(2)分界面:

客房信息的录入的设计

提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。

客房信息录入如图5所示。

图5录入客房信息的分界面

(3)分界面:

客房信息的保存的设计

针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。

客房信息保存如图6所示。

图6保存客房信息的分界面

(4)分界面:

客房信息的修改的设计

提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。

客房信息修改界面如图7所示。

图7修改客房信息的分界面

(5)分界面:

客房信息的删除的设计

提示进入删除截面,根据客房编号查找所需删除的客房信息。

客房信息的删除界面如图8所示。

图8删除客房信息的分界面

(6)分界面:

剩余客房信息的查询的设计

在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。

查询剩余客房的信息界面如图9所示。

图9查询客房信息的分界面

(7)剩余客房信息的排序的设计

按提示进行剩余客房的排序,本系统中是以客人的入住天数排序,显示屏幕如图10所示。

(8)分界面:

剩余客房信息的输出的设计

在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。

剩余客房信息输出界面如图10所示。

图10输出剩余客房的信息

4.关键代码分析

(1)系统的登录

在主函数中,输出客房信息系统的各功能提示。

选择需要执行功能的序号,由switch判断和选择所需要执行的功能。

选择1:

执行客房信息的录入;

选择2:

执行保存客房的信息;

选择3:

执行教工基本信息的保存;

选择4:

执行教工基本信息的删除;

选择5:

执行教工工资按从高到低排序;

选择6:

执行教工基本信息的修改;

选择7:

执行教工基本信息的查询;

选择8:

退出;

主函数:

intmain()

{tList<

cGuestroom>

tListMedic;

tListMedic.Create();

//创建链表

ReadData(&

tListMedic);

while

(1)

{cout<

<

"

\n\n客房管理系统\n\n"

;

cout<

----------------------------------\n\n"

cout<

1.客房信息的录入\n\n"

2:

客房信息保存\n\n"

3.客房信息的修改\n\n"

4.客房信息的删除\n\n"

5.剩余客房信息的查询\n\n"

6.剩余客房信息的排序\n\n"

7.剩余客房信息的输出\n\n"

8.退出系统\n\n"

请选择:

intchoose=0;

cin>

>

choose;

switch(choose)//用户选择

{case1:

AddtheGuestroom(&

break;

//输入客房信息

case2:

SaveData(&

break;

//客房信息信息保存

case3:

ModifytheGuestroom(&

//修改客房信息

case4:

DeletetheGuestroom(&

//删除客房信息

case5:

FindtheremainGuestroom(&

//查询剩余客房信息

case6:

RanktheremainGuestroom(&

//排序剩余客房信息

case7:

OutputtheremainGuestroom(&

//输出剩余客房信息

case8:

exit(0);

//退出

default:

}

return0;

}

}

在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。

读取数据库:

voidReadData(tList<

*tListMedic)//读取数据库

{

charbuf[BUFSIZE];

ifstreamifile("

Guestroom.txt"

ios_base:

:

in);

//创建一个输出文件流对象

if(!

ifile)

{

cerr<

"

读取时打开文件出错!

<

endl;

}

cGuestroomGuestroom;

while(ifile.getline(buf,BUFSIZE))//遍历文本,读取数据

{

ifile.getline(buf,BUFSIZE);

strcpy(Guestroom.ID,buf);

//读取客房编号

memset(buf,0,BUFSIZE);

//读取客房类型

strcpy(Guestroom.Type,buf);

//读取提前定房日期

strcpy(Guestroom.Book,buf);

//读取价格

strcpy(Guestroom.Price,buf);

//读取客房主要内容

strcpy(Guestroom.Function,buf);

//读取入住有效期

Guestroom.StayTime=atoi(buf);

Guestroom.flag=true;

tListMedic->

Insert(Guestroom);

}

cout<

读取数据成功!

\n\n"

ifile.close();

//关闭文件

return;

(2)信息的添加

客房信息的录入,创建cGuestroom类和tempGuestroom对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过Insert函数实现。

voidAddtheGuestroom(tList<

*tListMedic)//输入客房函数

{cGuestroomtempGuestroom;

//定义临时客房

下面开始添加客房信息\n"

请输入入住的客房编号:

tempGuestroom.ID;

//读入客房编号

请输入客房类型:

tempGuestroom.Type;

//读入客房类型

请输入客人定房日期:

tempGuestroom.Book;

//读入定房日期

请输入客房价格:

tempGuestroom.Price;

//读入价格

请输入客房的主要内容:

tempGuestroom.Function;

//读入主要内容

请输入客房入住有效期:

tempGuestroom.StayTime;

//读入入住有效期

tempGuestroom.flag=true;

tListMedic->

Insert(tempGuestroom);

添加成功!

\n"

system("

pause"

);

cls"

(3)信息的删除

删除客房信息,按要求提示输入要删除客房的房间编号,定义一个指向链表第一个节点的指针p。

如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。

如果相同,输出该客房的信息并删除;

如果没有相同的,提示没有所查询的房间。

voidDeletetheGuestroom(tList<

*tListMedic)//删除客房信息

{charid[BUFSIZE];

\n请输入你要查找的客房编号:

id;

//读取客房编号

boolflag=false;

intcount=0;

cNode<

*p;

p=tListMedic->

head->

next;

while(p)

{if(strcmp(p->

data.ID,id)==0&

&

p->

data.flag)

{count++;

flag=true;

break;

p=p->

if(flag==false)cout<

对不起,你所查找的客房延长了住房日期!

//如果不能删

else//如果能删

{count--;

找到了,该客房的原始信息是:

\n\n客房编号:

(p->

data).ID<

\t客房类型:

data).Type<

\n\t\t定房日期:

data).Book<

\n\t\t价格:

data).Price;

\n\t\t客房的主要内容:

data).Function<

\n\t\t入住有效期:

data).StayTime;

endl;

(p->

data).flag=false;

该客房的信息删除成功!

(4)信息的修改

按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。

如果相同,提示输入房间的各个信息;

如果没有相同,提示没有所查询的客房。

voidModifytheGuestroom(tList<

*tListMedic)//修改客房信息

{charid[BUFSIZE];

cout<

cin>

//读取客房编号

{if(strcmp(p->

{flag=true;

p=p->

if(flag==true)

{cout<

\n下面开始修改该客房的信息:

cGuestroomtempGuestroom;

请输入客房的客房编号:

cin>

请输入客房的客房类型:

请输入客人的定房日期:

请输入客房的客房价格:

//读入价格

请输入客房的客房主要内容:

//读入客房的主要内容

请输入客人入住客房有效期:

//读入入住有效期

tempGuestroom.flag=true;

p->

data=tempGuestroom;

修改成功!

5.测试

程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

原程序:

voidRanktheremainGuestroom(tList<

*tListMedic)//排序剩余客房

{cNode<

*p,*q;

cGuestroomremainGuestroom;

for(p=tListMedic->

p!

=NULL;

p=p->

next)

{ for(q=p;

q!

q=q->

{if(p->

data.Price>

q->

data.Price)

{remainGuestroom.flag=p->

data.flag;

strcpy(remainGuestroom.ID,p->

data.ID);

strcpy(remainGuestroom.Type,p->

data.Type);

strcpy(remainGuestroom.Book,p->

data.Book);

strcpy(remainGuestroom.Price,p->

data.Price);

strcpy(remainGuestroom.Function,p->

data.Function);

remainGuestroom.StayTime=p->

data.StayTime;

p->

data.flag=q->

strcpy(p->

data.Function,q->

data.ID,q->

data.Type,q->

data.Book,q->

data.StayTime=q->

q->

data.flag=remainGuestroom.flag;

strcpy(q->

data.Function,remainGuestroom.Function);

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2