宾馆实时管理系统数据库课设.docx

上传人:b****9 文档编号:25026525 上传时间:2023-06-04 格式:DOCX 页数:51 大小:2.24MB
下载 相关 举报
宾馆实时管理系统数据库课设.docx_第1页
第1页 / 共51页
宾馆实时管理系统数据库课设.docx_第2页
第2页 / 共51页
宾馆实时管理系统数据库课设.docx_第3页
第3页 / 共51页
宾馆实时管理系统数据库课设.docx_第4页
第4页 / 共51页
宾馆实时管理系统数据库课设.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

宾馆实时管理系统数据库课设.docx

《宾馆实时管理系统数据库课设.docx》由会员分享,可在线阅读,更多相关《宾馆实时管理系统数据库课设.docx(51页珍藏版)》请在冰豆网上搜索。

宾馆实时管理系统数据库课设.docx

宾馆实时管理系统数据库课设

1系统需求

1.:

根据宾馆管理系统的理念,宾馆管理系统必须满足一下需要:

(1)具有方便的登记、结帐功能和预订客房的功能,能够支持团体登记和团体结帐;

(2)能快速、准确地了解宾馆内的客房状态,以便管理者决策;

(3)提供多种手段查询客人的信息;

(4)具备一定的维护手段,有一定权利的操作员在密码的支持下才可以更改房价、房间类型、

增减客房;

(5)完善的结帐报表系统;

(6)系统维护:

如数据安全管理(含备份与恢复)、操作员管理、权限设置等。

根据系统的需求分析,得到本系统的功能要求如下:

功能需求

1.系统管理:

管理登陆系统的用户

2.订房信息的管理:

管理订房信息,对订房信息进行查询和添加新的订房信息。

3.基础数据库管理:

设置房的基本属性,如等级,价格等。

4.顾客信息管理:

管理顾客的信息,查询居住记录等。

性能需求

(1)硬件环境:

处理器:

IntelPentium4或更高

内存:

256M或更高

硬盘:

40G或更高

(2)软件环境

操作系统:

Windows2000/XP/Vista;

支持软件:

MicrosoftSQLSever2000,VisualC++6.0。

系统概述

有需求分析,要完成本系统的运行,需要的是客户机/服务器的运行方式。

采用的是VisualC++6.0

作为开发工具,采用了SQLSever2000作为后台数据库,就可以满足一般的宾馆的客房管理的需求.

2.:

系统模块

数据库设计

结构设计

(1)客房标准信息的E-R图

(2)订房信息的E-R图

(3)实体之间关系的E-R图

系统E-R图

(1)登陆需要的数据有:

登陆ID密码pwd,pas2.

建立表格user:

(2)房子的属性种类:

建立表格roomtype

(4)预定房子的时候用的表格:

(5)客房表

(6)结算信息表

利用查询分析器实现他们

1.建立表格user

2.Bookin表

3.roomtype表

4.rooms表

5.oucall表

输入数据即可。

(II)程序设计

1.程序运行数据流程图:

程序代码

#define

AFX_ROOMTYPEDLG_H__487EF091_29D9_404B_B081_0DAC2C2E1223__INCLU

DE_

#if_MSC_VER>1000

9

#pragmaonce

#endif//_MSC_VER>1000

//RoomTypeDLG.h:

headerfile

classCRoomTypeDLG:

publicCDialog

{

//Construction

public:

boolm_bAirCon;

boolm_bTel;

boolm_bTV;

boolm_bToilet;

boolm_bAppend;

CRoomTypeDLG(CWnd*pParent=NULL);

protected:

DECLARE_MESSAGE_MAP()

};

#include"stdafx.h"

#include"hotel_mis.h"

#include"RoomTypeDLG.h"

#include"Hotel_MISView.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

//CRoomTypeDLGdialog

CRoomTypeDLG:

:

CRoomTypeDLG(CWnd*pParent/*=NULL*/)

:

CDialog(CRoomTypeDLG:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CRoomTypeDLG)

m_sArea=_T("");

m_sBedNo=_T("");

m_sTypeID=_T("");

m_sTypeName=_T("");

m_sPrice=_T("");

//}}AFX_DATA_INIT

}

voidCRoomTypeDLG:

:

DoDataExchange(CDataExchange*pDX)

10

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CRoomTypeDLG)

}

BEGIN_MESSAGE_MAP(CRoomTypeDLG,CDialog)

//{{AFX_MSG_MAP(CRoomTypeDLG)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//CRoomTypeDLGmessagehandlers

BOOLCRoomTypeDLG:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

//InitEditTextlimit

if(m_bAppend)

{

//UpdateDialogCaption

SetWindowText(_T("添加客房标准"));

//InitCombobox

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel

(1);

}

else

{

//UpdateDialogCaption

SetWindowText(_T("修改客房标准"));

//DisableIDandNameEdit

GetDlgItem(IDC_ROOMTYPE_ID)->EnableWindow(false);

GetDlgItem(IDC_ROOMTYPE_NAME)->EnableWindow(false);

//InitCombobox

if(m_bAirCon)

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel

(1);

else

11

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel(0);

if(m_bTel)

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel

(1);

else((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel(0);

if(m_bTV)

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel

(1);

else((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel(0);

if(m_bToilet)

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel

(1);

else

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel(0);

}

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//EXCEPTION:

OCXPropertyPagesshouldreturnFALSE

}

voidCRoomTypeDLG:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData(true);

m_sTypeID.TrimRight("");

m_sTypeName.TrimRight("");

m_sArea.TrimRight("");

m_sBedNo.TrimRight("");

m_sPrice.TrimRight("");

//Makesureallneededinfoisavailable

CStringsWarning="";

if(""==m_sTypeID)sWarning=_T("标准编号");

elseif(""==m_sTypeName)sWarning=_T("标准名称");

elseif(""==m_sArea)sWarning=_T("客房面积");

elseif(""==m_sBedNo)sWarning=_T("床位数量");

elseif(""==m_sPrice)sWarning=_T("住房单价");

if(""!

=sWarning)

{

sWarning+=_T("不能为空");

AfxMessageBox(sWarning,MB_ICONEXCLAMATION);

return;

}

//MakesuretheNumberinfoisvalid

12

floatfArea=atof(m_sArea);

if(0==fArea)

{

AfxMessageBox(_T("客房面积:

请输入非零数字"),

MB_ICONEXCLAMATION);

return;

}

m_sArea.Format("%.2f",fArea);

floatfPrice=atof(m_sPrice);

if(0==fPrice)

{

AfxMessageBox(_T("住房单价:

请输入非零数字"),

MB_ICONEXCLAMATION);

return;

}

m_sPrice.Format("%.2f",fPrice);

if(atof(m_sPrice)>99999999.99)

{

AfxMessageBox(_T("住房单价溢出,请不要超过99999999.99"),

MB_ICONEXCLAMATION);

return;

}

_variant_tstrQuery;

if(m_bAppend)

{

//JudgeRoomTypeisUnique

strQuery="select*fromroomtypewheretypeid='"+m_sTypeID+"'";

theApp.ADOExecute(theApp.m_pADOSet,strQuery);

intiCount=theApp.m_pADOSet->GetRecordCount();

if(0!

=iCount)

{

AfxMessageBox(_T("已经存在此标准编号的记录!

"),

MB_ICONEXCLAMATION);

return;

}

//JudgeRoomNameisUnique

strQuery="select*fromroomtypewheretypeid!

='"+m_sTypeID+"'and

typename='"+m_sTypeName+"'";

13

theApp.ADOExecute(theApp.m_pADOSet,strQuery);

iCount=theApp.m_pADOSet->GetRecordCount();

if(0!

=iCount)

{

AfxMessageBox(_T("已经存相同客房标准的记录!

"),

MB_ICONEXCLAMATION);

return;

}

}

//Getotherinfo

CStringsAir("0"),sTel("0"),sTV("0"),sToilet("0");

if(((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->GetCurSel())

sAir="1";

if(((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->GetCurSel())

sTel="1";

if(((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->GetCurSel())

sTV="1";

if(((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->GetCurSel())

sToilet="1";

if(m_bAppend)//AppendRecord

{

strQuery="insertroomtype(typeid,typename,area,bednum,price,

haircondition,htelephone,htelevision,htoilet)\values('"+m_sTypeID+"',

'"+m_sTypeName+"',"+m_sArea+","+m_sBedNo+","+m_sPrice+","+sAir+",

"+sTel+","+sTV+","+sToilet+")";

if(theApp.ADOExecute(theApp.m_pADOSet,strQuery))

{

AfxMessageBox(_T("添加记录成功!

"),MB_ICONINFORMATION);

//Clearallinput

m_sTypeID=m_sTypeName=m_sArea=m_sBedNo=m_sPrice="";

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISAIRCON))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTEL))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTV))->SetCurSel

(1);

((CComboBox*)GetDlgItem(IDC_ROOMTYPE_ISTOILET))->SetCurSel

(1);

UpdateData(false);

14

}

elseAfxMessageBox(_T("添加记录失败!

"),MB_ICONEXCLAMATION);

}

else//AlterRecord

{

strQuery="Updateroomtypesetarea="+m_sArea+",bednum="+m_sBedNo+",

price="+m_sPrice+",haircondition="+sAir+",\htelephone="+sTel+",

htelevision="+sTV+",htoilet="+sToilet+"wheretypeid='"+m_sTypeID+"'";

if(theApp.ADOExecute(theApp.m_pADOSet,strQuery))AfxMessageBox(_T("

修改记录成功!

"),MB_ICONINFORMATION);

elseAfxMessageBox(_T("修改记录失败!

"),MB_ICONEXCLAMATION);

}

//RefreshRoomTypeList

CHotel_MISView*p=

(CHotel_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());

p->RefreshRoomType();

if(!

m_bAppend)CDialog:

:

OnOK();

}

//Hotel_MISView.cpp:

implementationoftheCHotel_MISViewclass

#include"stdafx.h"

#include"Hotel_MIS.h"

#include"Hotel_MISDoc.h"

#include"Hotel_MISView.h"

#include"RoomTypeDLG.h"

#include"RoomDLG.h"

#include"CheckRoomDLG.h"

#include"CheckRemainDLG.h"

#include"BookInDLG.h"

#include"SearchBookInDLG.h"

#include"CheckOutDLG.h"

#include"SearchCheckOutDLG.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

//CHotel_MISView

IMPLEMENT_DYNCREATE(CHotel_MISView,CView)

15

BEGIN_MESSAGE_MAP(CHotel_MISView,CView)

//{{AFX_MSG_MAP(CHotel_MISView)

ON_WM_SIZE()

ON_WM_CONTEXTMENU()

ON_COMMAND(ID_MENU_ADDROOMTYPE,OnAddRoomType)

ON_COMMAND(ID_MENU_ALTERROOMTYPE,OnAlterRoomType)

ON_COMMAND(ID_MENU_DELROOMTYPE,OnDelRoomType)

ON_COMMAND(ID_MENU_ADDROOM,OnAddRoom)

ON_COMMAND(ID_MENU_ALTERROOM,OnAlterRoom)

ON_COMMAND(ID_MENU_DELROOM,OnDelRoom)

ON_COMMAND(ID_MENU_CHECKROOM,OnCheckRoom)

ON_COMMAND(ID_MENU_CHECKREMAIN,OnCheckRemain)

ON_COMMAND(ID_MENU_ADDBOOKIN,OnAddBookIn)

ON_COMMAND(ID_MENU_ALTERBOOKIN,OnAlterBookIn)

ON_COMMAND(ID_MENU_SEARCHBOOKIN,OnSearchBookIn)

ON_COMMAND(ID_MENU_ADDCHECKOUT,OnAddCheckOut)

ON_COMMAND(ID_MENU_ALTERCHECKOUT,OnAlterCheckOut)

ON_COMMAND(ID_MENU_SEARCHCHECKOUT,OnSearchCheckOut)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//CHotel_MISViewconstruction/destruction

CHotel_MISView:

:

CHotel_MISView()

{

//TODO:

addconstructioncodehere

m_sCurrentList="";

}

CHotel_MISView:

:

~CHotel_MISView(){}

BOOLCHotel_MISView:

:

PreCreateWindow(CREATESTRUCT&cs)

{

//TODO:

ModifytheWindowclassorstylesherebymodifying

//theCREATESTRUCTcs

returnCView:

:

PreCreateWindow(cs);

}

//CHotel_MISViewdrawing

voidCHotel_MISView:

:

OnDraw(CDC*pDC)

{

CHotel_MISDoc*pDoc=GetDocument();

ASSERT_VALID(pDoc);

16

//TODO:

adddrawcodefornativedatahere

}

//CHotel_MISViewdiagnostics

#ifdef_DEBUG

voidCHotel_MISView:

:

AssertValid()const

{

CView:

:

AssertValid();

}

voidCHotel_MISView:

:

Dump(CDumpContext&dc)const

{

CView:

:

Dump(dc);

}

CHotel_MISDoc*CHotel_MISView:

:

GetDocument()//non-debugversionisinline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHotel_MISDoc)));

return(CHotel_MISDoc*)m_pDocument;

}

#endif//_DEBUG

CHotel_MISViewmessagehandlers

voidCHotel_MISView:

:

OnSize(UINTnType,intcx,intcy)

{

CView:

:

OnSize(nType,cx,cy);

//TODO:

Addyourmessagehandlercodehere

if(m_ListCtrl)

{

CRectrect;

GetClientRect(rect);

rect.top+=30;

m_ListCtrl.MoveWindow(rect);

}

}

voidCHotel_MISView:

:

LoadListCtrl()

{

CRectrect;

GetClientRect(rect);

rect.top+=30;

m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,

rect,this,1);

17

m_ListCtrl.SetBkColor(RGB(177,151,240));

m_ListCtrl.SetTextColor(RGB(0,0,0));

m_ListCtrl.SetTextBkColor(RGB(177,151,240));

m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_

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

当前位置:首页 > 高等教育 > 历史学

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

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