1、 本 科 毕 业 设 计 第 1 页 共 36 页摘 要随着我国市场经济的快速发展, 餐饮业的发展尤为突出,但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,所以迫切需求专业的计算机信息系统的运用和普及。食色无双餐饮管理系统主要使用 Java 语言,通过线程的方法实现登录界面的闪屏,采用 MyEclipse 平台进行图形界面的开发减少 Swing 代码的复杂度,MYSQL 作为数据库,通过 JDBC 进行数据库的连接,并通过 SQL 语句进行数据的增删改查操作进行数据的存储,提高系统的运行速度。系统主要包括用户的权限登录、职员的人事管理、餐谱管理、成本管理、点餐、结账和报表统计
2、。系统最大的优势在于可以实现点餐和结账功能,节省了员工大量的劳动力,并且方便和快捷,管理员可以方便的记录餐谱和成本利润的数据信息,并且能够及时在系统中做好工作日志的记录。系统的使用能使餐饮管理变得轻松、高效,顾客也能够体会到更加人性化的服务。关键词 餐饮管理 信息系统 Java MYSQL 1 引言随着改革开放以来我国的快速发展,人民的生活水平有了迅速的提高,这也致使了我国的传统行业餐饮业得到了强大的发展动力,据有关方面的统计,餐饮业的增长率要比其它行业高出十个百分点以上,这说明了我国正迎来了一个餐饮业高速发展的时期,市场潜力巨大,前景非常广阔。当然,餐饮需求又是复杂多变的,其消费口味和消费心
3、理,都可能随着社会环境的变化而变化。传统餐饮企业是靠人工管理的,从进货到点餐,再到结账都是由人工完成的,这样做不仅人力耗费大,客人等待时间长而且容易导致数据丢失遗漏或重复劳动等诸多问题,那么其管理水平也就相对低下了。这就迫切需要标准了。如果通过运用计算机管理企业的日常运作的话,高效的计算机管理方式引导其发展,给管理者以快捷的标准,来不断完善管理水平,讲提高相当大本 科 毕 业 设 计 第 2 页 共 36 页的日常工作效率。在现实生活中,依靠人工管理日常运作的传统餐饮企业已经显露出来了颓势,计算机进入餐饮企业进行管理已经成为大势所趋的事情。健全餐饮业的现代化模式,利用计算机管理管理系统对饭店的
4、各种信息进行处理,就可以使杂乱的业务数据具体化,使混乱的资源合理化,使模糊的流程直观化,并且可以随时了解饭店的经营情况 1。目前国内的餐饮企业就得根据自身条件和环境条件的客观要求,看清餐饮市场的发展趋势,选择现代化的营销方法,以此作为迈向辉煌的起点。食色无双餐饮管理系统主要是对餐饮日常工作的管理,收银员可以进入结账界面进行对客户点餐和结账的工作,包括对不同桌号的分别管理,极大的节省了工作的劳动力。管理人员可以不仅可以进入结账界面,还可以进入管理界面,包括菜谱管理模块,及时更新菜谱信息;成本管理模块可以记录原料的成本和每种商品的利润,方便老板对经营状况的掌握,有助于经营策略的调整;还有人事管理模
5、块,可以对人事的调动进行管理,以列表的形势展开,让人一目了然。还有一些人性化的功能,比如万年历的功能,工作人员不仅可以在里面查询日期,还可以随时记录当次的工作日志和其他重要信息。如此这般,将会大大降低网管的劳动强度并且提高工作人员的效率。食色无双餐饮管理系统开发的总体目标是实现餐饮管理的系统化、规范化、自动化和人性化,以此来减少餐饮管理的工作量 2,为餐厅提供方便便捷的管理技术手段,同时以其人性化的功能需求来吸引顾客。本 科 毕 业 设 计 第 3 页 共 36 页2 系统技术介绍食色无双餐饮系统采用 MyEclipse 作为开发工具,用 JAVA 语言和 JDBC 技术等实现程序开发,用 M
6、YSQL 作为后台数据支持。以前对这些技术、工具及语言只是了解,对其内部的一些东西都不是很清楚现在有了更系统的认识。下面对这些技术进行详细的介绍。2.1 JAVA 程序语言Java 程序设计语言是新一代语言的代表,它强调了面向对象的特性,可以用来开发不同种类的软件,在结构上,Java 语言开始于包,包是 Java 语言的命名空间机制,包内是类,类方法,变量,常量等等,Java 源代码是区分大小写的, Java 关键字总是小写,同时它具有支持图形化的用户界面、支持网络以及数据库连接等复杂的功能 3。Java 语言主要有以下特点:a) 易于学习Java 语言很简单。这里所说的简单,主要是针对熟悉类
7、似 C+语言的程序设计人员来说的, Java 语言是一个 C 语言的衍生工具,所以它的语法规则看上去很像 C 的:例如,模块化方法和分隔代码块大括号(和 ) ,变量的声明在使用它们之前,意见之前,在一条线上的两个斜线(/ /)/ *和* /多行之间或封闭。当编译器看到它忽略了/ / / /在同一行后的所有文字。 / *当它看到,它会扫描下一个 * / / *和* / 之间忽略任何文本。但是它摒弃了 C+中许多低级、困难、容易混淆、容易出错或不经常使用的功能,例如运算符重载、程序的预处理、结构、多重继承以及其他一系列内容,特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内
8、存管理而担忧。这样便使其比其他许多编程语言更有利于有程序设计语言基础的 Java 语言初学者的学习。b) 高效率的执行方式用 Java 语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。它综合了解释性语言与编译语言的众多优点,使其执行效率较以往的程序设计语言有了大幅度的提高。c) 与平台无关性本 科 毕 业 设 计 第 4 页 共 36 页Java 不同于一般的编译执行计算机语言和解释执行计算机语言。Java 源程序经过编译器编译,会被转换成一种我们称之为“字节码( bytecodes) ”的目标程序。 “字节码”的最大特点便是可以跨平台运行,正是这一特性成为
9、Java 得以迅速普及的重要原因。输入是 Java 源代码和输出的是 Java 字节码,javac 是 JDK 的命令来编译程序。 java的 JDK 命令来运行程序。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行” 的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。d) 分布式所谓的分布式主要是指数据分布和操作分布两层意思,数据分布是指数据可以分散在网络中不同的主机上,操作分布是指
10、把一个任务分散在不同的主机上进行处理。Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口( ) ,它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket 等。 Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。e) 多线程在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子将一个实现了 Runnable 接口的对象包装成一个线程,其二,从
11、 Thread 类派生出子类并重写run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized) 4。f) Java 语言是一个面向对象的Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements) 。Java 语言全面支持动态绑定,
12、而 C+ 语言只对虚函数使用动态绑定。面向对象编程(OOP) ,语言的功能支持的概念是基于 Java 语言的编程范式。总之,Java 语言是一个纯的面向对象程序设计语言。本 科 毕 业 设 计 第 5 页 共 36 页Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java语言由于语言简单、语言健壮安全性高、面向对象编程等众多优点,一经推出就受到广大程序人员的热捧,成为当今 IT 行业中编程用的主流语言。JVM 是 Java 字节码解释器解释。并且可以用来开发动态网页。从 Web 浏览器
13、上运行的 Java 程序,被称为“小程序。 Java 小应用程序必须嵌入在 HTML 文件使用标签。目前已看到Java 对信息时代的重要作用,未来还会不断发展, Java 在应用方面将会有更广阔的前景。2.2 MyEclipse 开发平台MyEclipse 由 Genuitec 公司 Eclipse 基金会的创始成员创建和维护的。MyEclipse 是 Eclipse 平台中,集成了既专有的和开放的的源解决方案到开发环境中。MyEclipse 是最全面的 Java EE / J2EE IDE 建立在开源的 Eclipse 平台MyEclipse 中有两个主要的版本:一个专业和标准版。标准版增加
14、了数据库的工具,可视化网页设计师,持久性工具,以及一些基本的 Eclipse 的 Java 开发人员配置等功能。MyEclipse 是一个完全独立的项目,并提供了不同的功能集。MyEclipse 结合了当今最具创新性的开放标准的技术(包括 Eclipse 平台)提供的 J2EE WEB,XML ,UML 和数据库和一个宽阵列的应用服务器连接器简化开发,部署,测试和开发环境的开放标准。开放标准的支持与整合远远超过了其他软件,即使是最强大的商业工具,如 IBM的 Rational。MyEclipse 中也取得了可通过 Pulse (ALM),保持 Eclipse 软件的配置文件,包括那些使用 My
15、Eclipse 的配置工具。此外, MyEclipse 是 IBM 产品,提供定制的版本“MyEclipse 的蓝版”, Rational 软件和 WebSphere 开发,增加了具体的支持。MyEclipse 可以访问免费的在线支持系统(众多客户的认可,在同行业中最好的) ,除了全面的教育材料,还包括演示,教程,用户库论坛和常见问题解答贡献的信息,而且不是基于社区的支持,而是专业工作人员的支持。2.3 MYSQL 数据库平台MYSQL 是一个关系型数据库管理系统,比普通的数据库更加的人性化,关联的数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加本 科 毕 业 设
16、计 第 6 页 共 36 页了速度并提高了灵活性 5。MySQL 的 SQL 指得是“结构化查询语言”。SQL 是用于访问数据库的最常用标准化语言,它是由 ANSI/ISO SQL 标准定义的。MySQL 也是最流行的开放源码 SQL 数据库管理系统,在 2013 年 4 月份各数据库在市场的占用率中,MySQL 列为第二,仅次于 Oracle 数据库。它是由 MySQL AB 公司开发、发布并支持的。MySQL AB 是由多名 MySQL 开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型, 。现被甲骨文公司收购。数据库是数据的结构化集合。它可
17、以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如 MySQL 服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。MYSQL 在主流数据库里面比较小巧、实用、性能比较高。MySQL 软件提供了十分快速的多线程、多用户、牢靠的 SQL(结构化查询语言)数据库服务器。 MySQL服务器定位于任务关键型、重负荷生产系统,并能嵌入在大量部署的软件中。最多能够降低 90的总体拥有成本(TCO) ,性能和可伸缩
18、性,易于使用和管理,拥有较高的可靠性和广泛的平台支持,并且可以集成到 Windows 环境。MYSQL 为多种编程语言提供了 API,方便了代码的移植。不仅如此, MYSQL 支持多线程,充分利用了 CPU 资源。虽然相对于其他数据库比较小巧,但也可以处理上千万条记录,MySQL 服务器可以连接含 5 千万条记录的数据库。不仅如此,有些用户将 MySQL 用于含 60000 个表和约 50 亿行的数据库。每个表可支持高达 64 条索引(在MySQL 4.1.2 之前为 32 条)。每条索引可由 1 16 个列或列元素组成。所以功能上基本满足了大部分软件,更因为其开发成本比较低,经济实用,尤其适
19、合于中小型软件开发。MYSQL 具有十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。在任何平台上,客户端可使用 TCP/IP 协议连接到 MySQL 服务器。在 Windows 系统的 NT 系列中(NT 、2000 、XP 或 2003),客户端可使用命名管道进行连接。在Unix 系统中,客户端可使用 Unix 域套接字文件建立连接 6。本 科 毕 业 设 计 第 7 页 共 36 页2.4 JDBC 简介Java 数据库连接,( Java Database Connectivity,简称 JDBC)是 Java 语言中用
20、来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。使用这些接口和类,Java 客户端程序可以访问各种不同类型的数据库。比如建立数据库连接,执行 SQL 语句进行数据的存储操作。 JDBC 也是 Sun Microsystems 的商标。它 JDBC 是面向关系型数据库 的。JDBC 工作在 Java 的各种平台,如 Windows, Mac OS 和各种版本的 UNIX。在 J2SE 中,提供了一个称之为 JDBC-ODBC 桥(JDBC-ODBC Bridge)的 API。通过 ODBC, JDBC-ODBC 桥驱动程序可以访问所有支持 ODBC 的关系
21、型数据库。与JDBC API 不同的是,这个驱动程序并不是由 Java 代码而是由机器码(native code)编写,并且不是开放源代码的。JDBC 驱动程序由各个数据库厂家根据 JDBC 的规范制作的 JDBC 实现类,共分四种类型:类型 1:JDBC-ODBC 桥类型,2:本地 API 驱动类型,3:网络协议驱动类型,4:本地协议驱动 7。JDBC API 是一个 Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC API 主要位于 JDK 中的 java.sql 包中(之后扩展的内容位于javax.sql 包中),主要包括(斜体代表接口,需驱动程序提供
22、者来具体实现)。JDBD 规范采用接口和实现分离的思想设计了 Java 数据库编程的框架。本 科 毕 业 设 计 第 8 页 共 36 页3 需求分析3.1 系统的任务目标食色无双餐饮管理系统,目的在于减少人力劳动,提高自动化程度。根据客户的需求和可行性研究结果,系统分为员工和管理员两类权限。员工可以通过收款界面进行点餐和结账,并分别对年,月,日的销售记录的统计。管理员用户不仅可以拥有员工用户的权限,还可以录入新的员工信息和实现员工信息的管理,可以通过菜谱管理功能更新菜谱的信息,可以实现成本的记录与修改。系统能够满足中小型餐饮店铺的日常管理需求。3.2 功能需求本课题是针对中小型餐厅的餐饮管理
23、系统,目的在于减少人力劳动,提高自动化程度。该系统主要包括餐厅的人事管理,菜谱管理,成本管理,点餐和结账,附带工作记录的万年历,报表统计管理等功能。根据系统的需求分析,本系统管理员模块分成以下主要功能模块:a ) 系统登录模块:包括开始的闪屏效果,主要功能是实现登录窗口,根据用户的权限来决定主窗口可用的功能。b ) 菜谱管理模块:主要功能是实现菜谱的更新,修改,删除,添加,显示详细信息,统计菜品数目,按编号,名称,类别进行查询数据,并可以按类别分别显示数据。c ) 人事管理模块:主要功能是实现员工的更新,修改,删除,添加,显示详细信息,统计员工数目,按员工号,姓名或者职位进行查询数据。d )
24、成本管理模块:主要功能是实现原材料成本的更新,修改,删除,添加,显示详细信息,统计数据数目,按编号或名称进行查询数据。e ) 登录管理模块:主要功能是实现具有登录权限的员工的查询和密码修改。f ) 万年历模块:主要功能是实现日期的查询,可以对任何日期进行查询,并可以在任意日期中记录当天的工作日志和重要事项,并可以删除无用日志。g )系统设置模块:重要功能是实现切换用户和切换到收款界面。本系统收银员模块分成以下主要功能模块:本 科 毕 业 设 计 第 9 页 共 36 页a ) 台号模块:主要功能是实现对餐厅座位的添加和删除。b ) 点餐模块:主要功能是实现对不同座位的点餐服务,将点餐的座位号和
25、所点菜名分别显示在开台列表和签单列表中,并记录开台时间。c ) 结账模块:显示消费金额,实收金额和找零金额,完成结账的功能。d ) 统计模块:对年,月,日的销售记录分别进行统计。3.3 数据字典 餐饮管理系统的数据字典如表 3.1 所示。表 3.1 餐饮管理系统的数据字典表名 描述 包含的信息菜谱信息 菜谱的相关信息 编号、菜名、价格、原料、备注、折扣。登录信息 人员的登录权限信息 员工号、姓名、职位、密码。人事资料 员工的人事信息员工号、姓名、性别、职位、年龄、身份证号、出生日期、学历、籍贯、住址、婚否。成本信息 原材料的成本信息 编号、名称、原料价、售价、利润、净利润、备注。报表信息 已消
26、费的报表信息 编号、报表编号、菜品编号、数量、付款金额。报表记录 已消费的报表记录 报表编号、台号、结账时间、付款金额。菜单信息点餐时餐单的显示信息编号、类别编号、菜名、助记码、单位、价格、状态台号信息 座位号的信息 编号、座位号。类别信息 菜名的相关类别信息 编号、类别名称、状态。本 科 毕 业 设 计 第 10 页 共 36 页4 系统概要设计4.1 系统实现方案4.1.1 系统设计思想食色无双管理系统主要完成餐饮管理中人事和菜谱信息的管理,点餐,结账功能的实现。包括对人事和菜谱信息的编辑操作,为此系统必须有能够维护这些信息的数据表。与此同时还要维护各种辅助项目的信息,例如菜谱信息、报表信
27、息、人事信息等。另外系统还要能够管理餐饮管理系统的登录用户信息等。当收银员或者管理员系统登录系统时,程序分别从已有的登录表中读出用户名和密码,并检验该密码与用户输入的密码是否匹配,只有用户名在数据库中存在并且密码正确时,管理员才能进入系统,而收银员只能进入收款的界面,而不能进入主系统。当管理员需要查询菜谱,人事和成本信息时,程序便从数据库中读出相应的记录信息。4.2 系统结构设计4.2.1 系统结构设计食色无双餐饮管理系统分为管理员和收银员模块。管理员模块具有以下功能:登陆管理,菜谱管理,人事管理,成本管理,万年历模块。收银员模块具有以下功能:台号管理、点餐、结账、报表统计。系统结构设计图如图 4.1 所示。管理员登陆管理菜谱管理人事管理万年历成本管理收银员点餐结账台号管理报表统计食色无双餐饮管理系统