1、华东交通大学毕业设计(论文)题目: 学 院:理工学院专 业:计算机科学与技术班 级:姓 名:学 号:指导教师:完成日期:2010-5-4毕业设计(论文)诚信声明本人郑重声明:所呈交的毕业设计(论文)是我个人在导师指导下进行的研究工作及取得的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写的研究成果,也不包含为获得华东交通大学或其他教育机构的学位或证书所使用过的材料。如在文中涉及抄袭或剽窃行为,本人愿承担由此而造成的一切后果及责任。本人签名 导师签名 2010年 5 月 日华东交通大学毕业设计(论文)评阅书姓名学号专业毕业设计(论文)题目答辩小组评语:等级
2、 组长签字:年 月 日答辩委员会综合评语: 等级 答辩委员会主任签字:年 月 日(学院公章)注:答辩小组根据评阅人的评阅签署意见、初步评定成绩,交答辩委员会审定,盖学院公章。“等级”用优、良、中、及、不及五级制(可按学院制定的毕业设计(论文)成绩评定办法评定最后成绩)。华东交通大学毕业设计(论文)答辩记录姓名学号毕业届别专业计算机科学与技术题目答辩时间答辩组成员(签字):答辩记录: 记录人(签字): 年 月 日 答辩小组组长(签字):年 月 日附注:目录1 概述11.1 软件开发环境、工具和方法11.2 软件功能简介12 软件功能设计22.1 系统的总体功能描述23 编码设计33.1 数据库操
3、作33.2 主要模块实现64 测试94.1 黑盒测试94.2 白盒测试105 总结12参考文献13141 概述1.1 软件开发环境、工具和方法宾馆客房管理系统与一般系统的使用方法相似,它是一个应用程序,它运行于Windows的操作平台上;本系统对运行环境无特殊要求,适用于Windows XP操作系统。宾馆客房管理系统是应用Visual Studio 2005开发环境,整个设计是通过MFC语言编写的,它的设计思想符合软件开发的要求,它是通过一种可视化语言编写的,它的界面设计是通过Visual Studio 2005的控件来实现的,设计过程中的一部分功能程序的编写是通过SQL语句实现的。本系统以A
4、ccess 2003做后台数据库,以MFC做前台应用程序。1.2 软件功能简介 不同的用户拥有不同的权限,系统根据用户权限,进入不同的功能界面。权限分为两类:一个是后台管理者权限,一个是前台接待员权限。普通员工无权登陆此系统 对宾馆客房的预定、入住、退房等信息进行管理 可以以图形方式显示客房入住率、预订率、空闲率 后台管理者可以对客房、员工的信息进行管理和查看,可以设置员工的权限,可以查看客房使用情况的图形显示,还可以查询统计预定和退房情况 对新增用户,系统默认密码为000000 用户登录系统后,可根据自己的需要修改登录密码 前台接待员可为顾客进行入住、预定、退房、调房、退订登记 前台接待员可
5、以查看客房、宾客信息,可以查看客房使用情况的图形显示,还可以查看统计入住、预定和退房记录 前台接待员可根据入住情况(入住延期或由预定转为入住),对顾客追加押金 此系统为前台接待员提供了今日提醒功能,包括当天入住到期提醒和预定到期提醒2 软件功能设计2.1 系统的总体功能描述该阶段的主要任务是确定系统必须完成哪些工作,宾馆客房管理系统需要完成的主要功能为:1 对宾馆客房的预定、入住、退房等信息进行管理;2 对员工(如客房、楼层负责人,值班人,卫生员等)信息进行管理和查看;对系统用户进行权限管理;3 以图形方式统计客房入住率;可以查询统计预定和退房情况。具体功能,如图2-1所示图2-1 系统功能图
6、3 编码设计3.1 数据库操作 数据库连接HRESULT hr; try hr = m_pConnection.CreateInstance(ADODB.Connection);/创建Connection对象 if(SUCCEEDED(hr) hr=m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:StaffInfo.mdb,adModeUnknown);/*打开连接*/ catch(_com_error e)/捕捉异常 CString errormessage;errormessage.Format(TEXT(
7、连接数据库失败!rn错误信息:%s),e.ErrorMessage();AfxMessageBox(errormessage);/显示错误信息 查询数据库TCHAR c_Remind256;GetDlgItemText(IDC_CUS_START,c_Remind,sizeof(c_Remind)/sizeof(TCHAR);/得到空间中的内容CString temp=c_Remind; CString tep; /连接字符串,使用SQL语句进行查询 tep.Format(TEXT(SELECT * FROM customerinfo WHERE cus_endlive=%s AND cus_
8、housenum IN (SELECT house_num FROM houseinfo WHERE house_state=入住),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_pRecord
9、set-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_c
10、us_idnum = m_pRecordset-GetCollect(cus_idnum); m_cus_tel = m_pRecordset-GetCollect(cus_tel); /将查询结果显示到list control 空间中 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);
11、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();添加记录m_pRecordset.CreateInstance(ADODB.Recordset); m_pRecordset-Open(SELECT * FROM StaffInfo,_variant_t(IDispatch*)m_pConnection,true),adOpenStatic,adLockO
12、ptimistic,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(_v
13、ariant_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_pRecor
14、dset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(SELECT*FROMlstaffinfo,_variant_t(IDispatch*)m_pConnection,true), adOpenStatic,adLockOptimistic,adCmdText);m_pRecordset-PutCollect(_variant_t(lstaff_num),_variant_t(text_num1);m_pRecordset-PutCollect(_variant_t(lstaff_cipher),_variant_t(000000);m
15、_pRecordset-PutCollect(_variant_t(lstaff_limits),_variant_t(text_limit1);m_pRecordset-Update();/更新数据库删除记录 CString temp=c_num;/把字符数组中得到的控件中的信息赋给字符串 CString tep; /字符串连接 tep.Format(TEXT(SELECT * FROM StaffInfo WHERE staff_num = %s),temp); m_pRecordset.CreateInstance(ADODB.Recordset); m_pRecordset-Open(
16、tep.GetBuffer(),_variant_t(IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); tep.ReleaseBuffer();m_pRecordset-Delete(adAffectCurrent);/删除当前记录m_pRecordset-Update();3.2 主要模块实现 登录模块用户进入系统后,输入用户名、密码,选择自己的权限(即是前台操作员还是后台管理员),用户名、密码错误,权限选择错误都将无法进入系统。登陆界面如图3-1所示:图3-1 系统登录界面 前台操作模块当前台操
17、作员用户用户名、密码都输入正确,权限选择也正确后,就会进入前台操作界面,此界面主要包含入住、预定、退房、查询、宾客信息、统计信息、修改密码七个模块。其中查询模块中又包含查询退房记录模块,宾客信息模块又包含调房、追加押金、退订、今日提醒等模块,具体情况如图3-2,图3-3所示:图3-2 前台接待主界面图3-3 宾客信息主界面 后台管理模块当后台管理员用户用户名、密码都输入正确,权限选择也正确后,就会进入后台管理界面,此界面主要包含客房管理、员工管理、统计信息(和前台相同)、修改密码四个模块。具体内容如图3-4,图3-5所示:图3-4 客房管理界面图3-5 员工管理界面4 测试4.1 黑盒测试 黑
18、盒测试也称为功能测试,目的是监测系统是否满足功能设计的要求。黑盒测试把软件看成一个黑盒子,只关心功能是否达到要求,接口的数据是否正确,不关心程序的内部结构是什么,测试依据是需求说明书。黑盒测试主要检查下列几类错误:不正确或遗漏的功能;界面错误;数据结构或外部数据库访问错误;性能错误;初始化和终止条件错误等等。 等价分类法等价分类法是把根据程序输入的数据集合,按输入条件将其划分为若干等价类每一等价类设计一个测试用例,这样既可大大减少测试的次数又不错过发现问题的机会。因此等价分类法的关键是如何利用输入数据的类型和程序的功能说明划分等价类。 边界值法边界值是软件最容易出错的地方。因此,边界值法就是有
19、意选择边界值作为测试用例,在程序中运行,就很容易发现大量错误问题。在输入身份证号的控件中,输入的身份证号位数不是15位或18位,就会弹出警告,如图4-1所示:图4-1 边界值测试结果4.2 白盒测试白盒测试与黑盒测试相反,重点侧重于测试程序的结构,即用解剖的方法、透视的方法了解程序的结构,从而发现程序存在的问题和错误。白盒测试是一种针对程序细节进行的测试,测试人员可以通过测试不同的逻辑路径来确定程序与需求设计期望值是否一致。白盒测试应该根据程序的控制结构设计测试用例,并遵守如下原则: 使模块中每一独立的路径至少执行一次。 使所有判断的每一分支至少执行一次。 使每一循环都在边界条件和一般条件下都
20、至少各执行一次。 测试所有内部数据结构的有效性。 程序调试当运行调试程序后,wcslen()返回值为0,所以程序执行if语句,不执行else语句,如图4-2所示 图4-2 程序调试 统计信息模块测试此模块主要测试客房使用情况饼状图,测试结果如图4-3所示:图4-3 统计信息模块测试结果5 总结宾馆管理系统是一个宾馆行业不可缺少的部分,其内容对于宾馆的决策者和管理者来说都至关重要,宾馆管理系统应该能够为用户提供充足的信息和快捷的查询手段。现在宾馆管理系统的设计工作已经基本完成,其功能主要如下:1对客房信息进行管理系统通过客房信息管理模块比较完善的实现了客房预订、客房入住和退房等功能。但是记录的信
21、息还不够全面,没有涉及到计费方面的问题,有待改善。2对客房使用信息进行查询和统计通过系统可以对客房的使用信息进行查询,方便前台接待员和管理者快速了解客房当前的使用状况和使用历史。并且还能对客房使用信息进行统计,图形显示统计结果,方便管理者了解最近的生意形势。3对员工信息进行管理通过系统可以查询和更新员工的信息,帮助宾馆管理层管理繁杂的员工信息。由于这是我们第一次设计软件,文档中还有很多需要改进的地方。通过这次课程设计,我们初步了解了软件设计的各个阶段的工作,以及各阶段文档的写法,为我们以后毕业设计和参加工作奠定了一定得基础。设计过程中遇到了很多困难和迷惑的地方,我们深刻感受到了实际设计软件的复
22、杂性和软件前期需求分析和总体设计的重要性。得益于陈子阳老师耐心的指导,我们能够完成这次课程设计,在这里我们感谢陈老师对我们的关心和帮助。参考文献1 张海藩.软件工程导论(第5版). 北京:清华大学出版社,20082 韩万江软件工程案例教程北京:机械工业出版社,20073 宋坤 刘锐宁 李伟明Visual C+开发技术大全北京:人民邮电出版社,20074 施伯乐 丁宝康 汪卫数据库系统教程(第2版)北京:高等教育出版社,20055 沈炜 徐慧Visual C+数据库编程技术与实例北京:人民邮电出版社,20076颜志军Visual C+数据库开发典型模块与实例精讲北京:电子工业出版社,20077 原奕Visual C+数据库开发与工程应用篇 北京:中国铁道出版社,20068 宋坤 李伟明 刘锐宁Visual C+数据库系统开发案例精选北京:人民邮电出版社,2006常用网址收藏