1、 西南科技大学 专业方向设计报告 课程名称: 通信专业方向设计 设计名称: 基于 java 的餐厅点菜系统 姓 名: * * 学 号 : * 班 级: 通信 0901 指导教师: 江 虹 起止日期: 2012.11.20 2012.12.15 西南科技大学信息工程学院制2 方 向 设 计 任 务 书 学生班级: 通信 0901 学生姓名: * * 学号 * 设计名称: 基于 java 的餐厅点菜系统 起止日期: 2012.11.20 2012.12.15 指导教师: 江虹、罗智 设计要求: 1、利用 java 设 计一个餐厅点菜系统 2、有桌位号供顾客选择 3、在菜单显示中,可以浏览菜品及对应
2、的价格 4、顾客可以随意选择自己喜欢的菜 5、可以增删选菜记录 6、生成账单 7、在账单界面显示消费总额、所选菜品及菜品总数 8、结账后清空数据库中的信息 9、独立完成整个设计 方 向 设 计 学 生 日 志 时间 设计内容 2012.11.21 2012.11.25 熟悉餐厅点 菜系统的原理 2012.11.02 2012.11.30 分析系统需要实现的功能,并针对每个功能做相应的准备 2012.11.27 2012.12.01 设计一个简单的界面,在此基础上增添基本功能 2012.12.02 2012.12.10 在实现功能的基础上进行调试、修改 2012.12.10 2012.12.15
3、 增添功能,完善系统设计 2012.12.15 2012.12.18 在实现功能的基础上对系统的界面进行美化 2012.12.16 2012.12.20 整理文档,撰写报告 2012.12.23 答辩 3 方 向 设 计 评 语 表 指导教师评语: 成绩: 指导教师: 年 月 日 4 基于 java 的餐厅点菜系统 摘要 餐厅点菜系统是为了实现餐厅点菜自动化而设计的, 不用人工服务员客人就可以自行完成点菜这一过程,从而避免了由于服务员的疏忽或者态度等问题为客人造成不必要的麻烦。利用点菜系统可以 及时、准确、高效的为客人提供服务,减少了很多繁琐的过程。 在开发餐厅点菜系统中, 采用 JAVA 语
4、言程序设计的基本知识, JAVA 语言程序设计的基本方法和基本思想,运用数据库对表的基本操作,常用查询语句的使用以及 ACCESS 对表的数据的设计,利用图形化编程和 JDBC 技术来实现餐厅点菜系统的设计 。通过系统的开发掌握软件的基本的开发流程,了解系统的功能,从而掌握软件开发整体过程,把知识运用到实际 生产中。 关键词 点菜系统、高效、 Access2003数据库、 java ABSTRACT Restaurant order system is in order to realize the automation and the design of the restaurant ord
5、er, without artificial waiter guests can automatically complete this order process, thereby avoiding the waiters carelessness or attitudes to such issues as guests to cause unnecessary trouble.Use order system can offer timely, accurately and effectively service for the guest and reduce a lot of cum
6、bersome process. In the development of the restaurant order system, using the basic knowledge of JAVA programming language , the basic method and basic idea, the use of the basic operation on the database table ,the use of common queries and ACCESS to the design of the data in the table ,the use of
7、graphical programming and JDBC technology, to achieve the restaurant order system design.Through the development of the system to master the basic software development process , understanding the function of the system, so as to grasp the whole process of software development, using the knowledge to
8、 practical production 一、 设计目的和意义 餐厅点菜系统所要完成的基本功能就是实现无服务生点菜,客人可以通过点菜系统自行点菜。 在餐厅里有很多种菜谱,每一种菜有一个名称,对应一个唯一的编号和一个固定的单位价格。当有顾客来酒店时,顾客首先选择一个桌位号(也是唯一的),当顾客进入餐厅点菜系统后,就可以按照菜谱上有的菜来点菜。顾客在结账时应付的钱为:每种菜的单位价格相加为总的付款。编程语言为 java,利用 Access2003 作为后台数据库,该系统主要面向中小型餐饮企业提供餐饮点菜功5 能,系统后台数据库只有一张表,用于保存菜品名称、价格和桌位号。 通过本次课程设计可以加深
9、对 java 语言程序设计基本知识的理解,掌握 java语言程序编写和调试的基本技能,了解有关程序设计、程序开发的思路方法,提高利用软件程序解决实际问题的能力。在设计过程中,可以培养我们分析问题、解决问题的能力,把理论与实际结合在一起,可以更好的掌握好一门语言,同时因为需要用到数据库,所以可以通过此次课程设计自学一下数据库,以及利用 JDBC访问数据库。 二、 设计原理 本设计主要用到 java 语言程序设计、 SQL 语言以及 Access 数据库。这是一个Java Application, 没有浏览器提供的现成的图形界面可以直接使用,所以需要首先创建自己的图形界面。首先创建一个对话框,在其
10、内容面板内添加两个组件按钮,当进入系统后,即可进入主菜单界面,此部分主要是要实现对按钮的监听事件,即使用 addActionListener(this)事件监听器,事件处理接口的方法为 actionPerformed(ActionEvent e)。 在主界面,首先是完成窗体整体布局,在 java 的 GUI 界面设计中,布局控制是通过为容器设置布局管理器来实现的。布局管理器负责确定组件在容器中的位置和大小。当容器需要定位 组件和确定组件大小时,就会给布局管理器对象法消息,让它完成该项工作。 Java.awt 包中定义了 5 种布局管理器类,每个布局管理器类对应一种布局策略。在此系统中,用到最多
11、的布局管理器类有BorderLayout(组件按北、南、东、西、中几个位置排列 )和 GridLayout(以行和列的网络形式安排组件 )。然后因为要显示桌位号和菜品,利用单选按钮组来实现顾客的选菜功能,创建一个单选按钮组,提供选中 /不选中两种状态,ButtonGroup 是由一组互斥的按钮组成,同一时刻只能有一个按钮被选中,将桌位号的按钮组加入到此按 钮组中。菜品的显示也以单选按钮的方式显示在窗体界面中,这样顾客就可以选择自己喜欢的菜品,然后点击确定后就可将数据存入数据库中。 在 java 的编程中,需要用到 Access 数据库,启动进入 Access 后,创建一个数据库,然后定义表的列
12、名与列的数据类型 ,分别用于存放桌位号、菜品名6 称及菜品价格。为了实现在 java 程序中访问 Access 数据库,需要利用 windows提供的工具创建指向数据库的数据源,这样在程序中通过数据源名即可访问Access中的数据库。 在对数据进行操作之前,首先要建立程序与一个具体数据库的连接, 而在连接 数 据 库以 前 ,必 须 注 册该 数 据库 的 驱动 程 序。 完 成此 项 工 作的 是DriverManager 类,它被称为驱动程序管理器,其基本功能是管理 JDBC 驱动程序。 Driver 是 java 定义的一个接口,每一个驱动程序类都必须实现这个接口。装载数据库驱动程序可以
13、采用 Class 类的 forName()方法,当对数据库的操作告一段落时,可通过调用 Connection 的 close()方法结束会话,释放连接的数据库及 JDBC资源。 JDBC 是一种用于访问数据库和执行 SQL 语句的 java 编程接口,由一组用java 语言编写的类和接口组 成。 JDBC 是用于 java 应用程序连接数据库的标准方法。 JDBC 对 java 程序员而言是 API,对实现与数据库连接的服务提供商而言是接口模型。 JDBC 使用已有的 SQL 标准并支持其他数据库连接标准, JDBC 实现了所有这些面向标准的、简单且高性能的接口。利用 JDBC访问数据库大致包
14、含以下三个步骤: 建立与数据库的连接 通过发送 SQL语句对数据库进行读写 处理语句的执行结果,特别是查询语句的返回数据 三、详细设计步骤 本系统采用基本的 JAVA 语言编写,由于 JAVA 语言不同与 C+语言,它具有其语言的特殊性,包含很多类,基本是每一种功能为一个类。开始有主框架类,通过按钮监听事件调用别的类,完成功能的实现。 其基本的流程为:顾客来酒店选择桌号 按照菜谱上的菜的种类选择所需要的菜 然后按下确认键确定要选择的菜品 统计所选择菜的价格 结帐付款为所有菜的编号所相对应的价格相加并验证自己付款是否有误。 系统主7 要流程图如图 1 所示: 顾 客 进 入 餐厅运 行 点 菜
15、系统进 入 系 统 退 出 系 统选 择 桌 号选 择 菜 品 取 消否确 定 、 结 账输 入 桌 号 确 定 查 看 消 费 退 出 系 统是图 1 总体结构框图 根据功能需求,本系统包含有 5个类,利用 ACCESS 建立一个表就可以了。通过 JAVA 与该数据表的连接关系对该表的数据进行输入,然后通过顾客对数据的随机选择来调用数据表的数据,实现不同的功能。 系统的主要功能模块 首先进入系统初始界面,此界面由一个对话框构成,由 public class order implements ActionListener 完成这个功能。 通过 Container contentPane = D
16、ialog.getContentPane()获得其内容面板,然后新建一个中间容器,在容器内添加两个按钮,分别表示进入系统和退出系统,点击按钮时,就可触发相应的 ActionEvent 事件,通过 getActionCommand()获得按钮标签,当点击进入系统时关闭对话框,进入点菜系统主界面,否则即可退出系统。 当点击进入系统时,系统就进入点菜界面,用户可以在此窗口中选择自己喜欢的桌号和喜欢的菜品,要实现这个功能,需要用到的框架类为: public class Menu implements ActionListener, ItemListener 这部分的功能实现,首先是定义两个数组,分别用
17、于存放餐桌号和菜品名单,8 创建两个单选按钮组,并指明其文本说明标签,即用于显示桌号和菜品名单及价格,然后将单选按钮组分别极加入到两个中间容器中,这样就可以看到桌位号和菜品名称及价格。然后设置三个按钮,分别是确定、结账和取消按钮。当顾客点击确定后,就将顾客所选择的桌号和菜品名单及价格存入数据库中,当顾客点击结账后,就可进入结账界面,当顾客点击取消按钮,就可将当前所选择的菜品删除掉,然后可以再重新选择顾客喜欢的菜 品。其主要流程图如图 2 所示: 创建一个Jframe窗体布局,设置界面,添加事件监听器按钮事件监听确定设置一个布尔型的标志数组remark,用于标置哪个单选按钮被点了建立与数据库的连
18、接,当remarkitrue时,向数据库写入语句,分别标示其桌位号、菜品名称及价格取消保存数据并结账清空数据进入结账界面关闭数据库,返回数据图 2 点菜功能流程图 这部分主要是要实现将顾客所选择的桌号和菜品等数据存进数据库,调用DriverManaget 类的静态方法 getConnection 建立一个数据库连接,并定义一个remark 标志,当顾客选择了哪号桌或者哪个菜时,就可以向数据库中写入语句,这样,当用户点击确定后就保存数据。 这里主要是通过执行 SQL 语句访问数据库,然后执行查询返回的结果。当点击一个单选按钮后,返回一个 remarki,当建立与数据库的连接后, 执行 SQL 语
19、句的写语句,向数据库中写入语句,当点击确定后,就保存数据。当点击取消按钮时,执行 SQL 语句的删除语句,这样就可以将所点的菜清空,然后重新选择自己喜欢的菜品。 当在菜单窗口中按下结账按钮后,就会进入结账的界面,此时需要跳转到另9 一个类中运行,这个类为: public class jiezhang implements ActionListener 这部分主要是要从数据库中读取数据,然后顾客才能在结账界面看到自己点了几道菜以及都是些什么菜,总共花费是多少钱等。向数据库发送 SOL 查询语句,利用 executeQuery()方法就可返回一个 ResultSet 对象,最后通过 while 语
20、句,就可实现其功能,通过 sum( valuess)可以将顾客所点菜品总的价格统计相加起来,这样顾客就可以看到自己总共的消费了。因为菜名在数据库中是以 cname 表示的,所以要在结账界面显示点了些什么菜,就需要向数据库执行查询语句,然后通过getString()获得其内容,然后显示在结账界面的文本域中。总共点了多少道菜是通过 while 循环,得出数据库中总共写了几个数据,然后统计出总共点了多少菜。结账后,将数据库中的数据删除,关闭数 据库连接。其主要流程图如图 3 所示: 输 入 桌位 号确 定建 立 与 数 据库 的 连 接向 数 据 库 发 送 S Q L查 询 语 句 , 保 存 查
21、询 返 回 结 果通 过 w h i l e ( ) 移动 指 针 , 一 次 访 问查 询 中 的 每 一 行通 过 s u m ( v a l u e s ) 获得 总 的 消 费 总 额 , 并将 结 果 显 示 在 标 签 中通 过 w h i l e ( ) 移 动 指针 , 查 询 i d 为 刚 刚 输 入 的桌 号 的 内 容 , 将 菜 品 名 称依 次 输 出 到 文 本 域 内在 结 账 界 面 , 可 以 看到 所 点 的 菜 品 名 称通 过 w h i l e ( ) 语 句 , 一次 查 询 数 据 库 中 i d 为 刚 刚输 入 的 桌 号 的 数 据 , 每
22、 执行 一 次 循 环 语 句 , 就 加 一次 , 最 后 得 到 总 的 菜 品 数在 结 账 界 面 可 以 看 到总 共 点 了 多 少 道 菜取 消退 出 对 话 框 , 数 据库 中 的 数 据 清 空图 3 结账功能流程图 当然,当顾客不止需要一个桌位时,可以先选择一个桌号,选好菜后点击确定按钮,保存数据,然后再选择一个桌号,选择菜品,点击确定,最后点击结账时,只需输入其中的一个桌号,就可看到自己总共的花费,这样既让顾客觉得方10 便,也省去了许多麻烦。 主程序在名为 startSystemHere 的类中运行,为 public static void main(String a
23、rgs) throws Exception new order(); 五、 设计结果及分析 各个模块功能的实现 打开餐厅点菜系统程序 ,会 出现一个对话框, 通过点击相应的按钮,就可进入或者退出系统。 界面如图 4所示: 图 4 初始界面图 当用户点击进入系统按钮后,对话框关闭,进入主窗口界面,如图 5 所示: 图 5 主界面图 在主界面可以 看到,有三个部分,第一部分显示的是桌位号,顾客可以选择一个自己喜欢的桌位号,然后第二部分显示的是菜品,那是一组单选按钮,不仅显示了菜的名称,而且还显示了菜的价格,这样顾客就可以很直观的选择菜品,最后第三部分是提示语,当客人点完菜后,再点击确定按钮,就可以将数据存入数据库中,比如说客人选择了桌位号 2,所点的菜为澳洲小龙虾、重庆辣子鸡和尖
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。