




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前言.1 第一章 选题意义及可行性研究.2 1.1 选题意义 .2 1.2 可行性研究 .2 第二章 系统需求分析.3 2.1 系统功能分析 .3 2.2 系统功能模块分析 .3 2.3 系统流程图 .4 2.4 面向对象设计的用例图及类图 .4 2.5 数据库设计 .6 第三章 系统详细设计.8 3.1 关键技术: ANDROID NINEPATCH技术.8 3.2 结账管理模块 .9 3.2.1 日结帐设计.9 3.2.2 月结帐设计.12 3.2.3 年结帐设计.14 3.3 修改密码模块 .16 3.3.1 修改密码设置设计.16 3.4 用户管理模块 .18 3.4.1 添加用户说明设计.18 3.4.2 删除用户说明设计.21 总结.24 参考文献.24 1 前前 言言 餐饮管理系统是一个饮食产业不可缺少的部分,它的内容对企业的决策者和 管理者都至关重要,所以餐饮管理系统应该能够为用户提供充足的信息和快捷的 查询手段。但一直以来人们使用的餐饮管理系统均是以人为主体的,需要很多 的人力、物力、财力,且效率不是很高,在系统运营时也可能产生人为的失误, 以致餐饮管理工作既繁琐而且不利于分析企业的经营状况。 作为计算机应用的 一部分,使用计算机对餐饮信息进行管理,这样不仅提高了工作效率,也避免 了以前手工作业的麻烦,从而使管理者能够准确、有效地管理餐饮。 面对庞大的信息量,酒店在正常运营中需要对餐饮中菜品资源、场地信息、 结算信息进行管理,利用酒店餐饮管理系统及时了解个环节中信息的变更,有 利于提高管理的效率.通过这样的系统,可以做到信息的规范管理、需要统计和 快速的查询,从而减少在管理方面的工作量。在某种意义上,酒店餐饮管理方 面的信息化已成为现代化酒店的重要标志。该系统应充分利用信息技术提高酒 店餐饮的管理水平、服务水平。酒店餐饮管理系统要实现菜单查询,菜系查询, 位置查询,日,月,年结算信息的统计,还有现金的结算等功能。其中日,月, 年总结结算是统计,可以对酒店餐饮方面的营业情况的有一个详细的了解,对 那种菜系的喜爱程度都有一个详细的了解。同时对台号信息的管理,可以充分 的利用场地。这些对酒店餐饮进行全方位的管理,提高经济效益、提高服务质 量、提高工作效率及全面了解营业情况。 全套设计加扣 3012250582 2 第一章 问题定义及可行性研究 系统分析的任务是:在认识原信息系统的基础上,通过问题识别、可行性 分析、详细调查、系统化分析,最后完成系统的逻辑方案设计,或称逻辑模型 设计。 1.1 问题定义 面对酒店发展过程中日益出现的问题及各种情况,在实施酒店客房管理系 统之后,应解决以下问题: (1)信息化管理,可随时掌握顾客,菜单,结账等信息。 (2)系统内部控制严密,数据存储安全可靠。 (3)系统工程界面友好美观,操作简易,查询多样方便。 1.2 可行性研究 可行性的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决, 是否值得去解决。可行性分析的任务是明确项目开发的必要性和可行性。必要 性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。 技术可行性:随着国内软件开发整体水平的提高,各种中小企事业单位已 具备独立开发各种类型软件的能力。本系统采用面向对象技术、数据库技术等 先进技术开发,现有的开发技术已非常成熟,且被广泛地应用于各行各业,此 外 JAVA 开发语言本身良好的安全性、可移植性将大大提高内部数据安全及可 靠性,使得运用该系统进行管理灵活方便。所以利用现有技术完全可以达到功 能目标。 经济可行性:该系统成本主要集中在软件的开发上,当系统投入使用后可 以为餐饮店节省一大部分人力、物力;同时该系统也对顾客消费记录都做有详 3 细的账单记录,可对消费记录进行科学化、规范化管理,提高工作人员素质和 工作效率以及工作质量,它所带来的效益远大于系统软件开发成本,故而在经 济上完全可行。 法律可行性:本系统的研发都选用正版软件,不会侵犯他人、集体和国家 的利益,不会违反相关的国家政策和法律。 操作可行性:酒店餐饮管理系统可节省操作人员的数量提高工作效率及准 确性,改由计算机管理,操作量及错误率将得到大量减少。 第二章 系统需求分析 需求分析是系统开发工作中的最重要的环节之一。其任务是结合组织目标、 业务现状、技术水平、投资能力等因素,对用户提出的需求从信息系统目标、 宏观结构、业务功能、技术性能、系统风险等方面进行深入分析,最后制定出 全面、合理、可行的信息系统需求。 2.1 系统功能分析 本系统利用信息技术提高酒店餐饮管理的水平并希望通过本系统的开发使 用使得酒店顾客的就餐状况等一系列业务进行系统地管理系统主要功能包括: 。 1.前台管理:包括住就餐位登记、点菜登记、结帐。 2.点菜管理:包括菜种类查询、菜品种查询。 3.查询统计:包括座位查询、消费统计。 4.消费管理:包括消费查询、客人结帐。 5.系统设置:包括登陆设置、密码设置、用户管理。 2.2 系统功能模块分析 本系统共分 5 大部分, 12 个完整的功能模块。系统结构如图 2-1 所示: 4 图 2-1 系统模块图 2.3 系统流程图 根据系统的模块图,分析得到的系统流程图如图 2-2 所示 图 2-2 系统流程图 5 2.4 面向对象设计的用例图及类图 面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越 广泛的关注和高度的重视,它被誉为研究高技术的好方法,更是当前计算机 界关心的重点。面向对象就是主张从客观世界固有的事物出发来构造系统,提 倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最 终建立的系统能够映射问题域,也就是说,系统中的对象以及对象之间的关系 能够如实地反映问题域中固有事物及其关系。因此对于酒店餐饮管理系统采用 面向对象的分析方法,可以是使系统便于理解与设计,也使后续系统的扩展与 维护更加的便利。 对于该酒店餐饮管理系统采用面向对象的分析方法分析后的得到的用例 图如图 2-3 所示 图 2-3 用例图 由于系统面对的用户单一,只有管理员,所以系统的类图如图 2-4 所示 6 图 2-4 类图 2.5 数据库设计 本系统数据库名为 DrinkeryManage.mdb,包含以下 5 个表:管理员表(user)、 台号管理表(desk)、菜单表(menu)、结账表(order_form) 、签单表(order_item) 、 菜系管理表(sort) 。下面分别详细介绍以上各表: 表 2-1 菜系管理表(sort) 字段名称数据类型字段大小 IdIntNot null NameVarchar20 表 2-2 管理员表(user) 字段名称数据类型字段大小 IdInt15 NameVarchar8 sexchar2 birthdaydatatimeNot null Id_cardvarchar20 passwordvarchar20 freezechar4 7 表 2-3 台号管理表(desk) 字段名称数据类型字段大小 NumvarChar5 SeatingIntNot null 表 2-4 菜单管理表(menu) 字段名称数据类型字段大小 NumChar8 Sort_idintNot null Namevarchar20 Codevarchar10 Unitvarchar4 Unit_priceintNot null statechar4 表 2-5 结账表(order_form) 字段名称数据类型字段大小 NumChar11 Desk_numVarchar5 DatatimeDatimeNot null MoneyIntNot null User_idIntNot null 表 2-6 签单(order_item) 字段名称数据类型字段大小 8 IdIntNot null Order_form_numChar11 Menu_numChar8 AmountIntNot null TotalIntNot null 第三章 系统详细设计 详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的 细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在 这个阶段将详细地设计每个模块,具体的实现功能。 3.1 关键技术: Android NinePatch 技术 一直以来,Java GUI 的外观很难达到主流审美标准况,java1.5 里发布的 Synth 技术在没有可视化工具的前提下,依然不实用。并且一个稍复杂点的平面 效果,受限于技术实现,Swing 里虽然也只能像网页一样切图拼合,但在 Swing 里这么做代价较大:需要精确切图拼合、复杂的布局、未来定制很困难 等等,显然不实用。但是随着技术的发展引入了引入 Android NinePatch 技术后, 使传统的 GUI 的 UI 设计风格大大得到改善,GUI 界面转换成 BeautyEye L org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); catch (Exception e) / TODO exception BeautyEye 界面中有四中界面可选,可通过 BeautyEyeLNFHelperBorderStyle 的属性值来改变所需要的,这里为了便于用户 的操作使用了 osLookAndFeelDecorated 的传统的系统默认的边框,有最大,最 小化窗口及关闭窗口的功能。 10 图 3-2 加入 beautyeye_inf.jar 包图 3.2 结账管理模块结账管理模块 结账管理模块分为:日结账、月结帐、年结账。 3.2.1 日结帐设计 1、实现目标: 用户单击主菜单结账管理下的日结帐子菜单,进入日结账查询子菜单界面。 (如图 4-12 所示)结帐查询子菜单主要实现如下功能: 显示日份账单并结算。 打印清单。 图 3-3 日结账界面 2、实现主要程序代码: public void actionPerformed(ActionEvent e) 11 int year = (Integer) yearComboBox.getSelectedItem();/ 获得 选中的年度 judgeLeapYear(year);/ 判断是否为闰年,以确定 2 月份的 天数 int month = (Integer) monthComboBox.getSelectedItem();/ 获 得选中的月份 if (month = 2) / 如果选中的为 2 月 int itemCount = dayComboBox.getItemCount();/ 获得日 下拉菜单当前的天数 if (itemCount != daysOfMonth2) / 如果日下拉菜单当 前的天数不等于 2 月份的天数 if (itemCount = 28)/ 如果日下拉菜单当前的天数 为 28 天 dayComboBox.addItem(29);/ 则添加为 29 天 else / 否则日下拉菜单当前的天数则为 29 天 dayComboBox.removeItem(29);/ 则减少为 28 天 ); 3.2.2 月结帐设计 1、实现目标: 用户单击主菜单结账管理下的月结帐子菜单,进入月结帐子菜单界面。 (如 图 3-13 所示)客人结账子菜单主要实现如下功能: 显示月份账单并结算 12 图 3-4 月结帐界面 1、实现主要程序代码: submitButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) tableValueV.removeAllElements(); int year = (Integer) yearComboBox.getSelectedItem(); int month = (Integer) monthComboBox.getSelectedItem(); for (int day = 1; day = daysOfMonthmonth; day+) Vector rowV = new Vector();/ 表格行对象 rowV.add(day); String date = year + ; if (month 10) date += 0 + month; else date += month; if (day 10) 13 date += 0 + day; else date += day; String values = dao.monthCheckOut(date); for (int i = 0; i values.length; i+) rowV.add(valuesi); tableValueV.add(rowV); Vector rowV = new Vector();/ 表格行对象 rowV.add(总计); String values = null; if (month 10) values = dao.monthCheckOut(year + 0 + month); else values = dao.monthCheckOut(year + + month); for (int i = 0; i values.length; i+) rowV.add(valuesi); tableValueV.add(rowV); tableModel.setDataVector(tableValueV, tableColumnV); ); submitButton.setText(确定); finaJScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); tableColumnV = new Vector(); tableColumnV.add(日期); tableColumnV.add(开台总数); tableColumnV.add(消费总额); tableColumnV.add(平均消费额); 14 tableColumnV.add(最大消费额); tableColumnV.add(最小消费额); tableValueV = new Vector() tableModel = new DefaultTableModel(tableValueV, tableColumnV); table = new MTable(tableModel); scrollPane.setViewportView(table); private void judgeLeapYear(int year) if (year % 100 = 0) if (year % 400 = 0) daysOfMonth2 = 29; else daysOfMonth2 = 28; else if (year % 4 = 0) daysOfMonth2 = 29; else daysOfMonth2 = 28; 3.2.3年结帐设计 1、实现目标: 用户单击主菜单结账管理下的年结账子菜单,进入年结账子菜单界面。 (如 图 4-14 所示)客人结账子菜单主要实现如下功能: 显示年份账单并结算 15 图 3-5 年结帐界面 2、实现主要程序代码: public void actionPerformed(ActionEvent e) tableValueV.removeAllElements(); int year = (Integer) yearComboBox.getSelectedItem(); tableValueV.addAll(dao.yearCheckOut(year); Container contentPane = getContentPane(); contentPane.remove(1); getContentPane() .add( new FixedColumnTablePanel(tableColumnV, tableValueV, 1), BorderLayout.CENTER); SwingUtilities.updateComponentTreeUI(contentPane); ); 16 submitButton.setText(确定); panel.add(submitButton); tableColumnV = new Vector(); tableColumnV.add(日期); for (int i = 1; i = 12; i+) tableColumnV.add(i + 月); tableColumnV.add(总计); tableValueV = new Vector(); getContentPane().add( new FixedColumnTablePanel(tableColumnV, tableValueV, 1), BorderLayout.CENTER); / 3.3 修改密码模块 系统设置模块分为:修改密码。 3.3.1 修改密码设置设计 1、实现目标: 用户单击主菜单系统设置下的修改密码设置子菜单,进入修改密码子菜单 界面。 (如图 3-6 所示)权限设置子菜单主要实现如下功能: 对用户进行修改密码。 17 图 3-6 修改密码界面 2、实现主要程序代码: public void actionPerformed(ActionEvent e) char oldPasswords = oldPasswordField.getPassword(); String oldPassword = turnCharsToString(oldPasswords); char newPasswords = newPasswordField.getPassword(); String newPassword = turnCharsToString(newPasswords); char repeatPasswords = repeatPasswordField.getPassword(); String repeatPassword = turnCharsToString(repeatPasswords); if (oldPassword.length() = 0 | newPassword.length() = 0 | repeatPassword.length() = 0) JOptionPane.showMessageDialog(null, 请输入密码!, 友情提示, JOptionPane.INFORMATION_MESSAGE); oldPasswordField.setText( ); newPasswordField.setText( ); repeatPasswordField.setText( ); return; 18 String password = user.get(5).toString(); if (oldPassword.equals(password) if (newPassword.equals(repeatPassword) String username = user.get(1).toString(); user.set(5, newPassword); dao.uPasswordByName(username, newPassword); JOptionPane.showMessageDialog(null, 密码修改成 功!, 友情提示, JOptionPane.INFORMATION_MESSAGE); dispose(); else JOptionPane.showMessageDialog(null, 您两次输入的新密码不一致,请确认后重新输入!, 友情提 示, JOptionPane.INFORMATION_MESSAGE); oldPasswordField.setText( ); newPasswordField.setText( ); repeatPasswordField.setText( ); else JOptionPane.showMessageDialog(null, 您输入的原密码 错误,请确认后重新输入!, 友情提示, JOptionPane.INFORMATION_MESSAGE); oldPasswordField.setText( ); newPasswordField.setText( ); repeatPasswordField.setText( ); ); 19 submitButton.setText(确定); final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints(); gridBagConstraints_4.insets = new Insets(10, 0, 0, 0); getContentPane().add(submitButton, gridBagConstraints_4); 3.4 用户管理模块 用户管理模块分为:添加用户、删除用户。 3.4.1 添加用户说明设计 1、实现目标: 用户单击主菜单用户管理子菜单,进入系用户管理界面。 (如图 3-7 所示) 用户管理主要实现功能为对系统中各个用户的添加。 图 3-7 添加用户界面 1、实现主要程序代码: public void actionPerformed(ActionEvent e) String values = new String6; values0 = nameTextField.getText(); 20 values1 = (manRadioButton.isSelected() ? 男 : 女); values2 = birthdayTextField.getText(); values3 = idCardTextField.getText(); values4 = passwordTextField.getText(); values5 = 正常; if (values0.length() 4) JOptionPane.showMessageDialog(null, 姓名最多只能为 4 个汉字!, 友情提示, JOptionPane.INFORMATION_MESSAGE); nameTextField.setText(); nameTextField.requestFocus(); return; if (!Validate.execute(0-94-0-91,2-0-91,2, values2) String infos = 出生日期输入错误!, 正确格式为: 2008-8-8 ; JOptionPane.showMessageDialog(null, infos, 友情提示, JOptionPane.INFORMATION_MESSAGE); birthdayTextField.setText(); birthdayTextField.requestFocus(); return; if (!Validate.execute(d)1,18, values3) JOptionPane.showMessageDialog(null, infos, 友情提示, JOptionPane.INFORMATION_MESSAGE); idCardTextField.setText(); idCardTextField.requestFocus(); return; 21 if (values0.length() 20) JOptionPane.showMessageDialog(null, 密码最长不能超 过 20 个字符!, 友情提示, JOptionPane.INFORMATION_MESSAGE); passwordTextField.setText(); passwordTextField.requestFocus(); return; Vector rowV = new Vector(); int row = table.getRowCount(); rowV.add(row + 1); for (int i = 0; i values.length; i+) rowV.add(valuesi); tableModel.addRow(rowV); table.setRowSelectionInterval(row); dao.iUser(values); JOptionPane.showMessageDialog(null, 用户添加完成!, 友 情提示 JOptionPane.INFORMATION_MESSAGE); nameTextField.setText(); manRadioButton.setSelected(true); birthdayTextField.setText(); idCardTextField.setText(); passwordTextField.setText(); ); subButton.setText(添加); buttonPanel.add(subButton); 22 3.4.2 删除用户说明设计 1实现目标: 用户单击主菜单系统用户管理子菜单,进入用户管理菜单界面,选中要删 除的用户。 (如图 3-8 所示)关于用户管理子菜单主要实现删除系统中的用户。 图 3-8 删除用户界面 2、实现主要程序代码 public void actionPerformed(ActionEvent e) int selectedRow = table.getSelectedRow(); String name = table.getValueAt(selectedRow, 1).toString(); int i = JOptionPane.showConfirmDialog(null, 确定要删除用户“ + name + ”?, 友情
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中思想政治读本课件
- 高三地球在宇宙中课件
- 高三二轮光电效应课件
- 高一物理摩擦力课件
- 《离婚谈判策略解析:三策略离婚调解协议书》
- 物业服务合同中物业服务企业责任与义务界定
- 矿业股份及矿山开采权转让与综合开发管理协议
- 行政合同在数字经济时代的创新与实践
- 离婚双方财产分配与子女抚养责任移交协议模板
- 广告创意迭代代理执行合同
- 铁路作业人员安全课件
- 2025年医疗质量管理质控培训考核试题(含答案)
- 【轻质减负】第2课《中国人首次进入自己的空间站》情境化教学课件
- 心电图课件教学
- 浮吊安全知识培训课件
- 2025年边境巡逻机群无人机协同战术应用
- 后勤人员消防知识培训课件
- 中药饮片养护技术
- 八上必背文言文解析(全册)
- 2025年高等教育法学类自考-00859警察组织行为学历年参考题库含答案解析(5套典型考题)
- 2025年大队委选拔笔试题目及答案
评论
0/150
提交评论