I分类号:2010届本科生毕业设计题目:_______________________作者姓名:学号:系(院)、专业:软件工程系指导教师姓名:指导教师职称:2010年月日注:请认真填写的姓名及学号信息,并要求与学院规定的一致目录II1概述..............................................................................................................11.1软件开发环境、工具和方法................................................................11.2软件功能简介........................................................................................12软件功能设计..............................................................................................22.1系统的总体功能描述............................................................................23编码设计......................................................................................................33.1数据库操作............................................................................................33.2主要模块实现........................................................................................64测试...............................................................................................................94.1黑盒测试................................................................................................94.2白盒测试..............................................................................................105总结.............................................................................................................12参考文献.........................................................................................................1311概述1.1软件开发环境、工具和方法宾馆客房管理系统与一般系统的使用方法相似,它是一个应用程序,它运行于Windows的操作平台上;本系统对运行环境无特殊要求,适用于WindowsXP操作系统。宾馆客房管理系统是应用VisualStudio2005开发环境,整个设计是通过MFC语言编写的,它的设计思想符合软件开发的要求,它是通过一种可视化语言编写的,它的界面设计是通过VisualStudio2005的控件来实现的,设计过程中的一部分功能程序的编写是通过SQL语句实现的。本系统以Access2003做后台数据库,以MFC做前台应用程序。1.2软件功能简介⑴不同的用户拥有不同的权限,系统根据用户权限,进入不同的功能界面。权限分为两类:一个是后台管理者权限,一个是前台接待员权限。普通员工无权登陆此系统⑵对宾馆客房的预定、入住、退房等信息进行管理⑶可以以图形方式显示客房入住率、预订率、空闲率⑷后台管理者可以对客房、员工的信息进行管理和查看,可以设置员工的权限,可以查看客房使用情况的图形显示,还可以查询统计预定和退房情况⑸对新增用户,系统默认密码为000000⑹用户登录系统后,可根据自己的需要修改登录密码⑺前台接待员可为顾客进行入住、预定、退房、调房、退订登记⑻前台接待员可以查看客房、宾客信息,可以查看客房使用情况的图形显示,还可以查看统计入住、预定和退房记录⑼前台接待员可根据入住情况(入住延期或由预定转为入住),对顾客追加押金⑽此系统为前台接待员提供了今日提醒功能,包括当天入住到期提醒和预定到期提醒22软件功能设计2.1系统的总体功能描述该阶段的主要任务是确定系统必须完成哪些工作,宾馆客房管理系统需要完成的主要功能为:1对宾馆客房的预定、入住、退房等信息进行管理;2对员工(如客房、楼层负责人,值班人,卫生员等)信息进行管理和查看;对系统用户进行权限管理;3以图形方式统计客房入住率;可以查询统计预定和退房情况。具体功能,如图2-1所示图2-1系统功能图客房信息管理员工信息查询客房信息查询员工信息更新宾馆管理系统登录界面客房管理宾客信息客房信息统计客房预订客房入住退房图形显示客房使用情况客房信息查看退房记录查看客房信息查询宾客信息追加押金登记入住到期提醒调房登记预定到期提醒员工信息管理客房信息更新33编码设计3.1数据库操作⒈数据库连接HRESULThr;try{hr=m_pConnection.CreateInstance(ADODB.Connection);///创建Connection对象if(SUCCEEDED(hr)){hr=m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:\StaffInfo.mdb,,,adModeUnknown);/*打开连接*/}}catch(_com_errore)///捕捉异常{CStringerrormessage;errormessage.Format(TEXT(连接数据库失败!\r\n错误信息:%s),e.ErrorMessage());AfxMessageBox(errormessage);///显示错误信息}⒉查询数据库TCHARc_Remind[256];GetDlgItemText(IDC_CUS_START,c_Remind,sizeof(c_Remind)/sizeof(TCHAR));///得到空间中的内容CStringtemp=c_Remind;CStringtep;///连接字符串,使用SQL语句进行查询tep.Format(TEXT(SELECT*FROMcustomerinfoWHEREcus_endlive='%s'ANDcus_housenumIN(SELECThouse_numFROMhouseinfoWHEREhouse_state='入住4')),temp);m_pRecordset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(tep.GetBuffer(),///打开数据库中表_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);tep.ReleaseBuffer();m_success=TRUE;if(!m_pRecordset-BOF)///判断查询结果是否为空{m_pRecordset-MoveFirst();}else{AfxMessageBox(TEXT(今日无提醒!));return;}///循环将查询得到的记录集显示到控件中while(!m_pRecordset-adoEOF){///得到查询结果记录集的每列的值m_cus_housenum=m_pRecordset-GetCollect(cus_housenum);m_cus_name=m_pRecordset-GetCollect(cus_name);m_cus_sex=m_pRecordset-GetCollect(cus_sex);m_cus_idnum=m_pRecordset-GetCollect(cus_idnum);m_cus_tel=m_pRecordset-GetCollect(cus_tel);///将查询结果显示到listcontrol空间中nItem=m_cuslist.InsertItem(0xffff,(_bstr_t)m_cus_housenum);m_cuslist.SetItem(nItem,1,1,(_bstr_t)m_cus_name,NULL,0,0,0);m_cuslist.SetItem(nItem,2,1,(_bstr_t)m_cus_sex,NULL,0,0,0);m_cuslist.SetItem(nItem,3,1,(_bstr_t)m_cus_idnum,NULL,0,0,0);m_cuslist.SetItem(nItem,4,1,(_bstr_t)m_cus_tel,NULL,0,0,0);m_pRecordset-MoveNext();5}⒊添加记录m_pRecordset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(SELECT*FROMStaffInfo,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);//打开数据库中的表m_pRecordset-AddNew();///添加新记录///修改数据库表中每列的值m_pRecordset-PutCollect(_variant_t(staff_num),_variant_t(text_num));m_pRecordset-PutCollect(_variant_t(staff_name),_variant_t(text_name));m_pRecordset-PutCollect(_variant_t(staff_sex),_variant_t(text_sex));m_pRecordset-PutCollect(_variant_t(staff_tel),_variant_t(text_tel));m_pRecordset-PutCollect(_variant_t(staff_position),_variant_t(text_position));m_pRecordset-PutCollect(_variant_t(staff_limit),_variant_t(text_limit));m_pRecordset-PutCollect(_variant_t(staff_wages),_variant_t(text_wages));m_pRecordset-Update();///更新数据库⒋修改记录m_pRecordset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(SELECT*FROMlstaffinfo,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);m_pRecordse