收藏 分销(赏)

java大酒店标准管理系统专业课程设计.doc

上传人:精*** 文档编号:2864357 上传时间:2024-06-07 格式:DOC 页数:47 大小:363.04KB
下载 相关 举报
java大酒店标准管理系统专业课程设计.doc_第1页
第1页 / 共47页
java大酒店标准管理系统专业课程设计.doc_第2页
第2页 / 共47页
java大酒店标准管理系统专业课程设计.doc_第3页
第3页 / 共47页
java大酒店标准管理系统专业课程设计.doc_第4页
第4页 / 共47页
java大酒店标准管理系统专业课程设计.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、 Java语言程序设计课程设计题 目 酒店管理系统 学 院 南湖学院 专 业 计算机科学和技术 班 级 计科N112 学 号 45209133 学生姓名 吴威宗 指导老师 李永刚 编写日期 /6/26 目录一、需求分析5二、系统运行环境5三、功效需求描述5四、模块结构图6五、数据库设计651数据库分析652数据库概念设计653 数据库逻辑结构设计7六、程序模块设计8七、总结36一、需求分析伴随餐饮行业快速发展,现有人工管理方法已经不能呢个满足管理者需求,广大餐饮业经营者已经意识到使用计算机应用软件关键性,决定在餐饮企业经营管理上引入计算机应用软件管理系统。 酒店管理系统大致功效:1 开台点餐2

2、 菜品管理3 自动结账4 后台菜系菜品管理5 日月年结账报表6 用户设置依据需求分析,本系统采取语言:(1)本系统采取Java语言,Java是现在使用最为广泛计算机语言之一。它含有简单,面向对象,稳定,和平台无关等特点。说她简单,并不是说这门语言很干瘪,而是一个清楚更轻易了解方法实现程序。面向对象是基于对象变成更符合人思维方法,使大家更轻易编写程序。(2)本系统还采取SQL语言,SQL Server含有很多显著优点:易用性、适合分布组织可伸缩性、用于决议支持数据仓库功效、和很多其它服务器软件紧密关联集成性、良好性价比等。(3) 本系统有效利用Java和SQL优点。二、系统运行环境 操作系统为W

3、indows 7、windows XP或windows 使用集成开发工具Eclipse 数据库采取SQL Server,项目运行环境为JDK 7。三、功效需求描述 1开台签单工作区功效:关键功效有开台、点菜、加菜、签单、查看开台信息和签单信息。 2自动结账工作区功效:一个功效是自动计算目前选中餐台消费金额;另一个功效是在结账时自动计算找零金额。 3结账报表工作区功效:日结帐报表,月结账报表,年结账报表。4后天管理工作区功效:管理添加信息四、模块结构图模块结构图五、数据库设计51数据库分析 酒店管理系统需求包含开台点菜功效、智能化获取菜品功效、自动结账功效、营业额报表功效等。在这些功效总关键包含

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

5、.awt.GridBagConstraints;import java.awt.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

6、.ImageIcon;import javax.swing.JButton;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 p

7、rivate JPasswordField passwordField;/ 密码框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( 小组:吴威宗 周志远);/ 设置窗

8、口标题setResizable(false);/ 设置窗口不能够改变大小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

9、GridBagLayout();/ 设置面板布局管理器为网格组布局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

10、_5.gridy = 0;panel.add(topLabel, 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, gr

11、idBagConstraints_3);final JLabel 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);/ 创建并设置用户名下拉菜

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

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

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

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

16、ue(false);/ 设置面板背景为透明buttonPanel.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;/ 设置其

17、占两列gridBagConstraints_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.s

18、etContentAreaFilled(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);/ 取适当鼠标经

19、过登录按钮时显示图片URLlandButton.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(n

20、ew LandButtonActionListener();/ 为登录按钮添加事件监听器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(lan

21、d_reset.png);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 ImageIc

22、on(resetPressedUrl);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().

23、getResource(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

24、(exitPressedUrl);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.ad

25、dItem(userNameV.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 FocusListene

26、r public 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

27、 public void 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 act

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

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

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

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

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

33、er) / 登录成功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.toStri

34、ng().trim();数据库连接代码: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=123456; private String jdbcName=com.mysql.jdbc.Driver; /* 获取数据库连接 */

35、public Connection 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

36、 =new JDBC() ; 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.Calend

37、ar;public class 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(C

38、alendar.DAY_OF_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

39、() String y = YEAR + ;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

40、;case 2:dayOfWeek = 星期一;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.o

41、ut.println(Today.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;impo

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服