酒店管理系统课程设计.doc_第1页
酒店管理系统课程设计.doc_第2页
酒店管理系统课程设计.doc_第3页
酒店管理系统课程设计.doc_第4页
酒店管理系统课程设计.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

i 目录目录 第一章 系统概述1 1.1 系统开发背景和意义 .1 1.2 开发语言简介 .2 1.3 本系统简介 .2 1.4 系统运行环境 .2 第二章 系统可行性分析4 2.1 技术上可行性 .4 2.2 经济上可行性 .4 2.3 管理上可行性 .4 2.4 操作上的可行性 .5 第三章 系统需求分析6 3.1 系统主要功能 .6 3.2 系统数据流图 .7 3.3 数据字典 .7 3.4 e-r 图 .9 第四章 系统总体设计.11 4.1 系统功能设计 11 4.2 系统功能模块图 11 4.3 数据库设计 12 第五章 系统详细设计.15 5.1 系统详细设计目标规划 15 5.2 系统详细设计任务 15 5.3 系统物理方案配置设计 15 5.4 系统输入输出设计 16 ii 5.4.1 输入设计原则 16 5.4.2 数据输入设备的选择 16 5.4.3 输入检验设计 16 5.4.4 输出设计内容 16 5.4.5 错误改正方法 16 5.5 系统程序流程图 17 5.5.1 系统管理模块的程序流程图 17 5.5.2 客房标准管理模块的程序流程图 17 5.5.3 客房信息管理模块的程序流程图 19 5.5.4 订房信息管理模块的程序流程图 21 5.5.5 结算信息管理模块的程序流程图 22 第六章 系统编码实现.23 6.1 系统实现关键技术 23 6.1.1ado.net 数据访问技术 .23 6.1.2 系统主要控件 23 6.1.3 基本数据库操作 23 6.2 系统采用的数据模式 23 6.3 系统运行截图及编码 24 6.3.1 系统主界面 24 6.3.2 客房标准管理界面 28 6.3.3 客房信息管理界面 30 6.3.4 订房信息管理界面 32 6.3.5 结算信息管理界面 34 第七章 系统测试.36 7.1 测试说明 36 7.2 功能测试 36 7.2.1 用户登录 36 iii 7.2.2 客房标准管理 37 结束语43 参考文献45 1 第一章 系统概述 1.1 系统开发背景和意义 随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类 行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。酒店管理的信息化程 度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工 作业。无疑,使用网络信息化管理使酒店客房管理更先进、更高效、更科学,信息交 流更迅速。 酒店客房管理系统是典型的信息管理系统的一部分,而且是必不可少的一部分。 其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前 者要求建立起简洁且资料一致性和完整性强、资料安全性好的数据库。而对于后者则 要求应用程序功能完备,易使用等特点。 酒店客房管理系统是酒店经营管理中不可缺少的部分,它的内容对于经营的决策 者和管理者来说都至关重要,所以客房管理系统、信息管理系统应该能够为用户提供充 足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这 种管理方式存在着许多弊端,如:效率低、保密性差,容易出现差错等,且对于查询空 房间及已定房间等极为不方便。在当今时代,这些完全可以改用计算机来代替人的手 工操作。 作为计算机及网络应用的一部分,使用计算机对客房信息进行管理,具有手工管 理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、 寿命长、成本低等。这些优点能够极大地提高客房经营管理的效率,也是企业的科学 化、正规化管理,与世界接轨的重要条件。且办事效率也是决定收入的一个关键因素。 因此,我决定力求开发出一套界面友好,功能强大,使用简单的适用于各大、中、 小规模的酒店客房的管理系统。同时也是一款完全适合宾馆或旅馆酒店客房管理日常 业务管理的软件。 2 1.2 开发语言简介 经过分析,我使用 microsoft 公司的 visual c+ 6.0 作为开发工具和 microsoft office access 作为后台数据库管理,利用 visual c+ 6.0 提供的各种面向对象的开 发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断 修正和改进,直到形成用户满意的可行系统。microsoft 的 visual c+ 6.0 作为一种面 向网络、支持各种用户终端的开发平台环境,推动新一代因特网的发展,真正地让人 们可以在任何时间、任何地点、通过任何设备得到信息。 1.3 本系统简介 现代化的酒店组织庞大、服务项目多、信息量大,想要提高劳动生产、降低成本、 提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息 管理。酒店管理系统正是为此而设计的。优秀的酒店客房管理系统操作方便,灵活性 好,系统安全性高,运行稳定。这也是我所设计本程序的目的之一。本系统针对用户 和客户以及客房的管理采用了当今常用的 c/s 结构而设计。这样只需要一台计算机作 为服务器即可。前台应用只需有一台可连入局域网的计算机,这样就省去 c/s 结构中 的每台客户机都要安装客户端程序的麻烦。本系统分为后方管理和前台应用两大部分。 其中管理分为:注册和登录、客房标准管理、客房信息管理、订房信息管理、结算信 息管理以及帮助等几个模块。 1.4 系统运行环境 机型:pc 台式机 处理器:奔三 1.0g 或更高 内存:512m 或更高 硬盘:4g 或更高 输入输出设备:键盘、扫描仪、打印机、显示器等。 数据库软件:microsoft office access 3 编程工具、编程语言:visual c+ 编译软件:microsoft visual c+ 6.0 操作系统:microsoft windows xp 4 第二章 系统可行性分析 2.1 技术上可行性 编写语言:采用 visual c+语言进行编写。visual c+是一种安全的、稳定的、 简单的面向对象的编程语言。它在继承 c 强大功能的同时去掉了一些复杂特性,它还 综合了 vb 简单的可视化操作,以其强大的操作能力、优雅的语法风格、创新的语言特 性和便捷的面向组件编程的支持成为.net 的开发语言。由于对 visual c+技术比较熟 练,对于系统较为简单的,但基本功能较为完善的现代酒店管理系统来说是基本没有问 题的。 编程平台:编程平台采用 microsoft visual c+ 6.0.它已被证明是一个极其强大 和成功的开发平台,其成熟稳定能够充分保证软件设计的顺利进行。 数据库:数据库采用微软的 microsoft office access,虽然该数据库版本不是最 新的,但其工作稳定,功能强大,资源耗费较少,所以能够充分满足目前的需要。 以上所用技术都是成熟并且稳定的。因此,开发本系统在技术上是可行的。 2.2 经济上可行性 经济上主要考虑本系统带来的效益是否大于开发本系统的成本,由于本系统的开 发以课程设计为依托,参与人员的目的以学习为主,投入成本比较小。另外,系统管理 员和业务员都拥有计算机的专业知识。这些方面都可以为开发本系统节省资金。同时 无纸化办公可以节省资源,减少后期资源浪费。因此,开发本系统在经济是可行的。 2.3 管理上可行性 由于本系统功能较简单,对于工作人员不存在太大难度。对于系统管理员来说, 因为系统管理员拥有维护数据库系统的技能,对数据库中的数据进行添加、删除、更 新等操作是没有问题的。因此,开本系统在管理上是可行的。 在本系统的运营阶段,使用系统的工作人员,除了需要具备在 windows 平台上使 5 用个人电脑的知识,并不需要特别的技术能力。这方面的知识,在该酒店与本项目运 营相关的直接人员中已经具备。 2.4 操作上的可行性 该酒店管理系统具备友好的用户界面,使用方便,易于维护,操作简单易于被用 户接受。用户只需熟练操作计算机,和对此系统使用做简单的了解即可方便使用,而 且使用此系统可以大大减少管理人员的负担。因此从使用操作方面看,此系统的开发 是可行的。 综上所述,开发本系统,在经济上、技术上、管理上以及操作上都是可行的 6 第三章 系统需求分析 3.1 系统主要功能 系统功能分析在系统开发的总体任务基础上完成。 主要功能有以下几方面: 1)客房标准信息的制定:客房编号、客房类型名、房间面积、容纳人数、住房价 格、是否有空调、电话、电视机、网络以及独立卫生间等。 2)客房标准信息的添加、修改、查询、删除等。 3)客房信息管理制定:包括客房编号、客房类型名、客房价格、状态等。 4)客房基本信息的添加、查询、修改:包括客房编号、客房类型、客房单价等。 5)剩余空房、客房未满信息的查询。 6)订房信息管理的录入:客户类型、姓名、证件号码、人数、入住日期、入住时 间、订餐、押金等。 7)结算信息管理的记录,包括客房编号、客户类型、姓名、证件号码、入住人数、 入住日期、用餐标准、结算日期、押金、结算金额等。 7 3.2 系统数据流图 f3 住宿登记 d1 客户信息 f1 查询房态 d3 登记表 d2 预收金额表 d4 客房信息表 f2 住宿登记单d5 结算信息表 f4 退房 图 3.1 宾馆管理数据流图 3.3 数据字典 表 3-1 客户信息存储表 数 据 存 储 条目名: 订房信息 记录数: 记录所有订房客户信息 主关键字: 客房编号 记录组成: 项目: 客房编号+客户类型+客户姓名+证件号码+入住人数+入住时间+订 餐+押金 1 住宿 登记 2 顾客 结帐 8 表 3-2 客房信息存储表 数 据 存 储 条目名:客房信息 记录数:记录所有房间信息 主关键字:客房号 记录组成: 项目: 客房编号+客房类型+客房价格+客房状态 表 3-3 客房类型信息存储表 数 据 存 储 条目名: 客房标准类型 记录数: 记录房间类型 主关键字:房间编号 记录组成: 项目: 房间编号+房间类型+面积+额定人数+空调+电视+卫生间+电话+网 络+价格 表 3-4 结算信息存储表 数 据 存 储 条目名: 结算信息 记录数: 记录客户退房信息 主关键字:房间编号 记录组成: 项目: 房间编号+登记类型+登记人姓名+证件号+人数+入住时间+用餐标 准+结算时间+押金+结算金额 9 3.4 e-r 图 客房标准信息 客房类型 电话客房面积容纳人数空调电视网络 卫生间 客房编号 价格 图 3.2 客房信息 e-r 图 客房编号客房类型客房价格使用状态 图 3.3 客房使用信息 e-r 图 订房信息 客房编号 人数客户类型客户姓名证件号码入住日期入住时间 订餐 押金 图 3.4 订房信息 e-r 图 客房使用信息 10 退房结算信息 登记类型 入住时间登记人证件号码入住人数退房时间用餐标准 押金 客房编号 结算金额 图 3.5 退房信息 e-r 图 11 第四章 系统总体设计 4.1 系统功能设计 1.客房信息管理功能模块包括客房标准信息设置模块和客房信息设置模块。 客房标准信息设置模块主要实现: 1)客房标准信息设置 2)客房标准信息添加 3)客房标准信息修改 4)客房标准信息删除 2.客房信息设置模块主要实现: 1)客房信息查询 2)客房信息添加 3)客房信息修改 4)客房信息删除 2.订房信息管理包括: 1)剩余客房信息查询:可以通过系统对宾馆内剩余的客房进行查询,可以了解到 未被预定及未被使用的客房的编号、客房类型、客房价格等。 2)订房信息的添加:通过宾馆管理系统可以对入住的顾客的信息进行添加。包括 顾客的姓名、一些个人信息以及对顾客所住的客房的有关信息的添加,包括客房编号、 客房单价、入住日期、押金等。 3)订房信息的查询:通过系统可以查询到在住顾客的信息包括顾客姓名、证件号 码等。还可以查到该顾客所住的客房编号客房单价、入住日期、押金等。 4.2 系统功能模块图 根据上述系统功能分析,能得出下面系统软件功能模块图: 12 酒店信息管理系统 结 算 信 息 管 理 订 房 信 息 管 理 客 房 信 息 管 理 系 统 管 理 结 算 信 息 查 询 结 算 信 息 退 房 订 房 信 息 查 询 订 房 信 息 删 除 订 房 信 息 添 加 设 置 客 房 信 息 设 置 客 房 标 准 退 出 管 理 用 户 管 理 客 房 信 息 查 询 客 房 信 息 修 改 客 房 信 息 添 加 客 房 标 准 修 改 客 房 标 准 添 加 客 房 标 准 管 理 结 算 信 息 查 询 结 算 信 息 修 改 结 账 信 息 删 除 结 账 信 息 添 加 结 账 信 息 删 除 图 4.1 系统软件功能模块图 4.3 数据库设计 在需求分析阶段所确定的宾馆餐饮管理系统数据需求的基础上,进一步设计数据 库。 1.系统用户数据表(用户信息表)记录系统所有用户名和密码信息,表中的各个 字段以及各个字段的说明如表 4-1 13 表 4-1 用户信息表 列名数据类型说明 name 文本用户名 password 文本密码 level 数字权限 2.客房标准数据表,记录客房标准的信息,表中各个字段以及各个字段的说明如 表 4-2 表 4-2 客房标准信息表 列名数据类型说明 id 文本客房编号 type 文本客房类型 area 数字客房面积 peoplenum 数字容纳人数 aircondition 数字空调:0=无,1=有 telephone 数字电话:0=无,1=有 television 数字电视:0=无,1=有 internet 数字网络:0=无,1=有 washroom 数字卫生间:0=无,1=有 price 数字价格 3.客房信息数据表,记录酒店客房使用情况的信息,表中各个字段以及各个字段的 说明如表 4-3 表 4-3 客房信息表 列名数据类型说明 id 文本客房编号 type 文本客房类型 price 数字价格 status 文本客房状态:空闲/预订 14 4.订房信息管理数据表,记录预定酒店房间客户的信息,表中各个字段以及各个 字段的说明如表 4-4 表 4-4 订房信息表 列名数据类型说明 id 文本客房编号 ordertype 文本登记类型 ordername 文本登记人姓名 orderpaper 文本登记人证件号 orderacount 数字入住人数 startday 文本入住日期 starttime 文本入住时间 dinner 数字用餐标准 deposit 数字押金 5.结算信息管理数据表,记录客户结账时的信息,表中各个字段以及各个字段的 说明如表 4-5 表 4-5 结算信息表 列名数据类型说明 id 文本客房编号 price 数字价格 dinner 数字餐费 endday 文本退房日期 endtime 文本退房时间 day 数字天数 repay 数字折扣 money 数字金额 15 第五章 系统详细设计 5.1 系统详细设计目标规划 在此阶段设计出具体能够运行的系统,详细列出新系统的各种参数与规格。为即 将用 visual c+编程语言对其进行编写做好准备。 5.2 系统详细设计任务 1.算法过程的设计: 本详细设计采用的是流程图的方式来表达每个处理过程的算法。 2.数据结构的设计: 对于处理过程中涉及的概念性的数据类型进行确切的定义。 3.测试用例设计: 测试用例包括输入数据和预期结果等内容。 5.3 系统物理方案配置设计 1.设计指标 1)系统的可靠性:该系统要求 24 小时不间断工作工作,发生错误的概率低于 0.01%。 系统吞吐量 2)要提高系统的吞吐量:要求使用具有大吞吐量的计算机。应该选择具有较高性 能的计算机。 3)系统响应时间:响应时间不超过 2 秒 4)系统处理方式:该系统采用主机系统方式。 5)地域范围:本系统采用局域网方式。 6)数据管理方式:使用 microsoft office access 数据管理系统 2.计算机硬件配置 16 计算机硬件选择取决于要运行的软件系统,本系统建议最低采取如下配置:内存: 512mb;cpu:奔三 1.0ghz 以上;硬盘:空余空间 4g。 5.4 系统输入输出设计 5.4.1 输入设计原则 1.输入数据量设计:需要输入客户数据,数据量不大。 2.输入错误检测:检测客户登记状态,确保不会重复登记或登记错误。 5.4.2 数据输入设备的选择 本系统选择键盘、鼠标人工输入方式。 5.4.3 输入检验设计 本系统对输入检验设计的地方有如下几处: 1.当前台工作人员输入客户数据时,系统会自动检测该信息是否已在系统中存在。 2.当业务员输入房间号时,系统会检测该房间号是否存在,若不存在会提示酒店 没该房间。 5.4.4 输出设计内容 1.输出信息应包括系统的使用者,如客户、酒店管理人员、前台服务人员等。 2.信息应以表格及文档形式输出。 3.输出设备:打印机、终端显示器。 4.输出介质:输出到专用纸张及电脑屏幕上。 5.4.5 错误改正方法 系统出现错误时,将弹出提示框。并允许工作人员改正。 17 5.5 系统程序流程图 5.5.1 系统管理模块的程序流程图 1.用户登陆程序流程图如图 5.1 所示 y n 登录 输入用户名和密码 信息是否正确 成功登录 出错提示 结束 图 5.1 用户登陆程序流程图 2.修改用户信息程序流程图如图 5.2 所示 y 注册 输入用户名和密码 结束 权限选择取消 注册成功 确定 取消 n 图 5.2 用户注册程序流程图 5.5.2 客房标准管理模块的程序流程图 1.编辑客房标准信息程序流程图如图 5.3 所示 18 y n n y 开始 输入修改信息 输入是否为非空 错误提示 输入是否正确 错误提示 修改成功 结束 图 5.3 编辑客房标准信息程序流程图 2.添删客房标准信息程序流程图如图 5.4 所示 y n yy y n n n y n y 开始 输入添加信息 输入是否为非空 是否符合权限 添加客房标准成功 结束 输入删除信息 输入是否为非空 是否符合权限 删除客房标准成功 是否不在表中是否已在表中 图 5.4 添删客房标准信息程序流程图 19 3.显示客房标准信息程序流程图如图 5.5 所示 n y 结束 是否在表中 显示客房标准信息 开始 图 5.5 显示客房标准信息程序流程图 5.5.3 客房信息管理模块的程序流程图 1.编辑客房信息程序流程图如图 5.6 所示 y n n y 开始 输入修改信息 输入是否为非空 错误提示 输入是否正确 错误提示 修改成功 结束 图 5.6 编辑客房标准信息程序流程图 20 2.添删客房信息程序流程图如图 5.7 所示 y n yy y n n n y n y 开始 输入添加信息 输入是否为非空 是否符合权限 添加客房信息成功 结束 输入删除信息 输入是否为非空 是否符合权限 删除客房信息成功 是否不在表中是否已在表中 图 5.7 添删客房标准信息程序流程图 3.显示客房信息程序流程图如图 5.8 所示 n y 结束 是否在表中 显示客房信息 开始 图 5.8 显示客房信息程序流程图 21 5.5.4 订房信息管理模块的程序流程图 1.编辑预定信息程序流程图如图 5.9 所示 n y y n 输入编辑信息 预定房间是否为空 存储内容 开始 是否符合权限 图 5.9 编辑预定信息程序流程图 2.添删预定信息程序流程图如图 5.10 所示 y n y n 开始 输入预定信息 预定房间是否存在 删除预定信息 结束 输入预定信息 预定房间是否空闲 添加预定信息 图 5.10 添删预定信息程序流程图 3.显示预定信息程序流程图如图 5.11 所示 开始 22 n n y y n 开始 结束 是否输入房间编号 y 是否在预定信息中 显示预定信息 得到房间号 是否在预定信息中 显示预定信息 图 5.11 显示预定信息程序流程图 5.5.5 结算信息管理模块的程序流程图 1.编辑结算信息程序流程图如图 5.12 所示 n y y n 开始 输入客房编号 客房信息是否存在 结算信息 退房 是否符合级别 图 5.12 编辑结算信息程序流程图 23 第六章 系统编码实现 6.1 系统实现关键技术 6.1.1ado.net 数据访问技术 ado.net,其提供对各种数据库访问的标准接口。 包括的主要对象有: 1)连接对象 connection:连接时必须指定要连接到的数据源以及连接所使用的 用户名和口令等信息。 2)命令对象 command:可以通过已建立的连接发出命令,对数据源进行指定的操 作。 3)记录集对象 dataset:查询命令可以将查询结果存储在本地,这些数据以“行” (记录)为单位,返回数据的集合被称为记录集。 4)字段对象 row:一个记录集行包含一个或多个字段。如果将记录集看作二维网 格,字段将排列起来构成列。每一字段(列)都分别包含有名称、数据类型和值的属 性。 6.1.2 系统主要控件 如基本对话框,button,text box,checkbox,combox 等基本控件的基本操作。还 有与数据库连接与操作相关的控件的基本设置与使用。了解 windows 的消息响应函数, 和基于对话框的编程等基本原理及思想。 6.1.3 基本数据库操作 如创建基本表,视图等基本操作。 24 6.2 系统采用的数据模式 将对数据库的操作独立制作成 com 组件,实现数据库开发的三层体系结构,即数 据库、中间层和前端应用程序。如登陆模块的实现则是采用了三层设计的结构。 6.3 系统运行截图及编码 6.3.1 系统主界面 1.注册界面 图 6.1 用户注册界面 void cregisterdlg:onok() / todo: add extra validation here /定义加密解密模块指针,并初始化 cmd5* mymd5 = new cmd5; cstring username,strtemp,strsql,password,passwordc,strlevel; updatedata(true); 25 /获取用户输入的用户名 m_username.getwindowtext(strtemp); /加密用户输入的用户名 username=mymd5-md5_algorithm(strtemp); /获取用户输入的密码 m_password.getwindowtext(strtemp); /加密用户输入的密码 password=mymd5-md5_algorithm(strtemp); /获取用户输入的确认密码 m_passwordc.getwindowtext(strtemp); /加密用户输入的确认密码 passwordc=mymd5-md5_algorithm(strtemp); /对查询字符串进行赋值 strsql=“select * from userinformation where name = “+username+“ “; /初始化记录集 m_prs.createinstance(“adodb.recordset“); /打开记录集 /从数据库中查找输入用户名 m_prs-open(_variant_t)strsql, _variant_t(idispatch *)theapp.m_pconnection,true), adopenstatic, adlockoptimistic, adcmdtext); /如果用户名存在,则提示“用户名存在,请重新输入用户名” if(m_prs-getrecordcount()!= 0) afxmessagebox(“此用户名已存在,请重新输入用户名“); m_username.clear(); m_username.setfocus(); /如果用户名不存在,判断两次输入的密码是否一致 /如果两次一致则保存注册信息,否则重新输入密码 else if(level()=0) afxmessagebox(“请选择用户权限“); else if(password.comparenocase(passwordc)=0) m_prs-addnew(); 26 m_prs-putcollect(“name“,_variant_t(username); m_prs-putcollect(“pwd“,_variant_t(password); /将 int 型转换成 cstring 型 strlevel.format(“%d“,level(); m_prs-putcollect(“level“,_variant_t(strlevel); m_prs-update(); afxmessagebox(“用户注册完毕“); /清空输入信息 m_username.clear(); m_password.clear(); m_passwordc.clear(); cdialog:onok(); else afxmessagebox(“输入密码不一致请重新输入密码“); /清空输入信息 m_password.clear(); m_passwordc.clear(); /设置焦点 m_password.setfocus(); 2.登陆界面 27 图 6.2 用户登陆界面 void cuserdlg:onloginbtn() / todo: add your control notification handler code here cstring password,strpassword; int nlevel; cstring username,strtemp; updatedata(true); /实例化加密解密算法类型 cmd5* myencrypt = new cmd5; /获取用户输入的用户名 m_username.getwindowtext(strtemp); /加密用户名 username=myencrypt-md5_algorithm(strtemp); /调用 getpassword 函数判断数据库中是否有用户输入的用户名 /如果有则返回与用户名相对应的用户密码 if(m_userdata-getpassword( /加密用户密码 password=(cstring)myencrypt-md5_algorithm(strtemp); 28 /和数据库中密码比较,得到登录密码 if(password.comparenocase(strpassword)=0) messagebox(“登录系统成功“,“系统登录“,mb_ok|mb_iconwarning); theapp.m_level = nlevel; cdialog:onok(); updatedata(false); else /如果登录次数小于 3,程序关闭 if (countopen(“select * from roomstandard“,_variant_t(idispatch *)theapp.m_pconnection,true),adopendynamic,adlockpessimistic,adcmdtext); 30 m_dgstandard.setrefdatasource(null); m_dgstandard.setrefdatasource(lpunknown)m_precordset); m_dgstandard.setcolumnheaders(2) ; _variant_t var; var = long(0); m_dgstandard.getcolumns().getitem(var).setcaption(“编号“); m_dgstandard.getcolumns().getitem(var).setwidth(40); var = long(1); m_dgstandard.getcolumns().getitem(var).setcaption(“类型“); m_dgstandard.getcolumns().getitem(var).setwidth(50); var = long(2); m_dgstandard.getcolumns().getitem(var).setcaption(“面积“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(3); m_dgstandard.getcolumns().getitem(var).setcaption(“容纳“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(4); m_dgstandard.getcolumns().getitem(var).setcaption(“空调“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(5); m_dgstandard.getcolumns().getitem(var).setcaption(“电话“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(6); m_dgstandard.getcolumns().getitem(var).setcaption(“电视“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(7); m_dgstandard.getcolumns().getitem(var).setcaption(“网络“); m_dgstandard.getcolumns().getitem(var).setwidth(30); var = long(8); m_dgstandard.getcolumns().getitem(var).setcaption(“卫生间“); m_dgstandard.getcolumns().getitem(var).setwidth(40); var = long(9); m_dgstandard.getcolumns().getitem(var).setcaption(“价格“); m_dgstandard.getcolumns().getitem(var).setwidth(30); m_dgstandard.refresh(); updatedata(false); return true; / return true unless you set the focus to a control / exception: ocx property pages should return false 31 6.3.3 客房信息管理界面 图 6.4 客房信息管理界面 bool croomdlg:oninitdialog() cdialog:oninitdialog(); / todo: add extra initialization here m_strroomstatus = _t(“预订“); m_strroomtype = _t(“单人间“); m_strroomid = _t(“0“); m_nroomprice = 0; m_precordset.createinstance(“adodb.recordset“); m_precordset-open(“select * from roominformation“,_variant_t(idispatch *)theapp.m_pconnection,true),adopendynamic,adlockpessimistic,adcmdtext); m_dgroom.setrefdatasource(null); m_dgroom.setrefdatasource(lpunknown)m_precordset); m_dgroom.setcolumnheaders(2) ; 32 _variant_t var; var = long(0); m_dgroom.getcolumns().getitem(var).setcaption(“编号“); m_dgroom.getcolumns().getitem(var).setwidth(40); var = long(1); m_dgroom.getcolumns().getitem(var).setcaption(“类型“); m_dgroom.getcolumns().getitem(var).setwidth(50); var = long(2); m_dgroom.getcolumns().getitem(var).setcaption(“价格“); m_dgroom.getcolumns().getitem(var).setwidth(40); var = long(3); m_dgroom.getcolumns().getitem(var).setcaption(“状态“); m_dgroom.getcolumns().getitem(var).setwidth(50); m_dgroom.refresh(); updatedata(false); return true; / return true unless you set the focus to a control / exception: ocx property pages should return false 33 6.3.4 订房信息管理界面 图 6.5 订房信息管理界面 bool corderdlg:oninitdialog() cdialog:oninitdialog(); / todo: add extra initialization here m_strorderdinner = _t(“100“); m_strordertype = _t(“会员“); m_timeorderd = 0; m_timeordert = 0; m_strorderid = _t(“0“); m_strordername = _t(“0“); m_strordernums = _t(“1“); m_norderpeople = 0; m_norderyajin = 0; m_timeorderd = ctime:getcurrenttime(); m_timeordert = ctime:getcurrenttime(); m_precordset.createinstance(“adodb.recordset“); m_precordset-open(“select * from orderinfo“,_variant_t(idispatch 34 *)theapp.m_pconnection,true),adopendynamic,adlockpessimistic,adcmdtext); m_dgorder.setrefdatasource(null); m_dgorder.setrefdatasource(lpunknown)m_precordset); m_dgorder.setcolumnheaders(2) ; _variant_t var; var = long(0); m_dgorder.getcolumns().getitem(var).setcaption(“编号“); m_dgorder.getcolumns().getitem(var).setwidth(40); var = long(1); m_dgorder.getcolumns().getitem(var).setcaption(“类型“); m_dgorder.getcolumns().getitem(var).setwidth(40); var = long(2); m_dgorder.getcolumns().getitem(var).setcaption(“登记人“); m_dgorder.getcolumns().getitem(var).setwidth(40); var = long(3); m_dgorder.getcolumns().getitem(var).setcaption(“证件号“); m_dgorder.getcolumns().getitem(var).setwidth(50); var = long(4); m_dgorder.getcolumns().getitem(var).setcaption(“人数“); m_dgorder.getcolumns().getitem(var).setwidth(30); var = long(5); m_dgorder.getcolumns().getitem(var).setcaption(“入住日期“); m_dgorder.getcolumns().getitem(var).setwidth(50); var = long(6); m_dgorder.getcolumns().getitem(var).setcaption(“入住时间“); m_dgorder.getcolumns().getitem(var).setwidth(50); var = long(7); m_dgorder.getcolumns().getitem(var).setcaption(“订餐“); m_dgorder.getcolumns().getitem(var).setwidth(30); var = long(8); m_dgorder.getcolumns().getitem(var).setcaption(“押金“); m_dgorder.getcolumns().getitem(var).setwidth(30); m_dgorder.refresh(); updatedata(false); return true; / return true unless you set the focus to a control / exception: ocx property pages should return false 35 6.3.5 结算信息管理界面 图 6.6 结算信息管理界面 void ccheckdlg:onchangeeditcheckid() / todo: add your control notification handler code here updatedata(true); cstring sql,str,str1; sql = “select * from orderinfo where id = “+m_strcheckid+“; m_precordset.createinstance(“adodb.recordset“); m_precordset- open(_variant_t)sql,_variant_t(idispatch*)theapp.m_pconnection,true),adopendynamic,adlockpessi mistic,adcmdtext); if(m_precordset-getrecordcount()!= 0) m_strchecktype = m_precordset-getcollect(“ordertype“).bstrval; m_strcheckname = m_precordset-getcollect(“ordername“).bstrval; m_strchecknums = m_precordset-getcollect(“orderpaper“).bstrval; m_ncheckpeople = m_precordset-getcollect(“orderacount“).lval; m_ndinner = m_precordset-getcollect(“dinner“).lval; m_nyajin = m_precordset-getcollect(“deposit“).lval; str = m_precordset-getcollect(“startday“).bstrval; m_timectrlorderd.setformat(str); str = m_precordset-getcollect(“starttime“).bstrval; m_timectrlordert.setformat(str); 36 str = m_precordset-getcollect(“startday“).bstrval; m_timectrlorderd.setformat(str); str1 = m_precordset-getcollect(“starttime“).bstrval; m_timectrlordert.setformat(str1); /str to ctime m_timeorderd = strtotime(str, str1); / m_precordset-close(); updatedata(false); 37 第七章 系统测试 7.1 测试说明 完成编码和界面实现后,并不代表就完成了整个系统的制作,接下来就要对该酒 店管理系统的功能和稳定性进行软件测试,尽量测试出设计中不合理的部分,并及时 作出修改,完善系统。本系统采用黑盒测试,测试方案包括功能测试、输入错误信息、 输入不合理数据等,从而检测系统是否能够执行预计功能以及对错误信息是否具有识 别功能。 7.2 功能测试 7.2.1 用户登录 在用户登录系统时,如果输入的用户名或者密码为空,系统将提示密码错误,错 误提示如图 7.1 所示 38 图 7.1 用户登陆错误时的提示 7.2.2 客房标准管理 用户可以对客房标准信息进行查询、添加、编辑、删除等操作。 当用户进行客房标准信息时,可以输入客房编号进行查询,如果所查客房存在, 则会显示客房详细信息。如图 7.2 所示 39 图 7.2 客房信息存在 若不存在,则不会有任何变化,为最初状态。如图 7.3 所示 图 7.3 客房信息不存在 添加房间时可直接输入房间编号、类型、面积、容纳人数等信息,同时可以选择 空调、电视、电话。网络等信息。完成后点击添加按钮。若房间号不存在可直接添加。 如图 7.4、图 7.5 所示 40 图 7.4 输入房间数据 图 7.5 点击添加按钮 若房间号已存在,则会提示该客房已添加,请重新输入客房。如图 7.6 所示 图 7.6 重复添加客房信息 若对房

温馨提示

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

评论

0/150

提交评论