软件工程课程设计 宾馆客房管理系统

上传人:仙*** 文档编号:28552450 上传时间:2021-08-30 格式:DOC 页数:22 大小:919.51KB
返回 下载 相关 举报
软件工程课程设计 宾馆客房管理系统_第1页
第1页 / 共22页
软件工程课程设计 宾馆客房管理系统_第2页
第2页 / 共22页
软件工程课程设计 宾馆客房管理系统_第3页
第3页 / 共22页
点击查看更多>>
资源描述
软件工程课程设计(B)题 目 宾馆客房管理系统 课程设计报告单学号 姓名 专业班级软件工程08-2考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2011年10月21日软件工程课程设计(B)任务书软件工程课程设计旨在通过2周实训时间,培养学生初步掌握系统分析、设计、实现、测试、维护的方法,加深学生对软件工程课程的理解和应用,同时也进一步提高学生运用程序设计语言的能力。一、目标程序设计不等于软件工程,这是本课程需要进一步让学生加深理解的地方。传统的程序设计在一定程度上偏重于计算机科学领域,属于较抽象的范畴;而软件工程则是要实实在在地做出一个满足用户要求的系统来,这是一个很具体的实践过程。作为一个软件开发者,必须具备从事工程实践的技能,包括软件项目的可行性研究、系统分析、设计、编写文档、源码设计、使用工具等基本技能,这就是课程设计要实现的一个目标。课程设计的教学基本要求如下:1巩固和加深对软件工程原理的理解,提高综合运用本课程所学知识的能力。2培养学生选用参考书,查阅手册及文献资料的能力。3培养独立思考,深入研究,分析问题、解决问题的能力。4通过实际系统的分析设计、编程调试,掌握软件的分析方法和工程设计方法。5能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统和程序框图。6通过课程设计,培养学生严谨的科学态度,严肃认真的工作作风和团队协作精神。二、选题与内容选题应尽量结合教学、科研的实际课题,反映新技术,以获得更好的工程设计实践的训练。同时课程设计受到时间及开发环境、条件等的限制,命题应从实际出发,课题的大小规模、难易适度。学生可以根据自己特点、能力、时间进行选题。三、课程设计的基本步骤1问题定义(明确问题边界)2可行性研究3项目开发计划4需求分析5概要设计6数据库设计7详细设计8系统测试9用户使用说明四、教学方法及要求13-4人成立一个开发小组,选出小组项目负责人,并对小组成员按任务进行分工或者独立完成;2开发环境及工具不限;3严格按软件工程的方法,分阶段进行开发(问题定义、需求分析、概要及详细设计、编码、测试等);4要求每阶段产生的文档等软件配置齐全、合理;5上机能正常运行程序。6提交课程设计报告。要求完成课程设计报告2000字以上,如果采用分组方式完成,可以分模块完成课程设计报告。五、工作量2周(10个工作日)时间六、计划安排第1个工作日第2个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第3个工作日第4个工作日:设计程序结构、模块图,学习相关技术。第5个工作日第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。第10个工作日:撰写和整理课程设计报告,检查软件测试效果、检查课程设计报告,给出学生成绩。 指导教师签字: 2011年10月10日 目 录一、 需求分析1二、 概要设计3三、 详细设计与实现5 四、 系统测试12参考文献.13附 录.14一、需求分析1 可行性分析 1.1目标方案可行性(1) 计算机设备处理繁杂的宾馆日常事务,大幅度减少人力、物力,极大地提高宾馆的管理水平和管理效率。(2) 管理水平和管理效率的提高能直接产生经济效益。(3) 高效率的管理形成了良好的经营氛围,为宾馆打造优良形象,提高企业竞争力。(4) 本系统安全保密性可靠,实施独立的局域网络,人员进入系统需要登录,需输入账户和密码。(5) 本系统的管理,可以根据市场需要进行调整,实用性强。1.2 技术可行性(1) 工作人员一般都要求掌握计算机技术,会使用各种管理软件。(2) 在新系统投入使用时,需对员工进行少量的培训,熟悉系统的功能和使用方法使系统能够顺利运行。1.3 经济可行性 (1) 宾馆有能力承担系统开发费用。 (2) 新系统将为企业带来经济效益。管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。其最主要的表现就是减少了企业管理费用和人力开支。1.4 操作可行性(1) 本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那有一般的计算机知识的人员就可以轻松上手。(2) 整个宾馆管理系统采用较友好的交互界面,简单明了,操作方便,不需要对数据库进行深入的了解。2 需求分析2.1 用户工作流程入住或预订客房时,用户要对客房管理模块或预订管理模块进行核对审查,并进行登记;用户要获得换房时,要对换房情况进行查询和更新;顾客结束住宿时,要对其进行结算。 2.2 用户业务需求(1) 该管理软件将对客房进行资料管理和统计,对已入住客房、已订出客房、未入住且未订出客房进行录入管理和统计;客房标准、客房内容(2) 该管理软件将根据用户的需求对客户情况进行资料管理和统计,对已入住客户、预订客房客户进行数据录入、信息检索、修改和删除,并能打印详细信息;(3) 该管理软件将根据用户的需求对结算情况进行资料管理和统计,对已结账的详单及待结账的详单分别进行日、周、月、年的统计与分析。(4) 该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码;(5) 该管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改进本信息等功能。二、概要设计1 功能需求本课题是以一个小型宾馆信息管理为基础,结合各管理部门工作的实际需求,将要对宾馆信息管理系统进行设计、开发,并对技术难点作出分析,提出解决方法。使“宾馆信息管理系统”最终具有数据录入、修改、删除,信息检索,系统维护等功能。2 主要功能 数据处理:实现录入、修改、删除、存储功能。如客房信息、顾客信息、入住信息、换房信息、订房信息、结算信息等的数据处理等。信息检索:实现按不同要求分类模糊查询,组合查询功能,根据查询方式的不同,选择输出检索信息。如订房信息的查询,结算信息的查询等。系统维护:实现对用户权限的限制,密码的保密性设置。3 系统开发目的(1) 实现客房管理、入住管理、换房管理、订房管理、结算管理、系统用户管理的数据录入、修改、删除和信息检索功能,(2) 实现对宾馆的账务管理与系统维护;(3) 大大提高宾馆的运作效率;(4) 通过全面的信息查询和处理,辅助提高宾馆的决策水平;(5) 使用本系统,可以迅速提升宾馆的管理水平,为降低经营成本,提高效益,增强宾馆扩张力,提供有效的技术保障。(6) 能够提供一定的安全机制,提供数据信息授权访问,防止随意删改。4 运行环境 操作系统:Windows XP开发工具:Visual Basic 6.0 数据库:SQL Server 20005 项目意义本系统将对数据处理与信息检索作为研究重点,实现对数据的高级处理,且力求通过关键字段实现模糊检索功能,使信息查询更加简单灵活,即使第一次接触系统的人也可轻松操作,快速的找到所需信息。三、详细设计与实现1 组织结构图图3.12 宾馆的业务流程图如下图3.23 宾馆的功能结构图如下图3.34 系统功能设计系统功能设计是使整个系统能基本实现宾馆的客房管理、顾客入住、顾客订房、顾客换房、结算管理、系统用户管理等功能,能让宾馆管理者更直观的了解宾馆的经营状况,以做出相应的经营决策。管理信息系统(MIS)就是要对这些资源建立正确的数据库,并进行信息的存储管理、编制成各种凭证、报表、台帐等信息,同时对这些信息进行维护,通过实测宾馆的各种运行情况,并利用过去的历史数据预测未来的发展,从宾馆全局的角度出发进行决策,利用信息控制宾馆的行为,附注宾馆完成其目标。5 模块功能设计本系统共包括七大模块,分别是系统登录模块、系统用户管理模块、客房管理模块,顾客入住模块、订房模块、换房模块及宾馆结算管理模块。5.1. 系统登录模块功能:本模块的主要功能是对用户身份进行,验证只有系统的合法用户才能进入系统。其窗体。登录:在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。在登录模块中,对系统的尝试登录次数进行了限制,禁止用户无终止的进行系统登录尝试,在本系统中,当用户对系统的三次登录失败后,系统将自动机制登录,突出登录模块。并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。输入项、输出项:输入项为账号和密码。账号和密码均为字符串,长度各为6个字符,密码回显字符是“*”。数据流图:图3.45.2. 系统管理模块功能:在系统实行多用户管理时,本模块将为系统开辟多个系统用户,并能对其进行简单的信息维护,用户名变更、密码修改以及对用户权限的授予。退出:选择退出系统,将关闭整个系统,结束本次使用。数据流图:图3.55.3. 客房管理模块功能:本模块的主要功能是客房信息标准设置以及对客房信息设置。设置客房标准:主要功能客房信息标准的添加、修改和删除。设置客房信息:主要功能客房信息的添加、修改和删除。输入项、输出项:本模块的数据输入项主要是客房编号、客房类型、客房位置、客房单价等。并可以报表形式打印出来。 数据流图:图3.65.4. 入住管理模块功能:该模块主要是实现对客户入住信息的登记、查询两个功能。入住信息登记:该模块为系统提供对将入住顾客信息的登记,输入项为顾客信息和客房信息。入住信息查询:该模块为系统提供整个宾馆的已入住顾客信息的查询并可以报表形式打印出来。输入项、输出项:本模块的数据输入项主要是客房编号及客房种类,其中客房编号为必填项。添加顾客入住业务流程图:图3.75.5. 订房管理模块功能:本模块的主要功能是实现对客户订房信息的登记、查询两个功能。入住信息登记:该模块为系统提供订房顾客信息的登记,输入项为顾客信息和客房信息。入住信息查询:该模块为系统提供整个宾馆的已订房顾客信息的查询并可以报表形式打印出来。输入项、输出项:本模块的数据输入项主要是顾客姓名、房间编号及入住时间,其中顾客姓名为必填项。添加顾客订房业务流程图:图3.8四、系统测试1程序登录界面 图5.1 图5.2参考文献1 甘雷,中文Access 2002标准教程,北京希望电子出版社2 何旭洪,Visual Basic数据库开发实例导航10-174页,北京人民邮电出版社3 汉清计算机工作室,Visual Basic6.0数据库开发实例,页北京机械工业出版社4 岂兴明银华强等编著,Visual Basic.NET项目开发宝典,电子工业出版社5 周扬郭晓东动态链接库技术及应用J,电脑编程技巧与维护附录 全部代码Public NowUser As String 当前用户名Public nowpower As String 当前用户权限Public mydb As DAO.Database 定义数据库Public bgi As Integer 判断背景风格Public Sub LoadAccess()Set mydb = DAO.OpenDatabase(App.Path & hotel.mdb)End SubPublic Sub bground()If bgi = 1 Thenmain.Picture = panel.Image1.Picturepanel.Picture = panel.Image1.Picturepanel.Picture1.Picture = panel.Image1.Picturemain.Picture1.Picture = panel.Image1.Picturemain.Picture2.Picture = panel.Image1.PictureUnload findEm: Unload findlogin: Unload fingG: Unload InLogin: Unload LogoutBG: Unload managekf: Unload payoff: Unload ViewUnload changelogin: Unload findLogout: Unload find: panel.resizemeElseIf bgi = 0 Thenmain.Picture = Nothingpanel.Picture = Nothingpanel.Picture1.Picture = Nothingmain.Picture1.Picture = Nothingmain.Picture2.Picture = NothingUnload findEm: Unload findlogin: Unload fingG: Unload InLogin: Unload LogoutBG: Unload managekf: Unload payoff: Unload ViewUnload changelogin: Unload findLogout: Unload find: panel.resizemeEnd IfEnd IfEnd SubPrivate Declare Function ReleaseCapture Lib user32 () As Long 获取“变动”信息Private Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const WM_SYSCOMMAND = &H112Private Const SC_MOVE = &HF010&Private Const HTCAPTION = 2Dim Emp As RecordsetPrivate Sub DTPicker1_Change()Text7.Text = Year(Date) - Year(DTPicker1.Value)End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then 如果按下鼠标左键 Dim ReturnVal As Long X = ReleaseCapture() ReturnVal = SendMessage(addEm.hwnd, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0) End IfEnd Sub Private Sub Form_Load() LoadAccess Set Emp = mydb.OpenRecordset(select * from empl) Text1.Text = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) Text7.Text = Year(Date) - Year(DTPicker1.Value)End SubPrivate Sub Command1_Click() =!缺少判断员工号是否存在的信息If Text1.Text = Or Text2.Text = Or Text4.Text = Then msg$ = MsgBox(请确认 员工号、员工姓名、职务 已经输入, 48, Error) ElseEmp.AddNewEmp.Fields(emid) = Text1.TextEmp.Fields(ename) = Text2.TextEmp.Fields(esex) = Combo1.TextEmp.Fields(ejob) = Text4.TextEmp.Fields(eage) = Val(Text5.Text)Emp.Fields(etel) = Text6.TextEmp.Fields(ejtime) = DTPicker1.ValueEmp.Fields(ejage) = Text7.TextEmp.Update 更新记录Emp.Closemsg$ = MsgBox(添加成功, 64, Success!)Unload MeEnd If End SubPrivate Sub Command2_Click()Text1.Text = : Text2.Text = : Combo1.Text = Text4.Text = : Text5.Text = : Text6.Text = End SubPrivate Sub Command3_Click()main.Enabled = TrueUnload MeEnd SubDim i As Integer 定义一个整型变量Dim InLog As RecordsetDim Room As RecordsetDim Remind As RecordsetPrivate Sub Combo4_Click()Set Room = mydb.OpenRecordset(select * from roomlogin where rname= & Combo4.Text & )ZSDJ(4).Text = Room.Fields(rtype): ZSDJ(5).Text = Room.Fields(rprice)End SubPrivate Sub Combo5_click()Label11.Caption = Combo5.TextEnd SubPrivate Sub DTP3_Change()ZSDJ(6).Text = DTP3.Value - DTP1.ValueEnd SubPrivate Sub Form_Load()If bgi = 1 Then Me.Picture = panel.Image1.PictureIf bgi = 0 Then Me.Picture = Nothing DTP1.Value = Date: DTP2.Value = Date: DTP3.Value = Date 初始化日期及时间 czy.Text = NowUser 赋值给czy LoadAccessEnd SubPrivate Sub Form_Unload(Cancel As Integer) main.Enabled = True 设置主窗体有效End SubPrivate Sub Combo2_Click() If Combo2.Text = 折扣 Then ZSDJ(8).Enabled = True 设置ZSDJ(8)有效 ZSDJ(8).SetFocus ZSDJ(8)获得焦点 End If If Combo2.Text = 招待 Then ZSDJ(8).Enabled = True 设置ZSDJ(8)有效 ZSDJ(8).Text = 0 赋值给ZSDJ(8) End IfEnd SubPrivate Sub ZSDJ_Change(Index As Integer) Select Case Index Case 6 ZSDJ(7).Text = Format(Val(ZSDJ(6).Text) * Val(ZSDJ(5).Text), 0.00) 计算折前宿费 ZSDJ(9).Text = ZSDJ(7).Text 赋值给ZSDJ(9) ZSDJ(8).Text = 100 DTP3.Value = DTP1.Value + Val(ZSDJ(6).Text) 计算退宿日期 Case 8 ZSDJ(9).Text = Format(Val(ZSDJ(7).Text) * Val(ZSDJ(8).Text) / 100, 0.00) 计算实际宿费 Case 10 If ZSDJ(10).Text Then ZSDJ(10).Text = Val(ZSDJ(10).Text) 用val函数将字符串转换为数字 DTP2.Value = DTP1.Value + Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text) 计算提醒日期 End If End SelectEnd SubPrivate Sub ZSDJ_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) Select Case Index Case 0 If KeyCode = vbKeyReturn Then Combo1.SetFocus 按回车键Combo1获得焦点 Case 1 If KeyCode = vbKeyReturn Then ZSDJ(2).SetFocus 按回车键ZSDJ(2)获得焦点 Case 2 If KeyCode = vbKeyReturn Then ZSDJ(3).SetFocus 按回车键ZSDJ(3)获得焦点 Case 3 If KeyCode = vbKeyReturn Then DBCombo1.SetFocus 按回车键ZSDJ(2)获得焦点 Case 4 If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus 按回车键ZSDJ(5)获得焦点 Case 5 If KeyCode = vbKeyReturn Then ZSDJ(6).SetFocus 按回车键ZSDJ(6)获得焦点 Case 6 If KeyCode = vbKeyReturn Then ZSDJ(10).SetFocus Case 8 If KeyCode = vbKeyReturn Then ZSDJ(10).SetFocus 按回车键ZSDJ(10)获得焦点 Case 10 If KeyCode = vbKeyReturn Then ZSDJ(11).SetFocus ZSDJ(11)获得焦点 Case 11 If KeyCode = vbKeyReturn Then Comok.SetFocus 按回车键Comok获得焦点 End SelectEnd SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then ZSDJ(1).SetFocus 按回车键ZSDJ(1)获得焦点End SubPrivate Sub DBCombo1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus ZSDJ(5)获得焦点End SubPrivate Sub comdj_Click()查询空闲房间信息Set Room = mydb.OpenRecordset(select * from roomlogin where rstatue=空闲)On Error GoTo uRoom.MoveFirstCombo4.Text = Room.Fields(rname)ZSDJ(4).Text = Room.Fields(rtype)ZSDJ(5).Text = Room.Fields(rprice)Set Room = mydb.OpenRecordset(select * from roomlogin ) While Not Room.EOF If Room.Fields(rstatue) = 空闲 Then Combo4.AddItem Room.Fields(rname) Room.MoveNext Wendbh.Text = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time) 设置编号 ZSDJ(8).Text = : ZSDJ(10).Text = 设置控件有效或无效 Comok.Enabled = True: Comdj.Enabled = False: Comprint.Enabled = False: ZSDJ(8).Enabled = True ZSDJ(10).Enabled = True: Combo1.Enabled = True: DTP3.Enabled = True Combo2.Enabled = True: ZSDJ(0).Enabled = True: ZSDJ(0).SetFocus Label11.Caption = Combo5.TextExit Subu: h$ = MsgBox(没有空闲房间,客房已满, 48, Error): Comok.Enabled = False: Comprint.Enabled = False: Comcancel.Enabled = False: Comend.Enabled = True: Comdj.Enabled = True End Sub17
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


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

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


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