数据库课程设计报告客房信息管理系统

上传人:仙*** 文档编号:29427508 上传时间:2021-10-07 格式:DOC 页数:16 大小:1.32MB
收藏 版权申诉 举报 下载
数据库课程设计报告客房信息管理系统_第1页
第1页 / 共16页
数据库课程设计报告客房信息管理系统_第2页
第2页 / 共16页
数据库课程设计报告客房信息管理系统_第3页
第3页 / 共16页
资源描述:

《数据库课程设计报告客房信息管理系统》由会员分享,可在线阅读,更多相关《数据库课程设计报告客房信息管理系统(16页珍藏版)》请在装配图网上搜索。

1、计算机科学与技术学院 课 程 设 计 报 告课程名称: 数据库系统原理 专 业: 计算机科学与技术 班 级: 13 级 04 班 学 号: 201313137090 姓 名: 指导老师: 客房信息管理系统一、 需求分析1.1 任务概述酒店,宾馆,招待所等机构在日常经营中需要对客房资源、顾客信息、结算信息进行管理,利用客房管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率,得到更好的收益与效果。一套功能全面,使用简便的客房管理软件,适用于宾馆管理、酒店管理、招待所管理。主要功能:客人的信息登记,退房,续住,查询,删除,各种强大的宾馆统计报表,异常处理。系统开发的总体任务是实现宾馆各种信

2、息的系统化、规范化和自动化。1.2系统的功能需求1.2.1 角色功能需求Assistance: 前台服务人员,具有最高权限,可以进行入住,退房,删除用户,查询、修改客户信息,查询住房状况的一系列操作;Customer: 每一位顾客可以登录系统查询自己的住房情况;Manager: 经理可以查询住房状况,查看今日及近期的营业状况;客房信息管理系统1.2.2功能模块登陆界面Manager界面Assistance界面Customer界面查看所有客人登记信息多种条件查询客人信息客人续住及提前退房退房 删除 修改客人信息查看近期营业状况查看客房信息查看自己登记信息产看客房信息余房查询 新客户入住登记二、

3、概念结构设计E-R图三、逻辑结构设计系统中的表有:Room(客房表),CustomerData(客户入住信息表),UserData(用户信息表)客户入住信息表主码:RoomNo CustomerNo外码:RoomNo CustomerNo客房表 主码:RoomNo 用户信息表主码:UserNo四、详细设计4.1登陆界面 4.2 Assistance界面初始化函数BOOL DataOperate:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization herem_Show.InsertColumn(0,房间号,

4、0,60);m_Show.InsertColumn(1,客户名,0,60);m_Show.InsertColumn(2,房间类型,0,80);m_Show.InsertColumn(3,首付款(含押金),0,110);m_Show.InsertColumn(4,入住时间,0,80);m_Show.InsertColumn(5,退房时间,0,80);SYSTEMTIME pTimeNew;CTime t; t=CTime:GetCurrentTime(); pTimeNew.wYear =t.GetYear(); pTimeNew.wMonth = t.GetMonth(); pTimeNew.

5、wDay =t.GetDay(); pTimeNew.wHour=0; pTimeNew.wMinute=0; pTimeNew.wSecond=0; pTimeNew.wMilliseconds=0;m_VInTime.SetTime(pTimeNew);m_VOutTime.SetTime(pTimeNew);m_SelectType.SetCurSel(0);m_Show.SetExtendedStyle(LVS_EX_FULLROWSELECT);GetWindowRect(&Rect);return TRUE; / return TRUE unless you set the foc

6、us to a control / EXCEPTION: OCX Property Pages should return FALSE显示所有记录void DataOperate:OnButton_ShowAll() m_Show.DeleteAllItems();m_pSet.m_strFilter=;m_pSet.Open();while(!m_pSet.IsEOF()m_Show.InsertItem(0,m_pSet.m_RooMNo);m_Show.SetItemText(0,1,m_pSet.m_CustomerName);m_Show.SetItemText(0,2,m_pSet

7、.m_RoomType);m_Show.SetItemText(0,3,m_pSet.m_FirstCash);CString str;str=m_pSet.m_InTime.Format(%Y-%m-%d);m_Show.SetItemText(0,4,str);str=m_pSet.m_OutTime.Format(%Y-%m-%d);m_Show.SetItemText(0,5,str);n=0;m_pSet.MoveNext();m_pSet.Close();查询信息功能输入查询字段,下拉框选择查询条件,点击确定按钮。函数使用一个switch语句,分别针对不同的查询条件,做不同的处理,

8、并作出记录不存在不存在,输入为空等异常的处理。 (异常处理)void DataOperate:OnButton_Select() / TODO: Add your control notification handler code hereOnButton_ShowAll();UpdateData(true);while(m_SelectDetails=)if(MessageBox(请输入要查询的内容)=IDOK)return;m_Show.DeleteAllItems();if(m_pSet.IsOpen()m_pSet.Close();m_pSet.Open();int nChoose=m

9、_SelectType.GetCurSel();int flag=0;switch(nChoose)/(省略部分代码)case 4:while(!m_pSet.IsEOF()CString str1;str1=m_pSet.m_OutTime.Format(%Y-%m-%d);if(m_SelectDetails=str1)m_Show.InsertItem(0,m_pSet.m_RooMNo);m_Show.SetItemText(0,1,m_pSet.m_CustomerName);m_Show.SetItemText(0,2,m_pSet.m_RoomType);m_Show.SetIt

10、emText(0,3,m_pSet.m_FirstCash);CString str;str=m_pSet.m_InTime.Format(%Y-%m-%d);m_Show.SetItemText(0,4,str);str=m_pSet.m_OutTime.Format(%Y-%m-%d);m_Show.SetItemText(0,5,str);flag=1;m_pSet.MoveNext();continue;elsem_pSet.MoveNext();if(m_pSet.IsEOF()&flag=0)MessageBox(记录不存在);m_pSet.Close();return;/(此处省

11、略部分代码)字符串转换时间类函数(用于将输入的字符串装化为CTime类型,与表中数据作比较)CTime CCreateNew:StringToTime(CString str)int y,m,d;y=atoi(str);int i,j;i=str.Find(-,0);j=str.Find(-,i+1);CString temp;while(ij-1)temp+=str.GetAt(+i);m=atoi(temp);temp.Empty();i=str.GetLength();while(j=t1.GetDay()&t.GetYear()=t1.GetYear()&t.GetMonth()=t1

12、.GetMonth()if(m_pSet1.IsOpen()m_pSet1.Close();CString str;str.Format(RoomNo=%s,m_pSet.m_RooMNo);m_pSet1.m_strFilter=str;m_pSet1.Open();m_pSet.Edit();m_pSet1.Edit();m_pSet.m_Statement=0;m_pSet1.m_Statement=0;m_pSet.Update();m_pSet1.Update();elseif(m_pSet1.IsOpen()m_pSet1.Close();CString str;str.Forma

13、t(RoomNo=%s,m_pSet.m_RooMNo);m_pSet1.m_strFilter=str;m_pSet1.Open();m_pSet.Edit();m_pSet1.Edit();m_pSet.m_Statement=1;m_pSet1.m_Statement=1;m_pSet.Update();m_pSet1.Update();m_pSet.MoveNext();m_pSet.Requery();m_pSet1.Requery();m_pSet.Close();m_pSet1.Close();MessageBox(今日客房已结算);查看客房情况将字段Statement等于1(及

14、现住客户的信息输出)代码略(与显示记录代码类似)修改住房时间通过修改时间,实现提前退房,续住功能(可通过时间选取器控件直接选取)void DataOperate:OnButtonChange() / TODO: Add your control notification handler code hereif(n=0)MessageBox(请选中要操作的对象!);return;CString str;if(m_pSet.IsOpen()m_pSet.Close();str.Format(RooMNo=%s,m_Show.GetItemText(m_Show.GetSelectionMark()

15、,0);m_pSet.m_strFilter=str;UpdateData(true);m_pSet.Open();m_pSet.Edit();CString str1,str2;m_VInTime.GetWindowText(str1);m_VOutTime.GetWindowText(str2);if(StringToTime(str1)=StringToTime(str2)MessageBox(退房时间应在订房时间之后!);return;m_pSet.m_InTime=StringToTime(str1);m_pSet.m_OutTime=StringToTime(str2);m_pSe

16、t.Update();m_pSet.Requery();m_pSet.Close();MessageBox(修改成功!);OnButton_ShowAll();剩余客房查询统计客房中Statement字段值为0(空房间)的记录,分类(switch)统计显示数据。BOOL Remain:OnInitDialog() CDialog:OnInitDialog();/ .(省略部分代码)Room m_pSet;m_pSet.Open();int n1,n2,n3,n4,n5;n1=n2=n3=n4=n5=0;CString str1,str2,str3,str4,str5;str1=str2=str

17、3=str4=str5=;while(!m_pSet.IsEOF()if(m_pSet.m_Statement=1)m_pSet.MoveNext();continue;switch(m_pSet.m_Type)case 1:n1+;str1=str1+m_pSet.m_RoomNo+ ;break;(此处省略若干case)m_pSet.MoveNext();m_pSet.Close();/(省略部分代码)删除用户记录void DataOperate:OnButton_Delete() / TODO: Add your control notification handler code her

18、eif(n=0)MessageBox(请选中要操作的对象!);return;if(AfxMessageBox(确认删除记录?,MB_OKCANCEL)=IDOK);elsereturn;CString str,str1,str2;UserData m_pSet1;Room m_pSet2;m_pSet1.Open();m_pSet.Open();m_pSet2.Open();str.Format(RooMNo=%s,m_Show.GetItemText(m_Show.GetSelectionMark(),0);str1.Format(UserNo=%s,m_pSet.m_CustomerNam

19、e);str2.Format(RoomNo=%s,m_Show.GetItemText(m_Show.GetSelectionMark(),0);m_pSet1.Close();m_pSet.Close();m_pSet2.Close();m_pSet.m_strFilter=str;m_pSet1.m_strFilter=str1;m_pSet2.m_strFilter=str2;m_pSet.Open();m_pSet1.Open();m_pSet2.Open();m_pSet2.Edit();m_pSet2.m_Statement=0;/OnButton_ShowAll();退房将退房时

20、间改为当日时间,通过日结算实现了退房的目的。void DataOperate:OnButton_EXIT() if(n=0)MessageBox(请选中要操作的对象!);return;CString str;if(m_pSet.IsOpen()m_pSet.Close();str.Format(RooMNo=%s,m_Show.GetItemText(m_Show.GetSelectionMark(),0);m_pSet.m_strFilter=str;UpdateData(true);m_pSet.Open();m_pSet.Edit();m_pSet.m_Statement=0;CTime

21、 t;t=CTime:GetCurrentTime();m_pSet.m_OutTime=t;m_pSet.Update();m_pSet.Requery();m_pSet.Close();Room m_pSet2;(Room表更新同上,故省略)MessageBox(退房成功!);用户入住输入登记信息后,点击确定,系统会建立一个新用户,账号为客户姓名,密码系统随机产生,可以用于登录客房管理系统的用户界面,如下图所示创建新用户CCreateNew dlg;dlg.DoModal();void CCreateNew:OnOK() / TODO: Add extra validation hereC

22、ustomerData m_pSet1,m_pSet;UserData m_pSet2;Room m_pSetr;UpdateData(true);m_pSet.Open();m_pSet1.Open();m_pSet2.Open();m_pSet1.AddNew();m_pSet2.AddNew();if(m_RoomNo=)MessageBox(请输入房间号码);return;(略若干代码)for(;!m_pSet.IsEOF();m_pSet.MoveNext()if(m_pSet.m_RooMNo=m_RoomNo&m_pSet.m_Statement=1)MessageBox(此房间

23、已有客人入住);return;m_pSetr.m_strFilter=RoomNo=+m_RoomNo+;m_pSetr.Open();m_pSetr.Edit();m_pSetr.m_Statement=1;m_pSet1.m_RooMNo=m_RoomNo;m_pSet1.m_CustomerName=m_Name;m_pSet1.m_RoomType=m_RoomType;m_pSet1.m_FirstCash=m_FirstCash;CString str1;m_VInTime.GetWindowText(str1);m_pSet1.m_InTime=StringToTime(str1

24、);m_VOutTime.GetWindowText(str1);m_pSet1.m_OutTime=StringToTime(str1);m_pSet.m_Statement=1;m_pSet2.m_UserNo=m_Name;srand(time(NULL);int n=rand()%10000;CString str;str.Format(%d,n);m_pSet2.m_Code=str;m_pSet2.m_Type=3;m_pSet1.Update();m_pSet1.Requery();m_pSet2.Update();m_pSet2.Requery();m_pSetr.Update

25、();m_pSetr.Requery();MessageBox(欢迎入住!您的账号: +m_Name+ 密码: +str);CDialog:OnOK();4.3客户界面代码(简单列表框查询显示,故省略)4.4 Manager界面 今日营业额 近期营业状况/(略)CustomerData m_pSet;m_pSet.Open();CTime t,t1;t=CTime:GetCurrentTime();int n1=t.GetDayOfWeek();while(!m_pSet.IsEOF()t1=m_pSet.m_InTime;if(t1.GetDay()=(t.GetDay()-n1)|t1.G

26、etDay()=(t.GetDay()-n1-1)|t1.GetDay()=(t.GetDay()-n1-2)n+=atoi(m_pSet.m_FirstCash);if(t1.GetDay()=(t.GetDay()-n1-3)|t1.GetDay()=(t.GetDay()-n1-4)|t1.GetDay()=(t.GetDay()-n1-5)n+=atoi(m_pSet.m_FirstCash);if(t1.GetDay()=(t.GetDay()-n1-6)n+=atoi(m_pSet.m_FirstCash);m_pSet.MoveNext();m_pSet.Close();str.

27、Format(%d,n);m_Show.InsertItem(0,str);n=0;m_pSet.Open();while(!m_pSet.IsEOF()t1=m_pSet.m_InTime;if(t1.GetDay()=(t.GetDay()-1)n+=atoi(m_pSet.m_FirstCash);m_pSet.MoveNext();str.Format(%d,n);m_Show.SetItemText(0,1,str);m_pSet.Close();n=0;m_pSet.Open();while(!m_pSet.IsEOF()t1=m_pSet.m_InTime;if(t1.GetDa

28、y()=t.GetDay()n+=atoi(m_pSet.m_FirstCash);m_pSet.MoveNext();str.Format(%d,n);m_Show.SetItemText(0,2,str);/.(略)五、总结这次课程设计首次接触到了数据库编程,使用VC+6.0和SQL Server2000作为开发工具,更加熟悉了MFC的控件使用,也更加深入的了解到了面向对象编程语言的特点,对类的概念有了更加深刻全面的理解。首次使用ODBC编程,算是有了初步的认识,今后还有待了解。程序整体实用性比较高,异常处理机制完善,健壮性高,界面友好人性化,克服了一些程序给人的生硬感。采用多角色多权限登

29、陆,更加有效地保证了数据的安全性。操作简单,提示得当,对误操作的响应机制比较完善,错误操作不会影响后台数据库的数据。作为一个客房信息管理系统,它比较全面地实现了宾馆,酒店,招待所等机构的日常的需求,包括入住信息登记,退房,续住,提前退房,住房信息,余房信息,以及客人登记信息的查询。程序亮点在于不同角色登陆界面不同,功能不同,并且配以不同的提示语和背静图片,生动活泼,易于让人接受。另外,程序的不足还是很明显。个别异常还是未得到响应。对需求分析做的不是很到位,有些与现实使用存在差异,比如客人入住登记没有证件号码登记这一项。功能还不够全面,换房,现金结算等功能未能实现。总的来说,实现了此次课程设计的目的,达到了预期的目标,但由于时间等缘故,未能够充分完善此程序,今后当吸取不服,再接再厉。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!