ktv订房管理系统.docx

上传人:b****5 文档编号:7177335 上传时间:2023-01-21 格式:DOCX 页数:33 大小:53.68KB
下载 相关 举报
ktv订房管理系统.docx_第1页
第1页 / 共33页
ktv订房管理系统.docx_第2页
第2页 / 共33页
ktv订房管理系统.docx_第3页
第3页 / 共33页
ktv订房管理系统.docx_第4页
第4页 / 共33页
ktv订房管理系统.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

ktv订房管理系统.docx

《ktv订房管理系统.docx》由会员分享,可在线阅读,更多相关《ktv订房管理系统.docx(33页珍藏版)》请在冰豆网上搜索。

ktv订房管理系统.docx

ktv订房管理系统

一、需求与功能分析3

二、系统总体框架3

三、模块设计与分析3

四、类的设计与分析3

五、特色算法分析9

六、功能测试18

七、存在的不足与对策23

八、程序源代码24

一.需求与功能分析

鉴于许多年轻人都喜欢在空余时间去KTV唱K,许多朋友一起在K房里面把一段时间的烦恼都通过唱歌发泄出来,所以开发出这款软件,希望可以给KTV的管理人员提供方便。

此软件包括了订房,退房,查询,修改功能。

在订房过程中需要提供用户的姓名,联系方式等,而退房时则只要求提供用户名或房号。

二.系统总体框架

三.模块设计与分析

1、预订

预订方面包括了预订KTV房间所需要的信息,包括姓名,联系方式,人数,时间段,房间类型,并会根据选择的信息计算出花费和生成房号,而且房号会根据搜索数据库,保证没有重复的房号。

2、查询

查询功能可以通过输入姓名进行姓名查询,或者输入房号,查询房号。

查询的结果会通过高亮在表中显示,并会在相应的对话框显示出来。

3、修改

修改功能可以通过修改预订用户的资料来更改房间的预订情况。

4、退订

退订功能也可以通过输入姓名来进行退订,或者通过输入房号来退订。

四.类的设计与分析

1、CABOUT类:

CDialog

CABOUT

这个类是为关于对话框建立的类,

classCABOUT:

publicCDialog

{

protected:

afx_msgvoidOnButtonBack();

};

名称

属性

说明

CABOUT()

构造函数

进行初始化工作

2、CADD类

这个类是为预订对话框建立的类,完成一些必要的信息添加工作

classCADD:

publicCDialog

{

public:

intVipRoom;

intBigRoom;

intMediumRoom;

intSmallRoom;

CStringRoomNum;

CStringFood;

inttime;

CStringTimePeriod;

CStringRoomType;

intPeoNum;

CEditm_EnterTime;

CComboBoxm_PeoNum;

intm_Cost;

CStringPeopleNum;

CStringm_Name;

CStringm_Phone;

intm_RoomNum;

intm_Food;

intm_RoomType;

intm_Time;

protected:

afx_msgvoidOnSelchangeComboPeonum();

afx_msgvoidOnRadioEntertime();

afx_msgvoidOnRadioTime1();

afx_msgvoidOnRadioTime2();

afx_msgvoidOnButtonCancel();

afx_msgvoidOnChangeEditEdittime();

virtualvoidOnOK();

afx_msgvoidOnButton1();

};

名称

属性

说明

VipRoom

数据成员

Int类型变量,用来存储从数据表中取出的房号改变后的值

BigRoom

数据成员

同上

MediumRoom

数据成员

同上

SmallRoom

数据成员

同上

RoomNum

数据成员

CString类型变量用来存储房间号码

Food

数据成员

CString变量,用来存储自助餐的有无

time

数据成员

Int类型的变量,用来获取输入框中的时间,以便用来计算花费

TimePeriod

数据成员

CString类型变量,用来存储时间段

RoomType

数据成员

Int类型变量,用来判断选中哪一类房间

PeoNum

数据成员

CString类型变量,用来存储人数

CADD()

成员方法

构造函数,进行一些初始化工作

m_EnterTime

数据成员

输入时间框关联的变量

m_PeoNum

数据成员

人数组合框关联的变量

m_Cost

数据成员

花费对话框关联的变量

PeopleNum

数据成员

把PeoNum格式化成字符串

m_Name

数据成员

CString变形,姓名对话框关联的变量

m_Phone

数据成员

CString类型变量,联系方式对话框关联的变量

m_RoomNum

数据成员

Int类型变量,房号对话框关联和变量

m_Food

数据成员

Int类型变量,用来判断用户选中自助餐的有无

m_RoomType

数据成员

Int类型变量,用来判断用户选中房间的类型

m_Time

数据成员

Int类型变量,用来判断用户选中的时间段

OnSelchangeComboPeonum()

成员方法

当人数选择框内的选择变化时触发的事件

OnRadioEntertime()

成员方法

当选中按小时计算时,后面的编辑框可编辑,此事件中包含了设置后面编辑框可编辑的代码

OnRadioTime1()

成员方法

当选中第一个时间段时,编辑框不可编辑,此事件中包含了设置后面编辑框不可编辑的代码

OnRadioTime2

成员方法

当选中第二个时间段时,编辑框不可编辑,此事件中包含了设置后面编辑框不可编辑的代码

OnButtonCancel()

成员方法

退出预订

OnChangeEditEdittime()

成员方法

设置编辑框的最大输入长度

OnOK()

成员方法

当点返回时触发的事件

OnButton1()

成员方法

当点击预订时触发的事件

3、CCANCEL

CDialog

CCANCEL

classCCANCEL:

publicCDialog

{

public:

CEditm_RoomNum;

CEditm_Name;

intm_SearchType;

CStringm_RoomN;

CStringm_Nam;

protected:

afx_msgvoidOnButtonExit();

afx_msgvoidOnRadioRoomNum();

afx_msgvoidOnRadioName();

virtualvoidOnOK();

};

名称

属性

说明

CCANCEL()

构造函数

完成一些初始化工作

m_RoomNum

数据成员

CEdit类型的变量,用来关联房号输入框

m_Name

数据成员

CEdit类型的变量,用来关联姓名输入框

m_SearchType

数据成员

Int类型的变量,用来关联删除类型的单选框

m_RoomN

数据成员

CString类型的变量,用来存放输入的房号

m_Nam

数据成员

CString类型变量,用来存放输入的姓名

OnButtonExit()

成员方法

点击退出时触发的事件

OnRadioRoomNum()

成员方法

选中的是按房号来退订时触发的事件

OnRadioName()

成员方法

选中的是按姓名来退订时触发的事件

OnOK()

成员方法

当按退订时触发的事件

4、

CDialog

CKTVBookSystemDlg

CKTVBookSystemDlg

classCKTVBookSystemDlg:

publicCDialog

{

public:

voidCancelBook();

intVipRoom;

intBigRoom;

intMediumRoom;

intSmallRoom;

_variant_tvar;

voidAddBook();

voidLinkDataBase();

//添加一个指向Recordset对象的指针

_RecordsetPtrm_pSet;

//添加一个指向Connection对象的指针

_ConnectionPtrm_pConnection;

CEditm_RN;

CEditm_N;

CListCtrlm_RoomInfo;

CStringm_Time;

CStringm_RoomType;

CStringm_RoomNum;

CStringm_Phone;

CStringm_PeoNum;

CStringm_Name;

CStringm_Food;

intm_SearchType;

CStringm_NAME;

CStringm_ROOMNUM;

protected:

afx_msgvoidOnMenuitemBook();

afx_msgvoidOnMenuitemCancel();

afx_msgvoidOnMenuitemExit();

afx_msgvoidOnMenuitemAbout();

afx_msgvoidOnRadioName();

afx_msgvoidOnRadioRoomnum();

afx_msgvoidOnButtonSearch();

afx_msgvoidOnClose();

afx_msgvoidOnButtonCancel();

};

名称

属性

说明

CancelBook()

成员方法

退订房间的函数,实现退订房间所要执行的操作

VipRoom

数据成员

Int类型临时变量,存放VIP房号,以便确定下一个分配的VIP房号

BigRoom

数据成员

Int类型临时变量,存放大房号,以便确定下一个分配的大房号

MediumRoom

数据成员

Int类型临时变量,存放中房号,以便确定下一个分配的中房号

SmallRoom

数据成员

Int类型临时变量,存放小房号,以便确定下一个分配的小房号

var

数据成员

容器,存放从数据库中取出的数据

AddBook()

成员方法

预订的函数,实现预订房间所要执行的操作

LinkDataBase()

成员方法

连接数据库函数,在这里实现连接数据库

CKTVBookSystemDlg()

成员方法

构造函数,完成初始化工作

m_pSet

数据成员

数据库指针,指向数据库中的数据

m_pConnection

数据成员

数据库指针,用来连接数据库

m_RN

数据成员

CEdit类型临时变量,用来存储房号

m_N

数据成员

CEdit类型临时变量,用来存储姓名

m_RoomInfo

数据成员

CString类型,列表控件关联的变量

m_Time

数据成员

CString类型,时间段编辑框联系的变量

m_RoomType;

数据成员

CString类型,房间类型编辑框关联的变量

m_RoomNum

数据成员

CString类型,房号编辑框关联的变量

m_Phone

数据成员

CString类型,联系方式编辑框关联的变量

m_PeoNum

数据成员

CString类型,人数编辑框关联的变量

m_Name

数据成员

CString类型,姓名编辑框关联的变量

m_Food

数据成员

CString类型,自助餐编辑框关联的变量

m_SearchType

数据成员

Int类型,判断用户选中的查询方式

m_NAME

数据成员

CString类型,查询中的编辑框中姓名编辑框关联的变量

m_ROOMNUM

数据成员

CString类型,查询中的编辑框中房号编辑框关联的变量

OnMenuitemBook()

成员方法

选中菜单中的预订时触发的事件

OnMenuitemCancel()

成员方法

选中菜单中的退订时触发的事件

OnMenuitemExit()

成员方法

选中菜单中的退出时触发的事件

OnMenuitemAbout()

成员方法

选中菜单中的关于时触发的事件

OnRadioName()

成员方法

当选中按姓名时,触发的事件

OnRadioRoomnum()

成员方法

当选中按房号时,触发的事件

OnButtonSearch()

成员方法

当单击查询时触发的事件

OnClose()

成员方法

关闭数据库的连接

OnButtonCancel()

成员方法

点击主界面上的退出时触发的事件

五.特色算法分析

1、CADD类的OnButton1()

功能:

实现了单击预订时自动生成花费和自动分配房号,免去了手工计算花费的麻烦。

算法思路:

CADD类是预订对话框所关联的类,预订对话框包括了预订一间房间所必要的一些信息的录入,包括姓名,联系方式,人数,时间,自助餐的选择,房间类型等的选择,当用户输完这些信息后,系统会取得这些信息,然后根据这些信息和KTV的算费,自动计算出此次订房的花费。

流程图:

输入订房的基本资料

取得人数组合框上选择的人数

判断选中的时间,以赋给时间段

判断选中的房间类型,并赋给RoomType,以便插入数据库

 

判断选中自助餐的情况,并赋给Food,以便插入数据到数据库

输入姓名和联系方式

弹出信息“请输入完整信息”

N

需要自助餐

计算花费并输出到花费编辑框中

计算花费并输出到花费编辑框中

生成房间号码

结束

Y

N

Y

 

voidCADD:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

PeoNum=m_PeoNum.GetCurSel()+2;//计算人数,由于人数2开始,所以要加2

PeopleNum.Format("%d",PeoNum);//把人数转化成字符串型

switch(m_Time)//判断选中哪个按钮

{

case0:

//选中第一个时,设置时间段TimePeriod为"11:

00-16:

00"

TimePeriod="11:

00-16:

00";

break;

case1:

//选中第二个时,设置时间段TimePeriod为"16:

30-20:

30"

TimePeriod="16:

30-20:

30";

break;

case2:

//选中第三个时,从输入框中选取文本

m_EnterTime.EnableWindow(TRUE);//使输入框可用

m_EnterTime.GetWindowText(TimePeriod);//从输入框中取得文本

time=atoi(TimePeriod);//把字符串转化成整形以便计算

break;

}

switch(m_RoomType)

{

case0:

RoomType="小房";//选中第一个按钮时,RoomType赋值为小房

break;

case1:

RoomType="中房";//选中第二个按钮时,RoomType赋值为中房

break;

case2:

RoomType="大房";//选中第三个按钮时,RoomType赋值为大房

break;

case3:

RoomType="VIP房";//选中第四个按钮时,RoomType赋值为VIP房

break;

}

switch(m_Food)//判断选中哪个按钮

{

case0:

//选中第一个时,设置自助餐Food为"有"

Food="有";

break;

case1:

//选中第二个时,设置自助餐Food为"无"

Food="无";

break;

}

if(m_Name==""||m_Phone=="")//如果姓名或联系方式一样为空时,弹出提示信息

{

MessageBox("请输入完整信息!

","温馨提示",MB_OK);

SetDlgItemText(IDC_EDIT_COST,"0");

}

else

{

switch(m_Food)

{

case0:

//需要自助餐时的花费

if(m_Time==0&&m_RoomType==0)//选中11:

00-16:

00这段时间且选中小房时的花费

{

m_Cost=50*5+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==1)//选中11:

00-16:

00这段时间且选中中房时的花费

{

m_Cost=70*5+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==2)//选中11:

00-16:

00这段时间且选中大房时的花费

{

m_Cost=100*5+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==3)//选中11:

00-16:

00这段时间且选中VIP房时的花费

{

m_Cost=200*5+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==0)//选中16:

30-20:

30这段时间且选中小房时的花费

{

m_Cost=50*4+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==1)//选中16:

30-20:

30这段时间且选中中房时的花费

{

m_Cost=70*4+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==2)//选中16:

30-20:

30这段时间且选中大房时的花费

{

m_Cost=100*4+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==3)//选中16:

30-20:

30这段时间且选中VIP房时的花费

{

m_Cost=200*4+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==2&&m_RoomType==0)//自己输入时间且选中小房时的花费

{

m_Cost=50*time+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==2&&m_RoomType==1)//自己输入时间且选中中房时的花费

{

m_Cost=70*time+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==2&&m_RoomType==2)//自己输入时间且选中大房时的花费

{

m_Cost=100*time+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==2&&m_RoomType==3)//自己输入时间且选中VIP房时的花费

{

m_Cost=200*time+PeoNum*30;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

break;

case1:

//不需要自助餐时的花费

if(m_Time==0&&m_RoomType==0)//选中11:

00-16:

00这段时间且选中小房时的花费

{

m_Cost=50*5;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==1)//选中11:

00-16:

00这段时间且选中中房时的花费

{

m_Cost=70*5;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==2)//选中11:

00-16:

00这段时间且选中大房时的花费

{

m_Cost=100*5;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==0&&m_RoomType==3)//选中11:

00-16:

00这段时间且选中VIP房时的花费

{

m_Cost=200*5;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==0)//选中16:

30-20:

30这段时间且选中小房时的花费

{

m_Cost=50*4;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==1)//选中16:

30-20:

30这段时间且选中中房时的花费

{

m_Cost=70*4;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==2)//选中16:

30-20:

30这段时间且选中大房时的花费

{

m_Cost=100*4;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,TRUE);

}

elseif(m_Time==1&&m_RoomType==3)//选中16:

30-20:

30这段时间且选中VIP房时的花费

{

m_Cost=200*4;

SetDlgItemInt(IDC_EDIT_COST,m_Cost,

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

当前位置:首页 > PPT模板 > 其它模板

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

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