JAVA餐饮管理毕业设计

更新时间:2024-05-17 05:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安建筑科技大学 本科毕业设计(论文)

题 目

餐饮管理软件开发

学生姓名 张三 学 号 院(系) 专 业 指导教师 时 间

2012

信息与控制工程系 计算机科学与技术

李智

2016 年 6 月 15 日

餐饮管理软件开发设计与实现

摘要

近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。近两年来已呈现出高速发展的姿态。但是快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率,人员成本还是提供决策信息方面都已经难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成为一个难题,为了有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统是一条有效的解决途径。

本论文主要针对中小型饭店餐饮管理中的一些问题,将其与计算机信息管理系统

结合起来,实现中小型饭店管理信息的计算机化,把计算机用于餐饮管理,可以在很大程度上提高管理者分析和决策的科学性,提高经营管理水平和效率,吸引更多的顾客,使企业取得更好的经济效益。 关键字:餐饮管理,中小型饭店。

Network files management system

Abstract

With the development of computer and network technology, application of modern communication tools universal, computer plays an important role in modern social life.And the concomitant is the large number of documents and management of some frequently used files.Although the major computer hardware manufacturers have introduced new products to help people solve problems carrying files, but carry some storage device has its own shortcomings and unexpected trouble.Therefore, some of the files are stored in the cloud, and can easily download and share become inevitable.

This paper introduces the research background and status of the system design of the current domestic and international issues, and analyzes the significance of the subject.Secondly, it introduces a number of development technology used in the system, the development environment is mainly used MyEclipse, the system uses B / S development model, the main development language JAVA, JavaScript, Html language, using Tomcat server technology, the choice of MySQL database back-end database.After the system is the outline design and detailed design, final testing of the system has been described, we summarized some of the issues which arise in relation to the system in the future outlook.

Key Words: JSP;File;MySQL database;B / S Mode

目录

1 绪论 ........................................................ 1

1.1 系统开发背景及意义 ...................................... 1 1.2 国内外研究现状 .......................................... 1 1.3 系统涉及范围及论文组织结构 .............................. 4 2 开发技术及工具 .............................................. 6

2.1 B/S模式及其优势 ........................................ 6 2.2 Web应用程序开发环境—JSP技术 ........................... 6 2.3 Java语言简介 ........................................... 7

2.3.1 Java是巨大的推动力量 .............................. 7 2.3.2 Java的来龙去脉 .................................... 8 2.3.3 创造未来的计算 .................................... 8 2.3.4 Java扎下根来 ...................................... 9 2.3.5 Java是一个完整而全面的解决方案 .................... 9 2.4 Tomcat应用服务器 ....................................... 9 2.5 MySQL .................................................. 12 2.6 MyEclipse .............................................. 13 3 需求分析和概要设计 .......................................... 14

3.1 开发目标 .............................................. 14 3.2 用户需求分析 .......................................... 14

3.2.1 用户角色需求 ..................................... 15 3.2.2 功能需求 ......................................... 15 3.3 系统功能模块结构 ....................................... 16 3.4用户模块 ............................................... 17 3.5 文件管理模块 ........................................... 18 3.6管理员模块 ............................................. 19 3.7数据库设计 ............................................. 19

3.7.1 E-R图 ............................ 错误!未定义书签。 3.7.2 数据库结构 ....................................... 22

4 详细设计 .................................................... 22

4.1用户模块功能设计 ....................................... 23

4.1.1用户注册 .......................................... 23 4.1.2用户登录 .......................................... 25 4.1.3修改个人信息 ...................................... 28 4.2文件管理模块的设计 ..................................... 30

4.2.1文件上传操作 ...................................... 30 4.2.2文件分类 .......................................... 34 4.2.3文件分享 .......................................... 35 4.2.4文件删除 .......................................... 36 4.2.5文件下载 .......................................... 36 4.3管理员模块的设计 ....................................... 38

4.3.1管理员登录 ........................................ 38 4.3.2管理分享文件 ...................................... 38 4.3.3站内公告 .......................................... 39

5 系统测试 .................................................... 40

5.1测试环境 ............................................... 40 5.2测试结果 ............................................... 40 6总结与展望 ................................................... 42

6.1 总结 ................................................... 42 6.2 展望 ................................................... 42 致谢 .......................................................... 43 参考文献 ...................................................... 44

1 绪论

1.1 系统开发背景及意义

随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统不视为一条有效的解决途径。 餐饮业的蓬勃发展带动餐饮投资多元化,大量资本的进入进一步推动了餐饮业的快速、健康发展,随着社会各领域信息化建设的不断普及,餐饮业也开始不断注入信息化元素,将餐饮业务融入计算机管理,既节省人力资源,也提高了管理效率和工作效率,将餐饮业提升到一个新的阶段。

当前,我国餐饮行业发展态势明显,主要体现在技术创新、管理科学化为代表的现代餐饮企业,逐步替代传统餐饮业的手工随意性生产、单店作坊式、人为经验管理型,快步向产业化、现代化迈进;大众化消费越来越成为餐饮消费市场的主体;饮食文化已经成为餐饮品牌培育和餐饮企业竞争的核心,现代科学技术、科学的经营管理、现代营养理念在餐饮行业的应用已经

第 1 页

越来越广泛。

利用计算机强大的数据处理能力,通过计算机软件实现对信用社日常业务的信息管理,可以更加准确、实时、可靠,而且可以快速的进行数据统计分析,对于信用社管理工作的改进和效率提高有很大的帮助。计算机软硬件技术在近30年有了革命性的发展。硬件计算能力大幅度提高同时价格大幅度下降。软件开发方法论、开发语言、开发工具发展也很迅速。在这种条件下应用计算机信息管理系统提高信用社的业务处理效率,辅助提高管理水平已经是信用社信息管理发展的必然趋势。

早期的消费管理系统都是靠人工采用纸质的资料来管理的,信息量很大,而且数据存储的时间不够长,如果资料库发生意外,大量资料的毁坏将对信用社来说是致命的。这些资料的管理不仅花费更多的人力,物力,占用更大的空间,出错率也比较高,总之效率低,不易管理。随着计算机技术和网络的发展,特别是二十世纪九十年代的时候,利用计算机来管理大量的信息资料,大大提高了对于信息的管理效率。从信息系统的发展我们就可以看出,原来的人工管理阶段都慢慢地转变为计算机管理,这样做可以更快,更多,更安全,保存时间更长地处理日常的业务。随着人们生活水平的提高,信用社的业务更加繁忙,如果还用人工纸质的方法来管理日常的事务,一定会速度很慢,还要投入更大的人力,花费更多的时间。

目前国内外关于消费管理很多,这种系统的偏重点和采用的技术都不一样,但相同的就是都是与数据库相关的操作,利用数据库技术对大量的资料进行管理,摒弃了传统的人工管理阶段,只不过这些东西根据需求的不同在实现方面的侧重点也各不相同。国外很多设计中采用了先进的餐饮管理方

第 2 页

法,融合了现代餐饮行业的特点。通过科学的管理方式、优化的管理流程和现代化的管理工具——计算机网络系统,规范了餐饮行业管理标准,降低了服务成本(节约人力财力资源)、提高服务质量以及工作效率。本餐饮管理系统可以帮助餐饮企业对企业运行中大量的、动态的、错综复杂的数据和信息进行及时、准确的分析、萃取和处理,及时反馈给管理层。尽可能地降低使用者的劳动强度,同时提高工作质量和效率。本系统具有超强的适用性、灵活性、通用性及安全性,已在各种需求下的餐饮行业(酒楼、火锅、茶楼以及咖啡厅)中得到广泛的应用与好评。

该餐饮系统从发展现状谈起,结合用户实际需求提出本系统的总体结构和功能模块,然后通过系统结构设计、安全设计及前端开发,构建了一个以.Net编程环境及其开发技术和SQL后台数据库为基础的、具备相关功能的餐饮系统。

根据餐饮系统的流程,完成从用户登录到开台点菜,到结账收银,到统计一条线的信息化管理,因此整个餐饮管理信息系统的研发内容就是开发一整套餐饮管理信息系统,实现餐饮业务的计算机化。

该系统将餐饮业中点菜、收银、库存管理、成本核算等一连串的业务用计算机来管理,分析与设计了餐饮系统的结构及功能模块,解决餐饮系统的关键技术,给出了餐饮业务的解决方案,实现了现代化的餐饮管理机制。

1.2 国内外研究现状

现在国内外对此类系统的开发与研究已经有一定的程度,主要以云存储

为主,即公司提供服务器给用户存储文件,甚至是操作系统,工作平台等。

第 3 页

虽然已经有了一定的研究成果,但是国内外的网络文件管理系统还是存在一定的问题还没解决,导致虽然有了许多的平台,却缺少用户群。最大的问题就是安全和使用量问题,如果这些根本性的问题得到解决,相信网络文件管理系统会快速发展,在互联网时代得到普及。国内外对此类系统的开发与研究也是很有实用性的,基本上能满足各类人的自身特点,来进行文件的管理,同时,该类系统又都在不断地深入与发展,来适用更多的人群和企业。但网上文件管理系统的安全性还有待于今后的进一步开发与实践。

为了设计出一个安全、操作简单,适合普通用户群使用发热的网络文件管理系统,必须使文件管理科学化,规范化,提高网络文件管理的高效性和安全性,因此建立一套有效且安全的网络文件管理系统也是十分必要的。

此设计是针对Internet时代的数据管理及共享需求而开发的网络文件管理系统。它可实现用户注册,用户个人信息修改,登录验证,可以管理存放在服务器端的多种类型的文件(包括文档,图片等),且操作简单,可实现文件的批量上传、文件下载。管理员可以对用户上传的文件进行审核,可以撤销用户的分享文件,发送站内公告等功能。

1.3 系统涉及范围及论文组织结构

本系统主要是实现一个便捷简单功能齐全的餐饮管理系统,可以有效地对中小

型餐厅消费进行有效的管理。设计目标旨在提高餐饮业店家的竞争能力。为餐饮业提供先进的管理模式与经营理念;提供运行稳定、安全可靠、操作简便的管理系统。

本系统主要涉及的技术以及研究内容有:C/S模式, 熟练使用C++/C#语言,SQL Server数据库,.Net编程环境及其开发技术。

本文组织结构如下:

第1部分是绪论,简要介绍了课题的研究背景、研究意义和研究范围。 第2部分介绍了系统所用到的相关技术以及这些技术在系统中的重要意义。

第3部分对系统进行了总体设计,包括系统的设计原则、需求分析、功能模块、数据库设计、各个功能操作的模块设计。

第 4 页

第4部分论述了餐饮管理系统具体的实现,包括各个功能模块的实现。 第5部分阐述了系统的各个功能部分的测试结果。 第6部分是对整个设计的总结和对未来的展望。

第 5 页

2 开发技术及工具

2.1 B/S模式及其优势

伴随着Internet的迅速发展,计算机技术正在由基于C/S(client)模式的应用系统转变为基于B/S(Browser/Server)模式的应用系统。

过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:

1.系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环境也可能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。

2.在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。

正是由于以上C/S模式的客户端程序在部署和维护时面临的问题,人们逐渐接受了基于浏览器(Brower)/服务器(Server)结构的系统,即B/S模式。在此模式中,最核心的一点就是用通用的浏览器取代了原来的客户端程序。B/S模式虽然只对C/S模式做了少许变动,但带来了巨大的好处:

1.应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了;

2.所有的配置工作都集中在服务器端,提高了系统的安全性; 虽然B/S模式带来了很大的好处,但由于在客户端能够利用的编程对象仅仅是浏览器,因此,原来在C/S模式下很容易实现的一些客户端功能,在B/S模式下,却变得很难实现甚至无法实现。尽管如此,B/S模式仍是目前很多应用系统的首选模式。[1]

2.2 Web应用程序开发环境—JSP技术

JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*,htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:

第 6 页

1.将业务层与表示层分离:使用JSP技术,网络开发人员可认使用HTML来设计页面显示部分(如字体颜色等),使用JSP指令或者JAVA程序片段来生成网页上的动态内容;

2.能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;

3.组件的开发和使用很方便:如JSP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用; 4.一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once , Run everywhere.

[2]

2.3 Java语言简介

简言之,Java环境可用来开发能在任何计算平台上运行的应用软件。它实际上是一种非常基本且结构紧凑的技术,而它对World Wide Web以及商业的总体影响已可同电子表格对PC机的影响相比拟。

2.3.1 Java是巨大的推动力量

Java已用动态的交互应用软件使Web栩栩如生。它使开发人员具有“编写一次到处运行TM”的巨大能力。而且,借助其Java API及其编程语言上的Java虚拟机,它已产生一种分布信息的崭新模式。这种模式叫做Java企业计算,正在帮助各企业以各种不同的方法取得竞争优势。网管和控制已大大简化。软件分配基本上是免费的,而且立即可实现。电子贸易已获得。占有成本大幅度降低。信息和应用软件到处可存取。

Java建立在简单的前提基础上,即所有微处理器都应讲同一种语言——所有内部采用芯片的产品都应能一起工作,无缝而方便地共享信息。它已经改变企业和个人同Internet大交道的方式。现在,它正在对消费类产品产生明显的影响,而且从总体上更加深刻地影响企业计算。

借助Java,您可自由自在地使用您已拥有的硬件和软件。这是因为Java是独立于平台的,它还可使您超越企业计算,使应用软件在便携式计算机、信息亭、电视、蜂窝电话和其他大量设备上运行。

全世界的公司都已发现Java数不胜数的应用。所有应用可从其无可比拟的能力,即提高可靠性、安全性和简化各种不同计算产品和环境的能

第 7 页

力中受益匪浅,而且节省的时间和费用十分可观。

Java无处不在。它已拥有几百万个用户,其发展速度要快于在它以前的其他任何一种计算机产品。它可位于任何地方,而且能到处运行。Java正在迅速被用做传播信息的事实上标准,这是因为它既可给企业,也可给最终用户带来似乎数不清的好处。

2.3.2 Java的来龙去脉

Sun公司一小组工程师聚集在一起,认真思考日常生活中的数字系统——因为烤面包机、恒温器、游戏机和其他无数设备都包含越来越复杂的CPU——以及他们如何能使这些数字系统共享信息。

2.3.3 创造未来的计算

制造产品的人当然全都从不同的方面来考虑其设计,视他们所使用的硬件平台、操作系统和应用软件而定。但是,如果您要使这些产品中的一些产品一起工作,那怎么办?安全性、可靠性和网络问题又这么样呢?

因此,Sun公司这些工程师把各种不同的产品拆开来,然后又把它们重新组装起来,其目标是要使这些不同的设备相互交谈。他们把这些研究对象相互传来传去,并理解所有其他研究对象的特性,以便使他们能更好地一起工作。这就把制造商的问题缩减到最低程度,并使消费者能方便地进行集成。当传统的语言证明是不适用时,工程师们就打算找到某种简单的现代新语言。于是,Java应运而生。

人们很快发现,Java有可能超越工程师的想象。Java的魅力在于它提供给开发人员和用户的简便性。开发人员拥有广大的用户基础、平台独立性、降低的开发费用和始终如一的执行环境,而用户则可从生动的内容、即时软件和增大的安全性中受益。

但是,Java正是从置于World Wide Web那时起才真正起飞。Java使全世界大为震动,因为它使Web页面栩栩如生,而且不久变得很明显,Java拥有大得多的潜力。人们之所以采纳Java,是因为它有独特的能力来编制和部署能在任何一个网络、任何一个操作系统上运行的应用软件。分配软件的时间和费用实际上已不复存在,使得各公司可把更多的资源用来开发其产品。而且,某些工业专家认为,Java可能会改变软件销售模式,从固定价格改变为按使用量收费,这样做更有利可图,而且可阻止非法盗版。

第 8 页

Java是一种网络计算的通用开放标准平台。这种平台可从电话一直扩展到极端重要的应用,建立在您现有的硬件和软件体系结构基础上,从而创造出一个全部联网的企业或者制造出超出的创新产品。

2.3.4 Java扎下根来

在某种意义上,Java具体体现了Sun Microsystems公司自其创建以来所追述的目标。当时,它创造了“网络就是计算机”这句名言。它是基于Web的新网络计算模式的完美平台,因为它建立在各个组织现有的硬件和软件体系结构基础上,能建立一个全部联网的企业。

2.3.5 Java是一个完整而全面的解决方案

Java远不止是一种编程语言,它是企业内外的完整计算环境,而且万事齐备,从开发工具、操作系统、服务器软件和瘦/肥用户机一直到网络管理工具、支持、培训、咨询和集成服务,一应俱全。Java使用起来非常简单,部分原因是Sun提供一种全面统一的解决方案。[3]

2.4 Tomcat应用服务器

目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。

Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。

Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache

第 9 页

集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越收到人们的重视。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是6.0.14。

目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。

Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于FTP,你可以在远程通过Web部署和撤销应用。当然本地也可以。

Tomcat也具有传统的Web服务器的功能:处理HTML页面。但是与Apache相比,它的处理静态HTML的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态HTML,而Tomcat处理JSP和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和JSP文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和JSP或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的ClassPath(系统变量)中,但那样移植和管理起来不方便。

在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat

第 10 页

的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:Manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于FTP,你可以在远程通过Web部署和撤销应用,当然本地也可以。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。

另外,Tomcat提供Realm支持。Realm类似于Unix里面的group.在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm:1、JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证;2、JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息;3、MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm.通过Realm我们可以方便地对访问某个应用的用户进行验证。

在Tomcat中,你还可以利用Servlet 2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持JSP和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,JSP和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat。

第 11 页

基于Tomcat的开发其实主要是JSP和Servlet的开发,开发JSP和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在JSP1.2中,可以利用标签库实现Java代码与Html文件的分离,使JSP的维护更方便。

Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS 集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。

Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信Tomcat会走得更远。[4]

2.5 MySQL

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。支持多线程,充分利用CPU资源。优化的SQL查询算法,有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。[6]

第 12 页

2.6 MyEclipse

MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse。MyEclipse企业级工作平台(My Eclipse Enterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。

第 13 页

3 需求分析和概要设计

3.1 开发的意义及目标

该系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行有效的管理。设计目标旨在提高餐饮业店家的竞争能力。为餐饮业提供先进的管理模式与经营理念;提供运行稳定、安全可靠、操作简便的管理系统。 本系统应达到以下目标:

进行“餐饮管理软件开发”系统框架的设计与分析。 界面美观友好,信息查询灵活,数据存储安全可靠。 对用户输入的数据进行严格检查,尽可能避免人为错误。 系统应该最大限度地实现易维护和易操作性。

熟练使用C++/C#语言,SQL Server数据库,.Net编程环境及其开发技术。

对系统进行详细设计,包括数据库设计、类图设计等。 设计实现友好的餐饮管理系统交互界面,使用方便灵活。 实现对餐厅顾客点餐,下单数量,账目查询等操作。 查询算法具有较低算法复杂度。

实现餐饮系统日常清单打印、结算、利润分析等功能。

第 14 页

3.2 用户需求分析 3.2.1 用户角色需求

根据需求分析,整个系统应该有两个操作用户角色,即管理员和普通用户。

普通用户可以实现登陆,点餐,价格查询。管理员可以对员工信息,菜谱价格进行修改,查询等。

3.2.2 功能需求

系统功能主要包括以下几个方面:1.登陆模块;2.订餐模块;3.管理员模块。以下对三个方面的具体功能进行描述:

1.用户模块

用户在注册页面填写自己的注册信息(用户名、性别、年龄、电话、Email等),注册成功后,可以从登录页面登录,成功后可以进入用户个人主页,点击个人信息或者自己的用户名可以对自己的个人注册信息(用户名、性别、年龄、电话、Email等)进行修改。

2.文件管理

用户登录后可以进入个人主页,可以上传、下载文件,可以删除自己上传或者分享的文件;点击图片、视频、音乐、文档图标时,可以对文件实现相应分类查询功能;点击上传文件进入文件上传页面,在此页面可设定需要上传的个数,点击浏览即在本地计算机上选择需要上传的文件,之后确定,就可以将本地文件上传到服务器上去,服务器会自动在上传目录中新建一个以用户id为名字的文件夹,用来保存用户上传的文件;点击文件信息后的分享按钮可以将自己已经上传到服务器上的文件分享给别人;点击所有分享可以看到所有用户分享到服务器上的文件信息,选择自己想要下载的文件,点

第 15 页

击后面的下载按钮就可以将服务器上别的用户分享的文件下载到自己想要保存的目录中;点击用户主页上的站内信按钮可以查看由管理员发布的站内通知。

3.管理员模块

管理员可以通过自己的后台登录页面,进入管理员主页,点击查看分享,可以看到用户分享到服务器上的所有文件,管理员可以对文件进行审核,不符合网站规定的文件,管理员可以删除;点击站内信按钮,管理员可以向整个网站的所有用户发出公告。

3.3 系统功能模块结构

系统主要分为两个功能模块:用户模块,管理员模块。 用户模块:用户登录,用户个人信息修改。

文件模块:上传文件,下载文件,分享文件,删除文件。 管理员模块:管理员登录,查看所有分享文件,发站内信。

根据分析,酒店餐饮管理系统可分为以下三个模块:登录模块、订餐模块、后台管理模块。其系统模块图3.1所示。

第 16 页

员登录 管理员登点 餐 菜品取消 退 菜 结 帐 餐桌查看 菜单增删 员工增删 登录模块 订 餐 模 块 后 台 管 理 模 块 餐饮管理系统 工 图3.1 功能模块图 3.4用户模块

用户可以在注册页面上录入自己的个人信息,完成注册,之后跳转到登录页面,从登录页面登录后到个人主页,在个人信息页面修改个人信息。

第 17 页

用户的功能模块图如图3-2所示。

用户模块注册登录修改个人信息

图3-2用户功能模块图

3.5 文件管理模块

用户登录进入系统后,可以对文件进行上传、下载、分享、删除、分类查找等操作。

文件管理功能模块图如图3-3所示。

文件管理模块上传分类查询下载分享删除 图3-3文件管理功能模块图

第 18 页

3.6管理员模块

管理员从后台管理员登录页面登录进入管理员主页,可对用户分享到服务器上的文件进行审核,可以删除不符合网站分享规则的文件,管理员可以发站内信发出网站的一些最新消息。管理员功能模块图如图3-4所示。

管理员模块登录管理分享发站内信 图3-4管理员功能模块图

3.7数据库设计

概念设计是一种面向对象的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映了用户的实现环境,这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的方法。概念设计中最著名的方法就是实体联系方法(ER方法),建立ER模型,用ER图表示概念结构,得到数据库的概念模型 [2]。

ER模型中包含“实体”,“联系”和“属性”。在本系统中,多对多的关系用(m-n)表示。本系统的主要的实体有餐桌,客人,菜谱,餐饮,账单,点

第 19 页

菜单等。实体ER图如下所示:

餐桌 餐桌编号 餐桌状态 座数 位置 图3.2 餐桌ER图

客人 姓名 性别 联系方式 图 3.3 总体ER图

证件类别 编号

第 20 页

菜单 菜品种菜名 图3.4 菜谱ER图 价格 订餐 餐桌号 菜名 价格 图3.5 餐饮ER图 账单 数量 餐桌号 打折情结账 图3.6 餐饮费ER图

点菜单 菜类 菜名 餐桌号 数量 图3.7 点菜单ER图

第 21 页

3.7.2 数据库结构

本系统采用sqlserver数据库系统,数据库名称为db_CYGL,其中包含tb_dl(登陆表)、tb_dc(点餐表)、tb_cp(菜谱表)、tb_waiter(员工表)、message(消息记录表)共5张数据表。

表3-1 tb_dl表的结构

登陆表 列名 id Pwd 名称 用户编号 密码 是否主键/外键 主键

表3-2 tb_dc表的结构

点餐表 列名 id Cname Price 菜谱表 列名 Id Cname Price 名称 编号 菜名 价格 是否主键/外键 主键

第 22 页

长度 备注 Varchar(50) Varchar(50) 名称 编号 菜名 价格 是否主键/外键 主键 长度 Varchar(32) Varchar(50) Int 备注 表3-3 tb_cp表的结构

长度 备注 Varchar(32) Varchar(50) Int

表3-4 tb_waiter表的结构

员工信息表 列名 Ygid name sex cardnum age tel 名称 员工编号 姓名 性别 身份证号 年龄 电话 是否主键/外键 主键

Varchar(50) Varchar(50) int Int Varchar(50) Varchar(50) 长度 备注 4 详细设计

4.1用户模块功能设计

用户模块需要用户可以在注册页面填写自己的个人注册信息,之后转去登录页面登录,信息核对成功后进入用户的个人主页,可在个人信息功能区修改自己的信息。

4.1.1用户注册

用户在注册页面填写自己的用户名(用户名可以使汉字英文等),密码,确认密码(若前后输入密码不一致将会提示),性别,年龄,邮箱,联系电话,住址等信息,若发现部分个人信息出现差错,可直接点重置按钮重新填写;若信息核对无误,则点击注册按钮即可将个人信息录入数据库中。

用户注册页面如图4-1所示。

第 23 页

图4-1用户注册页面

事件“注册”的响应代码:

//注册

public void regist(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//获取数据

String userName = request.getParameter(\String userPwd = request.getParameter(\String sex = request.getParameter(\String sage = request.getParameter(\int age = Integer.valueOf(sage);

String email = request.getParameter(\String tel = request.getParameter(\

String address = request.getParameter(\//封装user Bean

User user = new User(); //获取id

user.setId(YunUtils.getUUID());

第 24 页

}

user.setUsername(userName); user.setAddress(address); user.setAge(age); user.setEmail(email); user.setSex(sex); user.setPhoneNum(tel); user.setUserpsw(userPwd); //调用Dao去操作数据库 boolean rs = userDao.regist(user); if(rs){

//注册成功

//重定向到登录页面

response.sendRedirect(request.getContextPath()+\

}else{ }

//注册失败

4.1.2用户登录

用户注册成功后,直接跳转到登录页面,用户正确输入刚才注册时的用户名,密码和验证码即可登录进入系统。

用户登录页面如图4-2所示。

图4-2用户登录页面

第 25 页

登录验证代码:

事件“登录”响应代码: //登录

public void login(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String userName = request.getParameter(\String userPwd = request.getParameter(\User user = new User();

第 27 页

user.setUsername(userName); user.setUserpsw(userPwd);

User newUser = userDao.login(user); if(newUser ==null){

//登录失败

request.setAttribute(\用户名或密码错误\

request.getRequestDispatcher(\}else{

//将用户信息放入session

request.getSession().setAttribute(\

response);

request.getRequestDispatcher(\ }

}

response);

4.1.3修改个人信息

进入个人主页后点击个人信息,或者点击页面上方自己的用户名,都会跳转到个人信心修改页面,可以对用户自己的信息进行修改,之后点保存就可以方便的将用户注册时的信息修改后放入数据库。

个人信息页面如图4-3所示。

图4-3个人信息页面

事件“保存”响应代码:

第 28 页

//更新 public void updateUser(HttpServletRequest request,

HttpServletResponse response)

p\

throws ServletException, IOException { //获取数据

String uid = request.getParameter(\

String userName = request.getParameter(\ String sex = request.getParameter(\ String sage = request.getParameter(\ int age = Integer.valueOf(sage);

String email = request.getParameter(\ String tel = request.getParameter(\

String address = request.getParameter(\ //封装user Bean User user = new User(); //获取id

user.setId(uid);

user.setUsername(userName); user.setAddress(address); user.setAge(age); user.setEmail(email); user.setSex(sex); user.setPhoneNum(tel);

//调用Dao去操作数据库

boolean rs = userDao.update(user); if(rs){ //修改成功

request.getSession().setAttribute(\

//重定向到登录页面

response.sendRedirect(request.getContextPath()+\

}else{

第 29 页

}

}

//修改失败

4.2文件管理模块的设计

用户点击上传文件按钮,进入上传文件页面,可以点增加和删除来控制用户上传文件的个数,之后点击上传就可以将文件重命名保存到服务器上,服务器上会新建一个以用户id为名字的文件夹来专门存放该用户自己的文件。用户可以在页面上选择自己想要查找的文件类型来找到文件,点击文件信息后的分享按钮将文件分享给别的用户,用户自己的分享文件可以在我的分享页面中找到,也可以在所有分享中点击下载按钮来下载其它用户分享的文件,若是想要删除自己上传的文件,直接点击文件信息后的删除按钮即可删除,此时注意,当你删除自己上传的文件时,你在服务器上分享的文件也将删除。

4.2.1文件上传操作

点击文件上传,即可对你要上传的文件重命名后保存在服务器上。 文件上传页面如图4-4所示。

图4-4文件上传页面

页面验证代码:

事件“上传”相应代码:

public class UpServlet extends BaseServlet {

private FileDao fileDao = new FileDao();

public void execute(HttpServletRequest request, HttpServletResponse

throws ServletException, IOException {

response)

request.setCharacterEncoding(\

//取出已经登录的用户

User u =(User)request.getSession().getAttribute(\//要保存的文件信息

UpFile upFile = new UpFile();

String path = getServletContext().getRealPath(\//声明disk

DiskFileItemFactory disk = new DiskFileItemFactory(); disk.setSizeThreshold(1024*1024);

disk.setRepository(new File(\//声明解析requst的servlet

ServletFileUpload up = new ServletFileUpload(disk); try{

//解析requst

List list = up.parseRequest(request); //声明一个list封装上传的文件的数据 List> ups = for(FileItem file:list){

Map

mm

=

new

HashMap

new

ArrayList>();

String>();

第 32 页

//获取文件名

String fileName = file.getName(); fileName //扩展名 String

=

fileName.substring(fileName.lastIndexOf(\

extName

=

fileName.substring(fileName.lastIndexOf(\

String fileType = file.getContentType(); InputStream in = file.getInputStream(); int size = in.available();

//生成32位的uuid作为文件服务器真实名字

String trueName = YunUtils.getUUID()+\//使用工具类

FileUtils.copyInputStreamToFile(in,new mm.put(\mm.put(\mm.put(\

int type =0;

if(fileType.contains(\

//图片 type=1; //文档 type=2; //音乐 type=3; //视频 type=4;

第 33 页

File(path+\

}else if(fileType.contains(\

}else if(fileType.contains(\

}else if(fileType.contains(\

}

ups.add(mm); file.delete();

upFile.setId(YunUtils.getUUID()); upFile.setFilename(fileName); upFile.setFilesize(size); upFile.setFiletype(type); upFile.setTruename(trueName); upFile.setUid(u.getId());

upFile.setUptime(YunUtils.getDate()); //保存到数据库

fileDao.update(upFile);

}

request.setAttribute(\

//转发

request.getRequestDispatcher(\

response);

}catch(Exception e){ e.printStackTrace(); }

}

4.2.2文件分类

用户点击想要查询文件对应的文件类型,在指定的文件类型中查找自己想要的文件,提高了效率。

图4-5与图4-6是文件分类页面的部分截图。

图4.5文件分类页面1

第 34 页

本文来源:https://www.bwwdw.com/article/z7l7.html

Top