在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Java数据库编程 → <亲测>java 酒店管理系统源码下载(含sql server 数据库)

<亲测>java 酒店管理系统源码下载(含sql server 数据库)

Java数据库编程

下载此实例
  • 开发语言:Java
  • 实例大小:9.89M
  • 下载次数:298
  • 浏览次数:1726
  • 发布时间:2018-09-09
  • 实例类别:Java数据库编程
  • 发 布 人:星火燎原
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 数据库 java 酒店管理

实例介绍

【实例简介】

数据库脚本是sql server 2008r2的,理论上sql server 2008以上的数据库均可执行

登陆密码均为 123456

【实例截图】

from clipboard


from clipboard


from clipboard


from clipboard


from clipboard


from clipboard


from clipboard








from clipboard


from clipboard

from clipboard






from clipboard

【核心代码】

package com.sunshine.主框架窗口;

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import com.sunshine.sunsdk.swing.*;		//加入公共类库
import com.sunshine.sunsdk.system.*;
import com.sunshine.sunsdk.sql.*;
import com.sunshine.主框架窗口.*;		//加入模块类库
import com.sunshine.散客开单.*;		//散客开单
import com.sunshine.团体开单.*;				//团体开单
import com.sunshine.宾客结账.*;			//宾客结帐
import com.sunshine.客房预定.*;			//预订房间
import com.sunshine.营业查询.*;            //营业查询
import com.sunshine.客户管理.*;			//客户管理
import com.sunshine.网络设置.*;			//网络设置
import com.sunshine.系统设置.*;			//系统设置
import com.sunshine.关于我们.*;			//关于我们
import com.sunshine.菜单事件窗口.*;				//下拉菜单中的功能库



public class HotelFrame 
extends JFrame 
implements ActionListener, MouseListener, Runnable {
	
	//用户名,权限
	public static String userid, puil;
	public static JLabel lbA, lbB;
	public static String clue = "    提 示 :  ";
	public static String face = "    当前操作界面 :  ";
	
	//声名与菜单相关的类
	private JMenuBar mb;
	private JMenu m1, m2, m3, m4;
	private JMenuItem mi11, mi12, mi13, mi14, mi15, mi16, mi17, mi18, mi19,
					  mi21, mi22, mi23, mi24, mi25,
			  		  mi31, mi32, mi33, mi34, mi35, mi36;
	//工具栏
	private JToolBar tb;
	private JButton bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9, btA;
	//分割面板
	private JSplitPane spaneMain, spaneLeft, spaneRight;
	//模块接口
	private JPanel panelMain, bott, jp2, jp3, jp4;
	private LeftTopPanel jp1;						//主窗口左边面板
	//功能提示
	private String toolTip[] = {
		"零散宾客入住登记                      ",
		"团体入住登记                        ",
		"关于本软件的支持信息                    ",
		"宾客退房结算                        ",
		"为宾客预订房间                       ",
		"查询营业情况                        ",
		"为酒店固定客户设置参数                   ",
		"设置系统的网络连接方式                   ",
		"设置系统参数                        ",
		"返回Windows                       "
	};
	
	//功能模块
	/*#######################################################################*/
		Individual idv = new Individual(this);	//散客开单
		Team		tm = new Team(this);		//团体开单
		CheckOut	co = new CheckOut(this);	//宾客结帐
		Engage		eg = new Engage(this);		//客房预定
		Query		qr = new Query(this);		//营业查询
		Customer	ct = new Customer(this);	//客户管理
		NetSetup	ns = new NetSetup(this);	//网络设置
		Setup 		st = new Setup(this);		//系统设置
		About		ab = new About(this);		//关于我们 
		GoOn		go = new GoOn(this);		//宾客续住
		Change		cg = new Change(this);		//更换房间
	//	Remind		rm = new Remind(this);		//电子提醒
		UniteBill	ub = new UniteBill(this);   //合并帐单
		ApartBill	ap = new ApartBill(this);   //拆分帐单
		Record		rc = new Record(this);		//系统日志
	/*#######################################################################*/
	
	
	
	//构造函数
	public HotelFrame (String us, String pu) {
		super ("阳光酒店管理系统 - ★★版");
		
		userid = us;		//获得操作员名称
		puil   = pu;		//获得操作员权限
		
		panelMain = new JPanel (new BorderLayout());		//主面板
		
		//制作菜单
		buildMenuBar ();
		//制作工具栏
		buildToolBar ();
		//制作分割面板
		buildSpaneMain ();
		//制作窗口底端信息框
		buildBott ();
		
		//加入组件到主面板
		panelMain.add ("North", tb);			//加入工具栏
		panelMain.add ("South", bott);			//加入窗口底端信息框
		panelMain.add ("Center", spaneMain);	//加入分割面板
		
		//加入菜单栏
		this.setJMenuBar (mb);
		
		//加事件监听
		addListener ();
		
		this.addWindowListener (new WindowAdapter () {
			public void windowClosing (WindowEvent we) {
				quit ();
			}//End windowClosing
		});
		
		this.setContentPane (panelMain);
		this.setBounds (2, 2, 1020, 740);
		this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
		this.setMinimumSize (new Dimension (1020, 740));	//设置窗口最小尺寸
		this.setVisible (true);
		(new Thread(this)).start();				//启动房间状态检查线程
	}
	
	//制作菜单
	private void buildMenuBar () {
		//实例菜单栏
		mb = new JMenuBar ();
		
		//实例菜单
		m1 = new JMenu ("来宾登记 (B)");
		m2 = new JMenu ("收银结算 (S)");
		m3 = new JMenu ("系统维护 (W)");
		
		//实例菜单项
		mi11 = new JMenuItem ("散客开单  (G)");
		mi12 = new JMenuItem ("团体开单  (M)");
		mi13 = new JMenuItem ("宾客续住  (Z)");
		mi14 = new JMenuItem ("更换房间  (A)");
		mi15 = new JMenuItem ("修改登记  (J)");
		mi16 = new JMenuItem ("房间状态  (Z)");
		mi17 = new JMenuItem ("预订管理  (T)");
		mi18 = new JMenuItem ("电子提醒  (L)");
		mi19 = new JMenuItem ("退出系统  (X)");
		mi21 = new JMenuItem ("宾客结帐  (J)");
		mi22 = new JMenuItem ("合并帐单  (E)");
		mi23 = new JMenuItem ("折分帐单  (F)");
		mi24 = new JMenuItem ("宾客消费明细查询");
		mi25 = new JMenuItem ("宾客退单明细查询");
		mi31 = new JMenuItem ("网络设置  (N)");
		mi32 = new JMenuItem ("系统设置  (X)");
		mi33 = new JMenuItem ("系统日志  (Z)");
		mi34 = new JMenuItem ("数据备份  (R)");
		mi35 = new JMenuItem ("软件帮助  (H)");
		mi36 = new JMenuItem ("关于我们  (A)");
		///////////////////////////////////////////
		mi16.setEnabled(false);//未开发完毕的功能
		mi18.setEnabled(false);
		mi34.setEnabled(false);
		////////////////////////////////////////////
		//组织菜单
		m1.add (mi11);			//来宾登记
		m1.add (mi12);
		m1.add (mi13);
		m1.add (mi14);
		m1.add (mi15);
		m1.add (mi16);
		m1.addSeparator();
		m1.add (mi17);
		m1.add (mi18);
		m1.addSeparator();
		m1.add (mi19);

		m2.add (mi21);			//收银结算
		m2.add (mi22);
		m2.add (mi23);
		//m2.addSeparator();
		//m2.add (mi24);			//宾客消费明细
		//m2.add (mi25);
		m3.add (mi31);			//系统维护
		m3.add (mi32);
		m3.add (mi33);
		m3.addSeparator();
		m3.add (mi34);
		m3.addSeparator();
		m3.add (mi35);
		m3.add (mi36);
		
		mb.add (m1);			//加入菜单栏
		mb.add (m2);
		mb.add (m3);
	}
	
	//制作工具栏
	private void buildToolBar () {
		tb = new JToolBar();
		//制作按键
		bt1 = new TJButton ("pic/ToolBar/m01.gif", "  散客开单  ", "零散宾客入住登记", true);
		bt2 = new TJButton ("pic/ToolBar/m02.gif", "  团体开单  ", "团体入住登记", true);
		bt3 = new TJButton ("pic/ToolBar/m03.gif", "  关于我们  ", "软件信息", true);
		bt4 = new TJButton ("pic/ToolBar/m04.gif", "  宾客结帐  ", "宾客退房结算", true);
		bt5 = new TJButton ("pic/ToolBar/m05.gif", "  客房预订  ", "为宾客预定房间", true);
		bt6 = new TJButton ("pic/ToolBar/m06.gif", "  营业查询  ", "查询营业情况", true);
		bt7 = new TJButton ("pic/ToolBar/m07.gif", "  客户管理  ", "为酒店固定客户设置", true);
		bt8 = new TJButton ("pic/ToolBar/m08.gif", "  网络设置  ", "设置连接方式", true);
		bt9 = new TJButton ("pic/ToolBar/m09.gif", "  系统设置  ", "设置系统参数", true);
		btA = new TJButton ("pic/ToolBar/m10.gif", "  退出系统  ", "返回Windows", true);
		
		//把按键加入工具栏
		tb.addSeparator ();
		tb.add (bt1);
		tb.add (bt2);
		tb.addSeparator ();
		tb.add (bt4);
		tb.add (bt5);
		tb.add (bt6);
		tb.addSeparator ();
		tb.add (bt7);
		tb.add (bt8);
		tb.add (bt9);
		tb.addSeparator ();
		tb.add (bt3);
		tb.addSeparator ();
		tb.add (btA);
		
		//设置工具栏不可浮动
		tb.setFloatable(false);
	}
	
	//制作主面板
	private void buildSpaneMain () {
		
		jp1 = new LeftTopPanel ();		//这四个面板为功能接口//////////////
		jp2 = new LeftBottPanel();		//左下面板		快速通道
		jp3 = new RightTopPanel();		///////////////////////////////
		jp4 = new RightBottPanel();		//右下面板		消费信息表
		
		//声名分割面板
		spaneLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, jp1, jp2);
		spaneRight = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, jp3, jp4);
		spaneMain  = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, spaneLeft, spaneRight);
		
		//设置面板最小尺寸
		jp1.setMinimumSize(new Dimension (157, 450));
		jp2.setMinimumSize(new Dimension (157, 94));
		jp3.setMinimumSize(new Dimension (875, 300));
		jp4.setMinimumSize(new Dimension (875, 94));
		spaneRight.setMinimumSize(new Dimension (875, 565));
		
		//设置分割条是否有伸缩键
		spaneMain.setOneTouchExpandable (true);
		spaneRight.setOneTouchExpandable(true);
		
		//设置各面板的初起尺寸
		spaneMain.setDividerLocation (160);
		spaneLeft.setDividerLocation (450);
		spaneRight.setDividerLocation(450);
		
		//设置分隔条宽度
		spaneMain.setDividerSize (10);
		spaneLeft.setDividerSize (23);
		spaneRight.setDividerSize(23);
	}
	
	//制作bott栏
	private void buildBott () {
		JLabel lb1, lb2;
		
		lb1 = new JLabel("    阳 光 酒 店 管 理 系 统    ");
		lb2 = new JLabel("    当前操作员 :  "   userid   "                  ");
		lbA = new JLabel(clue   "请选择功能项 ...                       ");
		lbB	= new JLabel(face   "阳 光 酒 店 管 理 系 统 -    ★★ 版         ");
		
		//加外框线
		lbA.setBorder(new LineBorder(new Color(87, 87, 47)));
		lbB.setBorder(new LineBorder(new Color(87, 87, 47)));
		lb1.setBorder(new LineBorder(new Color(87, 87, 47)));
		lb2.setBorder(new LineBorder(new Color(87, 87, 47)));
		
		bott = new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 2));
		
		bott.add (lb1);
		bott.add (lbA);
		bott.add (lbB);
		bott.add (lb2);
	}
	
	//加事件监听
	private void addListener () {
		mi11.addActionListener (this);		//来宾登记
		mi12.addActionListener (this);
		mi13.addActionListener (this);
		mi14.addActionListener (this);
		mi15.addActionListener (this);
		mi16.addActionListener (this);
		mi17.addActionListener (this);
		mi18.addActionListener (this);
		mi19.addActionListener (this);
		mi21.addActionListener (this);		//收银结算
		mi22.addActionListener (this);
		mi23.addActionListener (this);
		mi24.addActionListener (this);
		mi25.addActionListener (this);
		mi31.addActionListener (this);		//系统维护
		mi32.addActionListener (this);
		mi33.addActionListener (this);
		mi34.addActionListener (this);
		mi35.addActionListener (this);
		mi36.addActionListener (this);
		bt1.addActionListener (this);		//按键加动作监听
		bt2.addActionListener (this);
		bt3.addActionListener (this);
		bt4.addActionListener (this);
		bt5.addActionListener (this);
		bt6.addActionListener (this);
		bt7.addActionListener (this);
		bt8.addActionListener (this);
		bt9.addActionListener (this);
		btA.addActionListener (this);
		bt1.addMouseListener (this);		//按键加鼠标监听
		bt2.addMouseListener (this);
		bt3.addMouseListener (this);
		bt4.addMouseListener (this);
		bt5.addMouseListener (this);
		bt6.addMouseListener (this);
		bt7.addMouseListener (this);
		bt8.addMouseListener (this);
		bt9.addMouseListener (this);
		btA.addMouseListener (this);
	}
	
	/**=======================================================================**
	 *		[## private void quit () {} ]: 				系统退出
	 *			参数   :无
	 *			返回值 :无
	 *			修饰符 :private
	 *			功能   :关闭系统函数,仅类内使用
	 **=======================================================================**
	 */
	private void quit () {
		int flag = 0;
		String msg = "您 现 在 要 关 闭 系 统 吗 ?";
		flag = JOptionPane.showConfirmDialog (null, msg, "提示", JOptionPane.YES_NO_OPTION);
		if(flag == JOptionPane.YES_OPTION) {
			Journal.writeJournalInfo(userid, "退出本系统", Journal.TYPE_LG);//记录操作日志
			this.setVisible (false);
			System.exit (0);
		}//End if(flag == JOptionPane.YES_OPTION)
		return;
	}
	
	//刷新左房间信息栏数据
	private void initLeftData() {
		jp1.title1.setText("");		//刷房间信息
		for (int i = 0; i < 8; i  ) {
			jp1.lt[i].setText("");
	    }//Endfor
		jp1.initRoomstate();					//刷新房间总状态
	}
	
	//传数据给散客开单窗口
	private boolean initIDV() {
		try {
			//从房间信息表里获得当前房间的状态和房间类型编号
			ResultSet rs = sunsql.executeQuery("select state,r_type_id from roominfo "  
			"where delmark=0 and id='"   LeftTopPanel.title1.getText()   "'");
			
			if(!rs.next()) {		//如果无结果集,提示用户刷新房间数据
				if(LeftTopPanel.title1.getText().length() == 0) {
					JOptionPane.showMessageDialog(null,"请选定房间后,再为宾客开设房间", 
					"提示", JOptionPane.INFORMATION_MESSAGE);
				}else {
					JOptionPane.showMessageDialog(null, "[ "   LeftTopPanel.title1.getText()   
					" ] 房间信息已更改,请刷新房间信息,再为宾客开设房间", "提示", JOptionPane.INFORMATION_MESSAGE);
				}
				return false;
			}else {
				if(!rs.getString(1).equals("可供")) {		//只有状态是可供房间,才能为宾客开设
					JOptionPane.showMessageDialog(null, "请选择空房间,再为宾客开设房间", 
					"提示", JOptionPane.INFORMATION_MESSAGE);
					return false;
				}//Endif
				
				//传房间号到开单窗口
				Individual.lbA.setText(LeftTopPanel.title1.getText());
				//传房间类型到开单窗口
				Individual.lbB.setText(LeftTopPanel.title0.getText().substring(0, 
									   LeftTopPanel.title0.getText().length()-2));
				//传房间单价到开单窗口
				Individual.lbC.setText(LeftTopPanel.lt[1].getText());
				
				//房间类型编号
				String clRoom = rs.getString(2);
				//获得此类型房间是否可以开设钟点房
				rs = sunsql.executeQuery("select cl_room from roomtype where "  
				"delmark=0 and id='"   clRoom   "'");
				rs.next();
				if(rs.getString(1).equals("N")) {	//不能开设,则开单窗口的钟点选项不可用
					Individual.chk1.setSelected(false);		//取消选中状态
					Individual.chk1.setEnabled(false);		//设置不可用
				}else {
					Individual.chk1.setEnabled(true);		//可用
				}//Endif
				
				//传宾客类型数据给开单窗口
				rs = sunsql.executeQuery("select distinct c_type from customertype where "  
				"delmark = 0 and pk!=0");
				int ct = sunsql.recCount(rs);
				String cType[] = new String[ct];
				for (int i = 0; i < ct; i  ) {
					rs.next();
					cType[i] = rs.getString(1);
			    }//Endfor
			    Individual.cb2.removeAllItems();
				for (int i = 0; i < ct; i  ) {
					Individual.cb2.addItem(cType[i]);
			    }//Endfor
			    Individual.cb2.setSelectedItem("普通宾客");
				
				//初始化开单房间表---------临时表
				sunsql.executeUpdate("delete from roomnum");		//清空临时表
				sunsql.executeUpdate("insert into roomnum(roomid) values('"   
				LeftTopPanel.title1.getText()   "')");				//加入当前房间信息
				//初始化开单窗口的开单房间表
				sunsql.initDTM(Individual.dtm2,"select roomid 房间编号 from roomnum");
				
				//初始化追加房间表---------当前类型的除当前房间的所有可供房间
				sunsql.executeUpdate("update roominfo set indimark=0");	//刷新所有房间的开单状态
				sunsql.executeUpdate("update roominfo set indimark=1 where id='"   
				LeftTopPanel.title1.getText()   "'");				//设置当前房间为开单状态
				//初始化开单窗口的可供房间表
				sunsql.initDTM(Individual.dtm1,"select a.id 房间编号1 from roominfo "  
				"a,(select id from roomtype where r_type='"   Individual.lbB.getText()   
				"') b where a.delmark=0 and a.indimark=0 and a.state='可供' and a.r_type_id=b.id");
				
			}//Endif
	    }
	    catch (Exception ex) {
	    	System.out.println ("HotelFrame.initIDV(): false");
	    }//End try
	    return true;
	}
	
	//传数据给团体开单窗口
	private boolean initTeam() {
		try {
			//初始化开单房间表---------临时表
			sunsql.executeUpdate("delete from roomnums");		//清空临时表
			//初始化开单窗口的开单房间表
			Team.initDTM2();
			
			//初始化追加房间表---------当前类型的除当前房间的所有可供房间
			sunsql.executeUpdate("update roominfo set indimark=0");	//刷新所有房间的开单状态
			
			//传房间类型数据给团体开单窗口
			ResultSet rs = sunsql.executeQuery("select r_type from roomtype where delmark=0");
			int ct = sunsql.recCount(rs);
			String type[] = new String[ct];
			
			//传宾客房型数据给团体开单窗口
			for (int i = 0; i < ct; i  ) {
				rs.next();
				type[i] = rs.getString(1);
			}//Endfor
			Team.cb.removeAllItems();
			for (int i = 0; i < ct; i  ) {
				Team.cb.addItem(type[i]);
			}//Endfor
			
			//传宾客类型数据给团体开单窗口
			rs = sunsql.executeQuery("select distinct c_type from customertype where "  
			"delmark = 0 and pk!=0");
			ct = sunsql.recCount(rs);
			for (int i = 0; i < ct; i  ) {
				rs.next();
				type[i] = rs.getString(1);
			}//Endfor
			Team.cb2.removeAllItems();
			for (int i = 0; i < ct; i  ) {
				Team.cb2.addItem(type[i]);
			}//Endfor
			Team.cb2.setSelectedItem("普通宾客");
	    }
	    catch (Exception ex) {
	    	System.out.println ("HotelFrame.initTeam(): false");
	    }//Endtry
	    return true;
	}
	
	//传数据给结算窗口
	private boolean initCKO() {
		try {
			ResultSet rs = sunsql.executeQuery("select state,r_type_id from roominfo "  
			"where delmark=0 and id='"   LeftTopPanel.title1.getText()   "'");
			
			if(!rs.next()) {		//如果无结果集,提示用户刷新房间数据
				if(LeftTopPanel.title1.getText().length() == 0) {
					JOptionPane.showMessageDialog(null,"请选定宾客入住的房间后,再为宾客结算费用", 
					"提示", JOptionPane.INFORMATION_MESSAGE);
				}else {
					JOptionPane.showMessageDialog(null, "[ "   LeftTopPanel.title1.getText()   
					" ] 房间信息已更改,请刷新房间信息,再为宾客开设房间", "提示", JOptionPane.INFORMATION_MESSAGE);
				}//Endif
				return false;
			}else {
				//只有状态是占用或钟点房间,才能为宾客结算
				if(!rs.getString(1).equals("占用") && !rs.getString(1).equals("钟点")) {
					JOptionPane.showMessageDialog(null, "请选择宾客正在消费的房间进行结算费用操作", 
					"提示", JOptionPane.INFORMATION_MESSAGE);
					return false;
				}//Endif
				
				//传结算单号给结算窗口
				co.lbA.setText(suntools.getNumber(suntools.Number_JS));
				//传结算房间给结算窗口
				co.lbB.setText(jp1.title1.getText());
				//传结算宾客名称给结算窗口
				co.lbC.setText(jp1.lt[0].getText());
				//传押金给结算窗口
				co.lbF.setText(jp1.lt[6].getText());
				
				//清空结算中间表
				sunsql.executeUpdate("delete from checkout_temp");
				
				//获得主房间号
				rs = sunsql.executeQuery("select main_room,in_no from livein where "  
				"delmark=0 and r_no='"   co.lbB.getText()   "' and statemark='正在消费'");
				
				if(!rs.next()) {
					JOptionPane.showMessageDialog(null, "操作失败,请检查网络情况", 
					"提示", JOptionPane.INFORMATION_MESSAGE);
					return false;
				}//Endif
				
				String mainRoom = rs.getString(1);		//取出主房间号
				co.inNo = rs.getString(2);				//传入住单号为结算窗口
				
				//获得主房间状态,看是普通住宿还是钟点房
				rs = sunsql.executeQuery("select state from roominfo where delmark=0 and id='"   mainRoom   "'"); 
				rs.next();
				int mrState = 0;    //主房间状态 0:普通入住  1:钟点房
				if(rs.getString(1).equals("钟点")) {
					mrState = 1;
				}//Endif
				
				DefaultTableModel ckoDTM = new DefaultTableModel();		//主房间下的所有房间信息
				sunsql.initDTM(ckoDTM, "select pk,r_no,r_type_id,c_type_id,in_time,foregift from "  
				"livein where delmark=0 and main_room='"   mainRoom   "'");
				
				double total = 0;		//消费总金额
				double shsh  = 0;		//实收金额
				double youh  = 0;		//优惠金额
				for (int i = 0; i < ckoDTM.getRowCount(); i  ) {
					//取出当前房间的标准单价
					rs = sunsql.executeQuery("select price,cl_price from roomtype where delmark=0 and id='"   
					ckoDTM.getValueAt(i, 2)   "'");
					rs.next();
					double rprice = 0;
					double days	  = 0;
					if(mrState == 0) {
						rprice = rs.getDouble(1);		//普通入住单价
						//获得入住天数
						days   = suntools.getConsumeFactor(ckoDTM.getValueAt(i, 4)   "", Journal.getNowDTime());
					}else {
						rprice = rs.getDouble(2);		//钟点房单价
						days   = suntools.getClockFactor(ckoDTM.getValueAt(i, 4)   "", Journal.getNowDTime());
					}//Endif
					
					double rd 	  = rprice * days;		//当前房间的消费总金额
					total 		  = total   rd;			//累加总消费
					rs = sunsql.executeQuery("select discount from customertype where delmark=0 and "  
					"id='"   ckoDTM.getValueAt(i, 3)   "' and dis_attr='"   ckoDTM.getValueAt(i, 2)   "'");
					rs.next();
					//取出宾客享受的折扣
					int dst 	  = rs.getInt(1);
					double ddr    = rd * dst/10;			//当前房间的打折后价格
					shsh		  = shsh   ddr;				//应收金额累加
					youh		  = youh   rd - ddr;		//优惠金额累加
					
					//向结算中间表加入数据
					sunsql.executeUpdate("insert into checkout_temp(pk,r_type_id,r_no,price,"  
					"discount,dis_price,account,money,in_time) values("   ckoDTM.getValueAt(i, 0)  
					",'"   ckoDTM.getValueAt(i, 2)   "','"   ckoDTM.getValueAt(i, 1)   "',"   
					rprice   ","   dst   ","   rprice * dst / 10   ","   days   ","   ddr   ",'"   
					ckoDTM.getValueAt(i, 4)   "')");
			    }
				
				//传消费金额给结算窗口
				co.lbD.setText(total   "");
				//传应收金额给结算窗口
				co.lbE.setText(shsh   "");
				//传实收金额
				co.tf1.setText(shsh   "");
				//传优惠金额给结算窗口
				co.lbG.setText(youh   "");
				//传找零金额给结算窗口
				co.lbH.setText(Double.parseDouble(co.lbF.getText()) - shsh   "");
				
				//刷新结算中间表数据
				co.initDTM();
				
				co.tf2.requestFocus(true);		//给宾客支付焦点
				
			}//Endif
	    }
	    catch (Exception ex) {
	    	JOptionPane.showMessageDialog(null, "操作失败,请检查网络情况", 
			"提示", JOptionPane.INFORMATION_MESSAGE);
	    	ex.printStackTrace();
	    	System.out.println ("HotelFrame.initCKO(): false");
	    	return false;
	    }//End try
		return true;
	}
	
	/**=======================================================================**
	 *			ActionListener 监听
	 **=======================================================================**
	 */
	public void actionPerformed (ActionEvent ae) {
		Object o = ae.getSource ();
		if(o == bt1 || o ==mi11) {//============================================
			lbB.setText(face   "散 客 开 单                          -");
			if(initIDV()) {								//传数据给散客开单窗口
				idv.show();								//散客开单
				initLeftData();							//刷新左房间信息栏数据
			}//Endif
		}else if(o == bt2 || o == mi12) {//=====================================
			lbB.setText(face   "团 体 开 单                          -");
			if(initTeam()) {							//传宾客类型数据给团体开单窗口
				tm.show();								//团体开单
				initLeftData();							//刷新左房间信息栏数据
			}//Endif
		}else if(o == bt3 || o == mi36) {//=====================================
			lbB.setText(face   "关 于 我 们                          -");
			ab.show();									//关于我们
		}else if(o == bt4 || o == mi21) {//=====================================
			lbB.setText(face   "宾 客 结 帐                          -");
			if(initCKO()) {								//传数据给结算窗口
				co.show();								//宾客结帐
				initLeftData();							//刷新左房间信息栏数据
			}//Endif
		}else if(o == bt5 || o == mi17) {//=====================================
			lbB.setText(face   "客 房 预 订                          -");
			eg.show();									//客房预订
			initLeftData();								//刷新左房间信息栏数据
		}else if(o == bt6) {//==================================================
			lbB.setText(face   "营 业 查 询                          -");
			qr.show();									//营业查询
		}else if(o == bt7) {//==================================================
			if(puil.equals("普通操作员")) {				//客户管理
				String msg = "对不起,您的权限不能进入 [ 客户管理 ] 页面,请用管理员ID登录 ...";
				JOptionPane.showMessageDialog(null, msg, "提示", JOptionPane.INFORMATION_MESSAGE);
				return;
			}
			lbB.setText(face   "客 户 管 理                          -");
			ct.show();
		}else if(o == bt8 || o == mi31) {//=====================================
			if(puil.equals("普通操作员")) {				//网络设置
				String msg = "对不起,您的权限不能进入 [ 网络设置 ] 页面,请用管理员ID登录 ...";
				JOptionPane.showMessageDialog(null, msg, "提示", JOptionPane.INFORMATION_MESSAGE);
				return;
			}
			lbB.setText(face   "网 络 设 置                          -");
			ns.show();
		}else if(o == bt9 || o == mi32) {//=====================================
			if(puil.equals("普通操作员")) {				//系统设置
				String msg = "对不起,您的权限不能进入 [ 网络设置 ] 页面,请用管理员ID登录 ...";
				JOptionPane.showMessageDialog(null, msg, "提示", JOptionPane.INFORMATION_MESSAGE);
				return;
			}
			lbB.setText(face   "系 统 设 置                          -");
			st.buildDTM12("");							//刷新房间信息表的房间状态
			st.show();
			initLeftData();								//刷新左房间信息栏数据
		}else if(o == btA || o == mi19) {//=====================================
			quit ();									//退出系统
		}else if(o == mi13) {//=================================================
			lbB.setText(face   "宾 客 续 住                          -");
			go.show();									//宾客续住
		}else if(o == mi14) {//=================================================
			lbB.setText(face   "更 换 房 间                          -");
			cg.show();									//更换房间
		}else if(o == mi15) {//=================================================
			lbB.setText(face   "修 改 登 记                          -");
			idv.show();						//修改登记-------还要修改
		}else if(o == mi16) {//=================================================
			//房间状态
		}else if(o == mi18) {//=================================================
			//电子提醒
			
		}else if(o == mi22) {//=================================================
			lbB.setText(face   "合 并 帐 单                          -");
			ub.show();									//合并帐单
		}else if(o == mi23) {//=================================================
			lbB.setText(face   "折 分 帐 单                          -");
			ap.show();									//折分帐单
		}else if(o == mi33) {//=================================================
			lbB.setText(face   "系 统 日 志                          -");
			rc.initDTM();								//刷新日志列表
			rc.show();									//系统日志
		}else if(o == mi34) {//=================================================
			//数据备份
		}else if(o == mi35) {//=================================================
			//软件帮助
		}
		lbB.setText(face   "阳 光 酒 店 管 理 系 统 -    ★★ 版         ");
	}
	
	
	/**=======================================================================**
	 *			MouseListener 监听
	 **=======================================================================**
	 */
	public void mouseClicked (MouseEvent me) {
	}

	public void mousePressed (MouseEvent me) {
	}

	public void mouseReleased(MouseEvent me) {
	}

	public void mouseEntered (MouseEvent me) {		//鼠标移进提示
		Object o = me.getSource ();
		if(o == bt1) {
			lbA.setText (clue   toolTip[0]);
		}else if(o == bt2) {
			lbA.setText (clue   toolTip[1]);
		}else if(o == bt3) {
			lbA.setText (clue   toolTip[2]);
		}else if(o == bt4) {
			lbA.setText (clue   toolTip[3]);
		}else if(o == bt5) {
			lbA.setText (clue   toolTip[4]);
		}else if(o == bt6) {
			lbA.setText (clue   toolTip[5]);
		}else if(o == bt7) {
			lbA.setText (clue   toolTip[6]);
		}else if(o == bt8) {
			lbA.setText (clue   toolTip[7]);
		}else if(o == bt9) {
			lbA.setText (clue   toolTip[8]);
		}else if(o == btA) {
			lbA.setText (clue   toolTip[9]);
		}
	}

	public void mouseExited (MouseEvent me) {
		lbA.setText (clue   "请选择功能项 ...                       ");
	}
	
	
	/**=======================================================================**
	 *		[## public void run() {} ]: 
	 *			参数   :无
	 *			返回值 :无
	 *			修饰符 :public
	 *			功能   :结算后检查房间状态线程
	 **=======================================================================**
	 */
	public void run() {
		try {
			Statement ste1 = null;
			Connection conn1 = null;
			if(sunini.getIniKey ("Default_Link").equals ("1")) {		//JDBC连接方式
				String user1 = sunini.getIniKey ("UserID");
				String pwd1  = sunini.getIniKey ("Password");
				String ip1   = sunini.getIniKey ("IP");
				String acc1  = sunini.getIniKey ("Access");
				String dbf1  = sunini.getIniKey ("DBFname");
				String url1  = "jdbc:microsoft:sqlserver://"   ip1   ":"   acc1   ";"   "databasename="   dbf1;
				//注册驱动
				DriverManager.registerDriver (new com.microsoft.jdbc.sqlserver.SQLServerDriver());
				//获得一个连接
				conn1 = DriverManager.getConnection (url1, user1, pwd1);
			}
			else {
//				//注册驱动										//JDBCODBC连接方式
//				DriverManager.registerDriver (new sun.jdbc.odbc.JdbcOdbcDriver());
//				//获得一个连接
//				conn1 = DriverManager.getConnection ("jdbc:odbc:"   sunini.getIniKey("LinkName"));
			}
			
			//建立高级载体
			ste1 = conn1.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
			while( true ) {
				ste1.executeUpdate("update roominfo set statetime=statetime-1 where statetime>0");
				ste1.executeUpdate("update roominfo set state='可供' where statetime=0 and state='脏房'");
				Thread.sleep(30000);
			}//End while
	    }
	    catch (Exception ex) {
	    	JOptionPane.showMessageDialog (null, "数据库连接失败...", "错误", JOptionPane.ERROR_MESSAGE);
	    	System.exit(0);
	    	//ex.printStackTrace();
	    }//End try
	}
/*
	public static void main (String sd[]) {
		sunswing.setWindowStyle (sunini.getIniKey ("Sys_style").charAt (0));
		new HotelFrame ("gujun", "管理员");
	}*/
}

实例下载地址

<亲测>java 酒店管理系统源码下载(含sql server 数据库)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警