java酒店管理系统课程设计(共34页).doc

上传人:飞****2 文档编号:14441961 上传时间:2022-05-04 格式:DOC 页数:34 大小:357.50KB
返回 下载 相关 举报
java酒店管理系统课程设计(共34页).doc_第1页
第1页 / 共34页
java酒店管理系统课程设计(共34页).doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《java酒店管理系统课程设计(共34页).doc》由会员分享,可在线阅读,更多相关《java酒店管理系统课程设计(共34页).doc(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上 Java语言程序设计课程设计题 目 酒店管理系统 学 院 南湖学院 专 业 计算机科学与技术 班 级 计科N112 学 号 3 学生姓名 吴威宗 指导教师 李永刚 编写日期 2014/6/26 目录一、需求分析随着餐饮行业的迅速发展,现有的人工管理方式已经不能呢个满足管理者的需求,广大餐饮业经营者已经意识到使用计算机应用软件的重要性,决定在餐饮企业的经营管理上引入计算机应用软件管理系统。 酒店管理系统的大致功能:1 开台点餐2 菜品管理3 自动结账4 后台菜系菜品管理5 日月年结账报表6 用户设置根据需求分析,本系统采用的语言:(1)本系统采用Java语言,Java

2、是目前使用最为广泛的计算机语言之一。它具有简单,面向对象,稳定,与平台无关等特点。说他简单,并不是说这门语言很干瘪,而是一种清楚更容易理解的方式实现程序。面向对象是基于对象的变成更符合人的思维方式,使人们更容易编写程序。(2)本系统还采用SQL语言,SQL Server具有许多显著优点:易用性、适合分布组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。(3) 本系统有效的利用Java和SQL的优点。二、系统运行环境 操作系统为Windows 7、windows XP或windows 2003 使用的集成开发工具Eclipse 数据库采用SQL S

3、erver2008,项目运行环境为JDK 7。三、功能需求描述 1开台签单工作区的功能:主要功能有开台、点菜、加菜、签单、查看开台信息和签单信息。 2自动结账工作区的功能:一个功能是自动计算当前选中餐台的消费金额;另一个功能是在结账时自动计算找零金额。 3结账报表工作区功能:日结帐报表,月结账报表,年结账报表。4后天管理工作区功能:管理添加信息四、模块结构图模块结构图五、数据库设计51数据库分析 酒店管理系统的需求包括开台点菜功能、智能化获取菜品功能、自动结账功能、营业额报表功能等。在这些功能总主要涉及的数据表包括台号表、菜品表、消费单表;为了使系统更加的完善,还需要为菜品分类,即需要用到菜系

4、表;为了实现菜品的日销售情况统计,还要建立一个消费项目表,用来记录消费单消费的菜品。52数据库概念设计 数据库设计是系统设计过程中的重要组成部分,它是通过管理系统的整天需求而制定的,数据库设计的好坏直接影响到系统的后期开发。53 数据库逻辑结构设计 台号表菜品表菜系表消费单表消费项目表管理员表六、程序模块设计 功能模块整体设计:用户功能界面:代码:package com.mwq.frame;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.a

5、wt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import .URL;import java.util.Vector;import javax.swing.BoxLayout;import javax.swing.ImageIcon;import javax.swing.JButton

6、;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import com.mwq.dao.Dao;import com.mwq.mwing.MPanel;public class LandFrame extends JFrame private JPasswordField passwordField;/

7、 密码框private JComboBox usernameComboBox;/ 用户名下拉菜单public static void main(String args) try LandFrame frame = new LandFrame();frame.setVisible(true); catch (Exception e) e.printStackTrace();public LandFrame() / 首先设置窗口的相关信息super();/ 调用父类的构造方法setTitle( 小组:吴威宗 周志远);/ 设置窗口的标题setResizable(false);/ 设置窗口不可以改变

8、大小setAlwaysOnTop(true);/ 设置窗口总在最前方setBounds(100, 100, 428, 292);/ 设置窗口的大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 设置当关闭窗口时执行的动作/ 下面将创建一个面板对象并添加到窗口的容器中final MPanel panel = new MPanel(this.getClass().getResource(land_background.jpg);/ 创建一个面板对象panel.setLayout(new GridBagLayout();/ 设置面板的布局管理器为网格

9、组布局getContentPane().add(panel, BorderLayout.CENTER);/ 将面板添加到窗体中final JLabel topLabel = new JLabel();topLabel.setPreferredSize(new Dimension(0, 126);final GridBagConstraints gridBagConstraints_5 = new GridBagConstraints();gridBagConstraints_5.gridx = 0;gridBagConstraints_5.gridy = 0;panel.add(topLabe

10、l, gridBagConstraints_5);final JLabel leftLabel = new JLabel();leftLabel.setPreferredSize(new Dimension(140, 0);final GridBagConstraints gridBagConstraints_3 = new GridBagConstraints();gridBagConstraints_3.gridy = 1;gridBagConstraints_3.gridx = 0;panel.add(leftLabel, gridBagConstraints_3);final JLab

11、el rightLabel = new JLabel();rightLabel.setPreferredSize(new Dimension(55, 0);final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();gridBagConstraints_2.gridy = 1;gridBagConstraints_2.gridx = 1;panel.add(rightLabel, gridBagConstraints_2);/ 创建并设置用户名下拉菜单usernameComboBox = new JCombo

12、Box();/ 创建用户名下拉菜单组件对象usernameComboBox.setMaximumRowCount(5);/ 设置下拉菜单最多可显示的选项数usernameComboBox.addItem(请选择);/ 为下拉菜单添加提示项usernameComboBox.addActionListener(new UsernameComboBoxActionListener();/ 为下拉菜单添加事件监听器final GridBagConstraints gridBagConstraints = new GridBagConstraints();/ 创建网格组布局管理器对象gridBagCon

13、straints.anchor = GridBagConstraints.WEST;/ 设置为靠左侧显示gridBagConstraints.gridy = 1;/ 设置行索引为1gridBagConstraints.gridx = 2;/ 设置列索引为2panel.add(usernameComboBox, gridBagConstraints);/ 将组件按指定的布局管理器添加到面板中/ 创建并设置密码框passwordField = new JPasswordField();/ 创建密码框组件对象passwordField.setColumns(20);/ 设置密码框可显示的字符数pas

14、swordField.setText( );/ 设置密码框默认显示6个空格passwordField.addFocusListener(new PasswordFieldFocusListener();/ 为密码框添加焦点监听器final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();/ 创建网格组布局管理器对象gridBagConstraints_1.insets = new Insets(5, 0, 0, 0);/ 设置组件外部上方的填充量为5像素gridBagConstraints_1.anchor

15、= GridBagConstraints.WEST;/ 设置为靠左侧显示gridBagConstraints_1.gridy = 2;/ 设置行索引为2gridBagConstraints_1.gridx = 2;/ 设置列索引为2panel.add(passwordField, gridBagConstraints_1);/ 将组件按指定的布局管理器添加到面板中/ 创建并设置一个用来添加三个按钮的面板final JPanel buttonPanel = new JPanel();/ 创建一个用来添加按钮的面板buttonPanel.setOpaque(false);/ 设置面板的背景为透明b

16、uttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS);/ 设置面板采用水平箱布局final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints();/ 创建网格组布局管理器对象gridBagConstraints_4.insets = new Insets(10, 0, 0, 0);/ 设置组件外部上方的填充量为10像素gridBagConstraints_4.gridwidth = 2;/ 设置其占两列gridBagConstraints

17、_4.gridy = 3;/ 设置行索引为3gridBagConstraints_4.gridx = 1;/ 设置列索引为1panel.add(buttonPanel, gridBagConstraints_4);/ 将组件按指定的布局管理器添加到面板中/ 创建并设置一个登录按钮,并将其添加到用来添加按钮的面板中final JButton landButton = new JButton();/ 创建登录按钮组件对象landButton.setMargin(new Insets(0, 0, 0, 0);/ 设置按钮边框和标签之间的间隔landButton.setContentAreaFille

18、d(false);/ 设置不绘制按钮的内容区域landButton.setBorderPainted(false);/ 设置不绘制按钮的边框URL landUrl = this.getClass().getResource(land_submit.png);/ 获得默认情况下登录按钮显示图片的URLlandButton.setIcon(new ImageIcon(landUrl);/ 设置默认情况下登录按钮显示的图片URL landOverUrl = this.getClass().getResource(land_submit_over.png);/ 获得当鼠标经过登录按钮时显示图片的URL

19、landButton.setRolloverIcon(new ImageIcon(land_submit_over.png);/ 设置当鼠标经过登录按钮时显示的图片URL landPressedUrl = this.getClass().getResource(land_submit_pressed.png);/ 获得当登录按钮被按下时显示图片的URLlandButton.setPressedIcon(new ImageIcon(land_submit_pressed.png);/ 设置当登录按钮被按下时显示的图片landButton.addActionListener(new LandBut

20、tonActionListener();/ 为登录按钮添加事件监听器buttonPanel.add(landButton);/ 将登录按钮添加到用来添加按钮的面板中final JButton resetButton = new JButton();resetButton.setMargin(new Insets(0, 0, 0, 0);resetButton.setContentAreaFilled(false);resetButton.setBorderPainted(false);URL resetUrl = this.getClass().getResource(land_reset.p

21、ng);resetButton.setIcon(new ImageIcon(resetUrl);URL resetOverUrl = this.getClass().getResource(land_reset_over.png);resetButton.setRolloverIcon(new ImageIcon(land_reset_over.png);URL resetPressedUrl = this.getClass().getResource(land_reset_pressed.png);resetButton.setPressedIcon(new ImageIcon(resetP

22、ressedUrl);resetButton.addActionListener(new ResetButtonActionListener();buttonPanel.add(resetButton);final JButton exitButton = new JButton();exitButton.setMargin(new Insets(0, 0, 0, 0);exitButton.setContentAreaFilled(false);exitButton.setBorderPainted(false);URL exitUrl = this.getClass().getResour

23、ce(land_exit.png);exitButton.setIcon(new ImageIcon(exitUrl);URL exitOverUrl = this.getClass().getResource(land_exit_over.png);exitButton.setRolloverIcon(new ImageIcon(exitOverUrl);URL exitPressedUrl = this.getClass().getResource(land_exit_pressed.png);exitButton.setPressedIcon(new ImageIcon(exitPres

24、sedUrl);exitButton.addActionListener(new ExitButtonActionListener();buttonPanel.add(exitButton);/ 初始化用户名下拉菜单Vector userNameV = Dao.getInstance().sUserNameOfNotFreeze();if (userNameV.size() = 0) usernameComboBox.addItem(TSoft); else for (int i = 0; i userNameV.size(); i+) usernameComboBox.addItem(use

25、rNameV.get(i);class UsernameComboBoxActionListener implements ActionListener public void actionPerformed(ActionEvent e) String userName = (String) usernameComboBox.getSelectedItem();if (userName.equals(TSoft)passwordField.setText(111);class PasswordFieldFocusListener implements FocusListener public

26、void focusGained(FocusEvent e) passwordField.setText();public void focusLost(FocusEvent e) char passwords = passwordField.getPassword();String password = turnCharsToString(passwords);if (password.length() = 0) passwordField.setText( );class ExitButtonActionListener implements ActionListener public v

27、oid actionPerformed(ActionEvent arg0) System.exit(0);class ResetButtonActionListener implements ActionListener public void actionPerformed(ActionEvent arg0) usernameComboBox.setSelectedIndex(0);passwordField.setText( );class LandButtonActionListener implements ActionListener public void actionPerfor

28、med(ActionEvent e) String username = usernameComboBox.getSelectedItem().toString();/ 获得登录用户的名称if (username.equals(请选择) / 查看是否选择了登录用户JOptionPane.showMessageDialog(null, 请选择登录用户!, 友情提示,JOptionPane.INFORMATION_MESSAGE);/ 弹出提示resetUsernameAndPassword();/ 恢复登录用户和登录密码char passwords = passwordField.getPass

29、word();/ 获得登录用户的密码String inputPassword = turnCharsToString(passwords);/ 将密码从char型数组转换成字符串if (username.equals(JAVA) / 查看是否为默认用户登录if (inputPassword.equals() / 查看密码是否为默认密码land(null);/ 登录成功String infos = 请立刻单击“用户管理”按钮添加用户!,添加用户后需要重新登录,本系统才能正常使用! ;/ 组织提示信息JOptionPane.showMessageDialog(null, infos, 友情提示,J

30、OptionPane.INFORMATION_MESSAGE);/ 弹出提示 else / 密码错误JOptionPane.showMessageDialog(null,默认用户“TSoft”的登录密码为“111”!, 友情提示,JOptionPane.INFORMATION_MESSAGE);/ 弹出提示passwordField.setText(111);/ 将密码设置为默认密码 else if (inputPassword.length() = 0) / 用户未输入登录密码JOptionPane.showMessageDialog(null, 请输入登录密码!, 友情提示,JOption

31、Pane.INFORMATION_MESSAGE);/ 弹出提示resetUsernameAndPassword();/ 恢复登录用户和登录密码Vector user = Dao.getInstance().sUserByName(username);/ 查询登录用户String password = user.get(5).toString();/ 获得登录用户的密码if (inputPassword.equals(password) / 查看登录密码是否正确land(user);/ 登录成功 else / 登录密码错误JOptionPane.showMessageDialog(null,

32、登录密码错误,请确认后重新登录!,友情提示, JOptionPane.INFORMATION_MESSAGE);/ 弹出提示resetUsernameAndPassword();/ 恢复登录用户和登录密码private void resetUsernameAndPassword() / 恢复登录用户和登录密码usernameComboBox.setSelectedIndex(0);/ 恢复选中的登录用户为“请选择”项passwordField.setText( );/ 恢复密码框的默认值为6个空格return;/ 直接返回private void land(Vector user) / 登录成

33、功TipWizardFrame tipWizard = new TipWizardFrame(user);/ 创建主窗体对象tipWizard.setVisible(true);/ 设置主窗体可见setVisible(false);/ 设置登录窗口不可见private String turnCharsToString(char chars) StringBuffer strBuf = new StringBuffer();for (int i = 0; i chars.length; i+) strBuf.append(charsi);return strBuf.toString().trim

34、();数据库连接代码:package com.mwq.dao;import java.sql.Connection;import java.sql.DriverManager;public class JDBC private String JDBC=jdbc:mysql:/localhost:3306/drinkhome; private String dbUserName=root; private String dbPassword=; private String jdbcName=com.mysql.jdbc.Driver; /* 获取数据库连接 */ public Connecti

35、on getCon() throws Exception Class.forName(jdbcName); Connection con=DriverManager.getConnection(JDBC, dbUserName,dbPassword); return con; /* * 关闭数据库连接 * * */ public void closeCon(Connection con) throws Exception if(con!=null) con.close(); public static void main(Stringargs) JDBC JDBC =new JDBC() ;

36、try JDBC.getCon();System.out.println(数据库连接成功); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();System.out.println(数据库连接失败); public static Connection getConnection() / TODO Auto-generated method stubreturn null;日期类代码:package com.mwq.tool;import java.util.Calendar;public class

37、 Today private static final Calendar NOW = Calendar.getInstance();private static final int YEAR = NOW.get(Calendar.YEAR);private static final int MONTH = NOW.get(Calendar.MONTH) + 1;private static final int DAY = NOW.get(Calendar.DAY_OF_MONTH);private static final int WEEK = NOW.get(Calendar.DAY_OF_

38、WEEK);private static final int HOUR = NOW.get(Calendar.HOUR_OF_DAY);private static final int MINUTE = NOW.get(Calendar.MINUTE);private static final int SECOND = NOW.get(Calendar.SECOND);/public static String getDate() return YEAR + - + MONTH + - + DAY;public static String getDateOfNum() String y = Y

39、EAR + ;String m = MONTH + ;String d = DAY + ;if (MONTH 10)m = 0 + MONTH;if (DAY 10)d = 0 + DAY;return y + m + d;public static String getDateOfShow() return YEAR + 年 + MONTH + 月 + DAY + 日;public static String getDayOfWeek() String dayOfWeek = ;switch (WEEK) case 1:dayOfWeek = 星期日;break;case 2:dayOfWe

40、ek = 星期一;break;case 3:dayOfWeek = 星期二;break;case 4:dayOfWeek = 星期三;break;case 5:dayOfWeek = 星期四;break;case 6:dayOfWeek = 星期五;case 7:dayOfWeek = 星期六;break;return dayOfWeek;public static String getTime() return HOUR + : + MINUTE + : + SECOND;public static void main(String args) System.out.println(Toda

41、y.getDayOfWeek();public static int getYEAR() return YEAR;public static int getDAY() return DAY;public static int getMONTH() return MONTH;利用正则表达式验证数据合法性的方法代码:package com.mwq.tool;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Validate public static boolean execute(String rule, String content) Pattern pattern = Ppile(rule);/ 利用验证规则创建Pattern对象Matcher matcher = pattern.matcher(content);/ 利用验证内容获得Matcher对象return matcher.matches();/ 返回验证结果按钮类:package com.mwq.mwing;import java.awt.Insets;import javax.swing.JButton

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com