数据库课程设计报告-客房信息管理系统.doc_第1页
数据库课程设计报告-客房信息管理系统.doc_第2页
数据库课程设计报告-客房信息管理系统.doc_第3页
数据库课程设计报告-客房信息管理系统.doc_第4页
数据库课程设计报告-客房信息管理系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术学院 课 程 设 计 报 告课程名称: 数据库系统原理 专 业: 计算机科学与技术 班 级: 13 级 04 班 学 号: 201313137090 姓 名: 指导老师: 客房信息管理系统一、 需求分析1.1 任务概述酒店,宾馆,招待所等机构在日常经营中需要对客房资源、顾客信息、结算信息进行管理,利用客房管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率,得到更好的收益与效果。一套功能全面,使用简便的客房管理软件,适用于宾馆管理、酒店管理、招待所管理。主要功能:客人的信息登记,退房,续住,查询,删除,各种强大的宾馆统计报表,异常处理。系统开发的总体任务是实现宾馆各种信息的系统化、规范化和自动化。1.2系统的功能需求1.2.1 角色功能需求assistance: 前台服务人员,具有最高权限,可以进行入住,退房,删除用户,查询、修改客户信息,查询住房状况的一系列操作;customer: 每一位顾客可以登录系统查询自己的住房情况;manager: 经理可以查询住房状况,查看今日及近期的营业状况;客房信息管理系统1.2.2功能模块登陆界面manager界面assistance界面customer界面查看所有客人登记信息多种条件查询客人信息客人续住及提前退房退房 删除 修改客人信息查看近期营业状况查看客房信息查看自己登记信息产看客房信息余房查询 新客户入住登记二、 概念结构设计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,房间号,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.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 focus 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.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语句,分别针对不同的查询条件,做不同的处理,并作出记录不存在不存在,输入为空等异常的处理。 (异常处理)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_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.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);flag=1;m_pset.movenext();continue;elsem_pset.movenext();if(m_pset.iseof()&flag=0)messagebox(记录不存在);m_pset.close();return;/(此处省略部分代码)字符串转换时间类函数(用于将输入的字符串装化为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.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.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=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(及现住客户的信息输出)代码略(与显示记录代码类似)修改住房时间通过修改时间,实现提前退房,续住功能(可通过时间选取器控件直接选取)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(),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_pset.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=str3=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 hereif(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_customername);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();退房将退房时间改为当日时间,通过日结算实现了退房的目的。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 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 herecustomerdata 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(此房间已有客人入住);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);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();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.getday()=(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.format(%d,n);m_show.insertitem(0,str);n=0;m_pset.open();while(!m_pset.i

温馨提示

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

评论

0/150

提交评论