软件工程学.docx

上传人:小飞机 文档编号:1675965 上传时间:2022-12-13 格式:DOCX 页数:74 大小:1.34MB
返回 下载 相关 举报
软件工程学.docx_第1页
第1页 / 共74页
软件工程学.docx_第2页
第2页 / 共74页
软件工程学.docx_第3页
第3页 / 共74页
软件工程学.docx_第4页
第4页 / 共74页
软件工程学.docx_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《软件工程学.docx》由会员分享,可在线阅读,更多相关《软件工程学.docx(74页珍藏版)》请在三一办公上搜索。

1、软件工程学酒 店 管 理 系 统院 系 信 科 院专 业 计算机科学与技术 班 级 13级计科一班 学 号 学 生 姓 名 陈勇 李闯 郭亚岭 刘刚2014年 1月摘 要本文主要论述了分析、开发、设计一个酒店管理系统的过程。并从需求分析、系统分析、系统设计、系统实施等环节具体说明该制作流程。该系统融入酒店科学、规范的现代管理思想,为提高各业务部门本身的工作效率,自动完成各业务部门之间的各种营业信息、账务、报表的自动化传输与汇总,使各项业务工作制度化,规范化,科学化。本系统共四大功能模块:欢迎界面,登陆界面,管理员界面,操作界面,主要针对管理员和操作员两大对象进行设计开发。管理员主要负责查账汇总

2、,以及对酒店经营情况的监控,来实时调整酒店管理策略,以便提高酒店的收益,对操作员进行增添、删除及系统维护等。操作员主要负责开台点菜,菜品的增添、删除及自动结账。分工明细,安全保密。此系统采用Java开发,使用Microsoft Office Access 数据库。继承Java的“Write Once, Run Anywhere”的优点,可以在任何一个系统下运行,具有很强的稳定性,健壮性和安全性,且本系统界面友好,操作简单,较易实用。 关键词:酒店管理系统;功能模块; Java;目 录第1章 绪 论11.1 研究背景11.2 系统简介1第2章 可行性研究与系统开发计划32.1 可行性分析32.2

3、 系统开发计划32.2.1 系统项目概述和实施计划42.2.2 Gantt图4第3章 系统分析63.1 需求分析63.1.1 数据库需求分析63.1.2 功能需求分析73.2 系统目标9第4章 系统设计114.1 系统结构设计114.2 系统功能设计134.3 数据库设计304.3.1 数据库概要设计304.3.2 数据库详细设计354.4 主要模块设计394.4.1主界面1(登陆界面)设计:394.4.2主界面2(操作员界面)设计:404.4.3 主界面3(管理员管理)设计:414.4.4分割面板的设计:414.4.5取系统时间模块设计:424.4.6身份选择434.4.7正则表达式454.

4、4.8获取系统当天时间的类45第5章 系统具体实现485.1 欢迎界面实现:485.2 登陆界面实现505.3 管理员界面实现535.4 操作员界面实现555.5 系统功能实现575.5.1 日结账功能575.5.2月结账和年结账605.5.3 菜单管理605.6 本系统的一些特色方法60第6章 系统软件测试646.1 测试方法646.2 测试用例646.3 测试总结66总 结 语67参 考 文 献68第1章 绪 论1.1 研究背景“民以食为天”,随着人民生活水平的不断提高,餐饮业在服务业中的地位也越来越重要,如何从激烈的竞争中脱颖而出,有效的管理酒店日常事务,避免一些人为因素造成的不可避免的

5、错误,已经成为我们餐饮经营者思考的问题。当今,席卷全球的信息化大潮把信息管理推到了时代发展的前沿,信息管理系统已经成为全社会注视的热点。酒店作为一个成熟的产业,各种酒店管理软件众多,有条件的酒店或宾馆采用自主开发或委托软件开发商开发出的专用软件,部分大型酒店也已经使用市场上的有关酒店管理系统(一般价格也较昂贵)。然而占着绝大多数的中小型酒店、宾馆由于资金、人员等多方面原因不易使用酒店管理类软件,全凭原始的手工记录管理,效率低、易出错;同时,市场上出现的各类酒店管理软件基本上都是为大型酒店专业设计的,有很多功能对于一般酒店、宾馆根本用不上。软件市场急需一套低廉的价格、完善的服务,齐全的功能为基础

6、,结合酒店前台管理的需要进行扩展性而开发的一套酒店管理系统。1.2 系统简介一该系统采用面向对象设计方法,面向管理员和操作员两个操作对象。用户可以根据身份角色选择登陆模式,每个对象都有单独的操作界面,每个界面又包含各自不同的操作功能。这种设计使得管理分工明细,安全保密,且界面简单明了,操作方便,大大提高了操作效率。二本系统主要实现以下几个功能:1) 开台点菜,即根据客人数量及需求为客人安排合适的餐桌,然后进行相应的点菜及签单。2) 自动结账,即在客人消费之后,对其消费进行汇总结账。3) 菜品管理,即对酒店菜品种类进行排号、增添及见删除来适应酒店的动态经营模式,根据时期、季节来实时更换菜品种类。

7、4) 账务管理,此管理主要针对管理员,实现对本店一日、一月或一年的营业记录进行查询汇总。5) 用户管理,此管理主要针对管理员,实现对操作员的增添、删除及自身密码的修改。6) 超级管理,设计一名超级管理员可以对所有管理员进行管理。7) 帮助中心,针对本系统的所有操作辅以文档加以说明。8) 退出,即退出系统,防止操作不慎关闭了操作对话框。三其次系统设置:1在用户登录系统时进行身份验证,只允许合法用户进入系统。2即时的权限分配功能,允许管理员即时对用户的权限进行分配,充分保证了系统运行的安全性。3对系统管理员和一般操作员实行功能分离,即有些功能只有系统管理员能用。4数据库的备份功能,保证了数据的安全

8、。第2章 可行性研究与系统开发计划2.1 可行性分析1. 竞争可行性:由于现在的人工管理已经难以满足餐饮业发展的需要,广大餐饮业经营者已经意识到使用计算机软件的重要性,因此餐饮业的管理阶层必须引入计算机软件管理系统以提高本身的竞争力。2. 技术可行性:根据餐饮业的特点和实际情况,酒店管理系统以餐饮业务为基础,突出前台管理,重视数据分析等功能;从专业角度出发:努力为餐饮管理者提供科学、有效的管理模式和数据分析功能。因为该系统具有友好的人机互操作界面,操作人员只要进行少量的培训,系统的功能和使用方法就基本上能够是系统顺利运行。3. 经济可行性:在以往的人工管理模式中,餐饮业为了扩大自己的经营不得不

9、雇佣更多的人来做财务、服务、分析等等,这就必须增加投资成本,而且还存在着人为情况下的错误。然而在引入了计算机管理以后,就可以减少这些部分的设置,降低成本的同时又不影响增加本身的扩张。4. 社会可行性:主要分析该系统对社会的影响,包括提高竞争力、经济统计、查看业务情况等。操作可行性分析:本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解2.2 系统开发计划软件开发方式:采用面向对象技术面向对象方法是利用抽象、封装等机制,借助于类、对象、继承、消息传

10、递等技术进行系统构造的软件开发方法。它使我们认识一个问题的过程和方法与我们分析、设计和实现一个系统的过程和方法尽可能地一致,在一定的时间和空间上为我们提高了效率,更加全面的认知了事物,这样面向对象方法较为自然地模拟了人类认识世界的方式,让我们从最本质的出发点开发我们的系统,得到了更好的思维方式。 2.2.1 系统项目概述和实施计划系统项目概述:我们本系统的主要内容是用java语言编写一个酒店管理系统的软件,它可以用来方便地为酒店的收银员和管理人员提供收银功能以及管理、查询业务功能。收银员(操作员)可以通过操作员界面完成对客户的开单、收钱以及菜品、菜系和台号等后台管理。管理员也可以查询酒店的业绩

11、以方便及时地做出相应的决策来提高自己的竞争力。为了完成本系统的编写,我们组的成员应该具有一定的java语言功底,能够编写一些常用的类和对数据库有一定的认识。在本以及系统完成后我们小组应该提交的东西有:java程序、打包文件、数据库相应的文档说明。系统实施计划本系统可以分解为几个不同界面的设计和相应的文档编写,在每个界面的设计中可以实现一定的功能,如:操作员界面可以实现点菜、开单、一定的后台管理等功能。此系统的关键问题是:管理员怎么能够实现对操作员的管理以及这些管理员又怎么能够被一个或两个超级管理员来进行管理。2.2.2 Gantt图Gantt图(又称横道图)是安排工程进度计划的简单工具。用Ga

12、ntt图描述工程进度时,首先要把整个工程的任务划分为一些细致的小任务,常用水平线来描述每个子任务的进度安排,并描述工程各项任务之间在时间上的并行与串行关系,该方法简单了然。鉴于Gantt图的上述优点,我们在开发本系统时,我们就采用了Gantt图来安排我们开发系统的进度,用科学的方法安排我们开发的进度有效的提高我们开发的效率和系统的规范性。如下我们可以清晰地看到工程进度的计划,我们事先将本系统的编写分解为一些子任务,然后制定每个子任务的完成时间,并且给每个子任务一定的额外时间以便其进行修改。该图描述了各个子任务之间在时间进度上的并行关系和串行关系,达到了简单易懂、一目了然的目的。任务负责人10月

13、11月12月123412341234需求分析郭亚岭测试计划郭亚岭概要设计郭亚岭详细设计刘刚编码刘刚模块测试陈勇集成测试陈勇验收测试李闯文档书写李闯*:1,2,3,4表示每个月的第几个星期5第3章 系统分析3.1 需求分析3.1.1 数据库需求分析数据库结构设计的第一阶段也是主要的一个阶段是数据库的需求分析。在这个阶段我们通过通过一系列的用户调查、网上查找,以及自身了解掌握的用户需求,进行了数据的采集和对数据的处理操作,以确保数据采集的详细准确,理清数据库中各个数据项的关系,同时将相应条目进行分类汇总,加入到相应表中,这将为系统的设计打基础。在数据库分析阶段要做到两点:1) 应用系统用户所需要操

14、作的数据决定在数据库中存储什么数据。2) 应用系统用户要求对数据进行什么样的处理,理清数据库中各个数据项的关系。本系统针对的是酒店管理,酒店管理的需求包括开台点菜功能、智能获取菜品功能、自动结账功能、营业额报表功能、用户查询等。在这些功能中主要涉及的数据表包括台号表、菜品表、消费单表、用户信息表。 故所需要处理的信息有以下几类: 菜品信息:包括序号、编号、名称、助记码、菜系、单位、单价。 台号管理:包括序号、台号、座位号。 消费单:编号、消费台号、消费时间、消费金额、操作用户。 账务信息:编号、台号、开台时间、消费金额,点菜记录。 用户信息:序号、姓名、性别、出生日期、登陆密码、身份证号、身份

15、级别。通过对上述信息的分析,综合数据库设计方法,我们画出了本数据库的实体关系图,以便于数据的库的建立和数据的分析,如下:管理员性别密码姓名编号身份证号操作员性别姓名密码编号身份证号管理操作酒店系统开台点菜菜品管理用户管理自动结账退出图3-1 数据库实体关系图3.1.2 功能需求分析本系统主要有四大功能模块:欢迎界面、登陆界面、管理员操作界面、操作员操作界面。1. 欢迎界面:由于我们所做的软件是一个和sql数据库进行连接的桌面程序,系统开启的时间需要等待一定的时间,在这一段时间中,如何让用户知道程序已经启动?如何让用户知道程序加载到什么程度,我们由此加入了一个“欢迎界面”。在这个界面下,我们通过

16、一个可视的界面来显示程序已经启动,同时,提供给用户当前系统加载的情况。使得用户对系统有一个清晰的认识,不会出现忙等的状况。2. 登陆界面:主要有登录名文本框、登陆密码文本框、记住密码按钮、操作员和管理员单选按钮等组成。该界面的主要功能是:用户根据自身身份的不同,选择不同的登录角色,通过用户名和密码认证才可以进入到相应主界面进行操作,否则不能进入。提高了管理的科学性,同时保证了该系统的安全保密性。在此界面下,我们对用户名的输入框进行了改进:为了避免传统用户名需要用户自己输入的繁琐过程,我们采用了下拉列表框的方式,系统会根据所选用户什么的不同,动态加载相应用户模式下符合条件的用户,用户只需要选择相

17、应的名称,然后输入密码就可以进入系统,进行操作。3. 操作员界面:此界面主要针对操作员,功能有台号管理、开单管理、菜系管理、菜品管理、消费统计、当前操作员的姓名以及日期显示、系统使用帮助,操作员修改自身密码等。具体功能如下: 操作员可以对客人的要求做出回应即开单、签单和收费。开单即为客人安排台位后进行客户点菜,点菜完毕后,客户客户可以下达签单指令。当然,考虑到客户可能对已点菜品的不喜欢,想取消的情况,我们也做了考虑。在没客户没有确定签单之前,客户就可以修改所点的菜品,对不想点得菜品在签单列表中进行删除。签单即在点完菜之后进行确认,此时已经不能修改所点的菜品。收费即在客人消费完之后进行结账交费。

18、并对相应找零情况做弹出对话框,进行提醒,充分保障交易的正确性。防止出现忘记收费、忘记找零、找零数目不对等错误出现。 操作员可以对台号管理,为客人分配餐台。同时,可以根据酒店的发展状况,添加删除餐台的数量,修改餐台的座位数等。 操作员还可以对菜品、菜系进行管理,即增添或删除菜品、菜系。在不同的销售季节、不同的的节日或在材料紧缺或供应新菜品时可以通过浏览菜谱对其进行更改。其中菜品信息包括:序号、编号、名称、助记码、菜系、单位、单价。菜系信息包括:序号、菜系名称。 操作员可以实现智能点菜,即对点菜功能,用户可以选择使用菜品编号或菜品助记码进行点菜,提高了操作员的工作效率。 操作员可以修改自身密码。

19、退出系统。4. 管理员界面:此界面只针对管理员,主要负责账务的汇总查询,以及对操作员的添加、删除。操作员无权访问。功能有账务管理、菜品管理、用户管理、帮助,退出五大项。每个大功能下又有几个子菜单构成,将管理员的操作细化,管理员可以根据需求选择相应的选型卡,选择相应按钮,进行操作,提高了管理效率,同时丰富了该系统的功能。 账务管理:包括日结账、月结账、年结账,每张账单上的信息包括日期、编号、台号、开台时间、消费金额、点菜记录。方便管理者对酒店的实时,从而来调整经营策略,来提高经济效益。 菜品管理:菜品管理、菜系管理,主要负责对菜品菜系的添加、删除。该功能区主要实现对酒店的实时监控,查看酒店的菜品

20、、菜系情况,方便管理。 用户管理:用户管理、修改密码、系统维护,负责对操作员的添加、删除,自身密码的修改以及系统维护。增加系统的安全性,合理高效的实施酒店的人员调配、及人事管理。让酒店的管理更加科学化。 帮助:版本信息、帮助中心、帮助文档,主要提供本系统操作的具体说明。让系统用户能尽快入手系统,增强系统的可使用性。 退出:退出系统。3.2 系统目标通过对酒店市场的分析,我们得出开发针对规模较小酒店,开发出酒店管理系统的必要性。根据酒店的特性,我们认为,酒店管理系统的最重要的就是简单便捷,能快速实现操作员的开台、签单、结账的。同时,严格的管理制度,是酒店长久发展下去的根本,因此,我们将系统功能进

21、行划分,构造出了管理员、操作员和超级管理员三种操作身份,针对不同的身份我们编写了相应功能,从而将责任划分明确。针对操作员界面,我们认为,快速的实现酒店的开台、签单、结账是其主要任务。因此我们将其做的尽量简单。针对管理员界面,我们经过分析确定,其功能设计到酒店的账务管理和系统的维护,所以其功能相对复杂。 超级管理员,从整个系统的安全性来考虑,系统的维护需要一个超级用户来管理管理员,只有这样才能实现完善的监管制度,防止因为部分管理员的错误影响到全局部署 。依据上述描述的特点,本系统需要实现下列目标: 人性化的系统提示 可视化的系统加载过程 系统角色层次分明; 身份不同,操作不同 级别不同,权限不同

22、 人员不同,结果不同 操作简单方便,界面简洁大方; 人性化的系统使用方式; 方便、快捷的开台点菜功能; 智能化定位菜品的功能; 自动结账功能; 按开台和商品实现的日结账功能; 按日消费额汇总统计实现的月结账功能; 按日营业额实现的年结账功能; 按消费情况,显示酒店盈亏情况; 动态获取系统时间,提高人员的时间概念 实现系统的科学化管理; 充分降低人为错误带来的损失; 系统运行稳定、安全可靠;第4章 系统设计4.1 系统结构设计a) 系统结构图酒店管理系统统计账务欢迎界面登陆界面管理员界面操作员界面欢迎进入系统登陆重置退出等用户密码框用户登陆名框收费管理开台管理用户管理菜品管理用户登陆名框系统加载

23、进度条4-1 系统结构图l 管理员的数据汇聚图管理员台位信息菜品信息菜系信息账务信息系统设置操作员信息酒店管理系统4-2 管理员数据汇聚图l 操作员的数据汇聚图操作员台位信息菜品信息菜系信息系统帮助修改密码酒店管理系统4-3 操作员数据汇聚图4.2 系统功能设计1)根据系统功能需求,构造出数据流程图:l 操作员的数据流图:操作员输入操作员表核对操作员主界面选择开台点菜菜品管理用户管理退出分配台号更改菜谱修改密码退出操作员库退出退出修改是否签单结账酒店管理系统数据库4-4操作员数据流程图l 管理员的数据流图管理员输入管理员表核对管理员主界面选择账务汇总菜品管理用户管理退出日结账更改菜谱修改密码退

24、出管理员库退出退出修改是否月结账年结账更改人员系统维护帮助帮助信息酒店管理系统数据库4-5管理员数据流程图l 系统的总体数据流图数据加载欢迎界面登陆界面身份选择管理员操作员登陆成功否登陆成功否管理员操作界面查询用户管理帮助日查询月查询年查询操作员管理一般管理员管理修改密码一系列帮助按钮菜单管理退出系统操作员操作界面菜品管理菜系管理台号管理修改密码退出系统帮助文档开单管理菜系管理菜品管理4-6系统总体数据流程图数据源 数据处理 数据流2)具体功能实现界面a) 欢迎使用酒店管理系统,友好界面如下:4-7 欢迎界面图b) 进入登陆界面,选择登陆身份,系统会根据身份的不同加载相应数据库中用户,用户可以

25、直接从下拉列表中选择自己的用户名,进行登录,简单方便,界面如下:4-8身份选择单选按钮面板图 4-9 登陆界面图c) 操作员功能: 操作员可以对客人的要求做出回应即开单、签单和收费。开单即为客人安排台位进行点菜,在没签单之前可以修改所点的菜品。签单即在点完菜之前进行确认,此时已经不能修改所点的菜品。收费即在客人消费完之后进行结账交费。主界面如图所示: 4-10 操作员界面图 为了对进入系统的用户提供一些系统消息和操作信息,我们在操作员界面下添加了一些简单的时间面板(时刻获取系统当前时间)和操作员信息框,如图:4-11 系统信息提示图 同时为了操作提高操作员的结账效率,我们提供了简单的操结账面板

26、。如图:4-12 结账面板图 为了完成智能点菜的功能,我们构建了一个基于助记码查询和编号查询的点菜面板如下图:4-13 智能点菜面板图 操作员可以对台号进行管理、同时为客人选择餐台,点击台号管理可以进入管理界面,如下图:4-14 台号界面图 操作员还可以对菜品、菜系进行管理,即增添或删除菜品、菜系。在材料紧缺或供应新菜品时可以通过浏览菜谱对其进行更改。操作员通过点击菜品管理按钮进入菜品管理子界面,选择菜品管理或菜系管理,如图: 4-15 选择界面图 点击菜品管理进入以下主界面,如图:4-16 菜品界面图 点击菜系管理进入以下主界面,如图:4-17 菜系界面图 操作员可以修改自身密码,点击修改密

27、码进入以下界面,如图4-18 修改密码界面图 操作完结后可以退出,如图:4-19 退出界面图d) 系统帮助文档: 在操作员首次使用本系统时,可能有些陌生,不知如何下手。鉴于此种情况,本系统提供了系统使用文档,便于操作员能快速入手,尽快投入到酒店的管理工作中,如图:4-20 系统使用帮助文档e) 管理员功能 账务管理:对一段时间的营业记录进行汇总、查询,包括日结账、月结账、年结账。每张账单上的信息包括日期、编号、台号、开台时间、消费金额、点菜记录。管理面板如下:4-21 管理员面板 首先进行账目管理的说明:如下是账目管理的选项卡:点击日结账,界面如下: 4-22 日结账界面图点击月结账,界面如下

28、:4-23 月结账界面图点击年结账,界面如下:4-24年结账界面图 菜品管理:菜品管理、菜系管理,主要负责对菜品菜系的添加、删除。根据现实状况及时更改菜谱。点击主界面菜品管理出现以下选择界面,进得菜品或菜系管理的选择,界面如下:4-25 菜单管理界面图4-26 菜品管理界面4-27菜系管理界面 用户管理:用户管理、修改密码、系统维护,负责对操作员的添加、删除,自身密码的修改以及系统维护。软件必须按照软件产品设计规范的步骤进行开发,并充分考虑软件的可维护性,详细编写各阶段的文档资料,以利于未来版本升级以及移植等二次开发。数据库投入运行标志着开发任务的基本完成和维护的开始,但并不意味着设计过程已经

29、结束,任何数据库只要它存在一天它的设计就得不断地进行评价,调整、修改甚至于完全改变,因此数据库的维护不仅是必须的活动而且是设计的继续和提高。点击用户管理,进入以下界面进行选择,如图:4-28 用户管理界面图点击用户管理,对操作员进行添加、删除,界面如图:4-29 操作员管理界面图点击修改密码,界面如下:4-30 修改密码界面图点击系统维护,对系统的管理员进行管理(只有超级管理员具有此权限),界面如下:4-31 维护界面图 帮助:版本信息、帮助中心、帮助文档,主要提供本系统操作的具体说明。点击帮助选项卡,显示帮助选型,界面如下:4-32 帮助界面图点击帮助中心,界面如下:4-33 帮助中心界面图

30、点击帮助文档,界面如下:4=34 帮助文档界面图 退出:包含系统的版本信息、退出系统等功能。版本信息界面如下:4-35 退出界面图退出系统界面如下:4-36 退出界面图 点击确认即可退出系统,否则无法退出,防止因为误操作,退出系统,使得操作数据丢失。 时间提示和管理员信息提示框:4.3 数据库设计在开发应用程序时,对数据库的操作是必不可少的,而一个数据库的设计优秀与否,将影响到软件的开发进度和性能,所以对数据库的设计就显得尤为重要,数据库的设计要根据程序的需求及其功能制定,如果在开发软件之前不能很好的设计数据库,在开发过程中反复修改数据库,这将严重影响软件的开发进度。4.3.1 数据库概要设计

31、1) 数据库中的表及表中字段:本系统中使用到的数据表主要有管理员表、操作员表、菜系表、菜品表、统计表、开单表,由这五个表组成了名为DrinkeryManage的数据库。操作员表主要的字段有:姓名、密码、开单、菜品管理、菜系管理、所属管理员姓名等;开单表中字段为:开单编号、开单的操作员姓名、消费的菜名列表、消费总金额等;菜品表中字段为:菜名、编号、所属菜系名;菜系表中字段为:菜系名、菜系编号;管理员表中的字段包括:管理员姓名,管理员编号等;日统计表中字段为:日消费开单、消费菜单开单时间等;月消费表中字段为:月消费开单、消费菜单开单日期等;年消费表中字段为:年消费菜单开单、消费菜单开单时间等。在开

32、发酒店管理系统时,餐台和菜系在系统中是最简单的实体,在本系统中用来描述餐台信息的只有台号和座位号,而描述菜系的主要是名称。餐台表(tb_desk)的E-R图如下:菜系表(tb_sort)的E-R图如下:在描述菜品实体时,加入了助记码,目的是为了实现智能化获取菜品功能,通过这一功能,系统操作员可以快速获取到顾客点的菜品,菜品表(tb_menu)的E-R图如下:消费单用来记录每次消费的相关信息,例如消费时使用的餐台号,消费时间、消费金额等。消费单表(tb_order_form)的E-R图如下所示:消费项目表(tb_order_item)用来记录每个消费单消费的菜品,记录的主要信息有所属消费单、消费

33、菜品的名称、消费数量、消费额。消费项目表的E-R图如下图所示:综合上述表格,得出了酒店管理系统的数据库模型图(view)如下:在本数据库中,我们还创建了一个本系统的一个视图,关联了菜单表和消费单表。2) 数据源的连接(1) 编写数据库连接类数据库连接类负责加载数据库的驱动程序,以及创建和关闭数据库连接,为了最大程度的应用每个已经创建的数据库连接,这里我们设计的一个hreadLocal类,将已经创建的数据库连接保存在ThreadLocal对象里。首先,在数据库连接类中定义一些常量,包括连接数据库使用的驱动程序、连接数据库的路径、连接数据库使用的用户名和密码,并且定义了一个ThreadLocal类

34、的对象,用来保存已经创建的数据库连接,具体代码如下:private static final String DRIVERCLASS = com.microsoft.jdbc.sqlserver.SQLServerDriver;private static final String URL = jdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=db_DrinkeryManage;private static final String USERNAME = sa;private static final String PASSWORD =

35、dinne;private static final ThreadLocal threadLocal = new ThreadLocal();然后,我们编写了用来加载数据库驱动程序的代码,通常情况下将其放到静态代码中,这样做的好处是只在该类第一次被加载时执行加载数据库驱动程序的动作,避免了反复加载数据库驱动程序,从而提高软件的功能。具体代码如下:static / 通过静态方法加载数据库驱动 try Class.forName(DRIVERCLASS).newInstance();/ 加载数据库驱动 catch (Exception e) e.printStackTrace(); 最后编写用来创

36、建和关闭数据库连接的方法,这里将这两个方法均定义为静态的,这样通过类名就可以调用方法,方便使用,减少系统开销。在这两个方法中,首先从ThreadLocal类的对象中获取数据库连接,然后判读是否可以在可用的数据库连接,如果存在则可以直接返回,并进行相应操作,否则重新创建。具体代码如下:public class JDBC private static final String DRIVERCLASS = com.microsoft.jdbc.sqlserver.SQLServerDriver;private static final String URL = jdbc:microsoft:sqls

37、erver:/127.0.0.1:1433;DatabaseName=db_DrinkeryManage;private static final String USERNAME = sa;private static final String PASSWORD = dinne;private static final ThreadLocal threadLocal = new ThreadLocal();static / 通过静态方法加载数据库驱动try Class.forName(DRIVERCLASS).newInstance();/ 加载数据库驱动 catch (Exception e

38、) e.printStackTrace();public static Connection getConnection() / 创建数据库连接的方法Connection conn = threadLocal.get();/ 从线程中获得数据库连接if (conn = null) / 没有可用的数据库连接 try conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);/ 创建新的数据库连接threadLocal.set(conn);/ 将数据库连接保存到线程中 catch (SQLException e) e.printStac

39、kTrace(); return conn;public static boolean closeConnection()/ 关闭数据库连接的方法boolean isClosed = true;Connection conn = threadLocal.get();/ 从线程中获得数据库连接threadLocal.set(null);/ 清空线程中的数据库连接if (conn != null) / 数据库连接可用try conn.close();/ 关闭数据库连接 catch (SQLException e) isClosed = false;e.printStackTrace();retur

40、n isClosed;4.3.2 数据库详细设计对数据库的操作包括:查询、添加、修改和删除,其中查询是通过executeQuery(String sql)方法执行SQL语句实现的。在本系统中共提供了4个用来执行查询的方法,分别用来查询多个记录、查询指定记录、查询多个记录的指定值和查询指定记录的方法,以及用来添加、修改和删除记录的方法。用户表结构:用户姓名、密码、性别、用户类型、身份证号码、出生日期表4-1 操作员表(tb_user)列名类别备注用户编号(id)整型(int)主键用户姓名(name)字符型(varchar)性别(sex)字符型(char)出生日期(birthday)Date型(d

41、atetime)身份证号码(id_card)字符型(varchar)用户密码(password)字符型(varchar)用户状态字符型(char)表4-2 管理员表(tb_owner)列名类别备注用户编号(id)整型(int)主键用户姓名(name)字符型(varchar)性别(sex)字符型(char)出生日期(birthday)Date型(datetime)身份证号码(id_card)字符型(varchar)用户密码(password)字符型(varchar)用户状态(freeze)字符型(char)菜品结构:编号、菜品名、所属菜系、助记码、单价表4-3 菜品表(tb_menu)列名类别备

42、注编号(num)整数型主键所属菜系(sort_id)整型(int)外键菜品名(name)字符型(varchar)助记码(code)字符型(varchar)单位(unit)字符型(varchar)单价(unit_price)整型(int)状态(state)字符型(char)菜系表结构:编号、菜系名表4-4 菜系表(tb_sort)列名类别备注编号(id)整数型(int)主键菜系名(name)字符型(varchar)开单结构:开单操作员、消费金额、消费菜品列表、消费编号、消费日期。表4-5 消费单表(tb_order_form)列名类别备注编号(num)字符型(char)主键餐台号(desk_num)字符型(varchar)消费日期Date型(datetime)允许为空消费金额整数型(int)操作员编号整型(int)统计表(日统计、月统计、年统计):消费金额、消费单编号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号