JAVA酒店管理系统

这篇博客详细介绍了使用JAVA语言开发酒店管理系统的全过程,包括E-R图设计、数据库搭建、功能模块的实现,如客房管理、顾客及团体登记、退房、查询等功能。重点讲述了连接数据库、设计主控制函数、处理用户输入以及与数据库交互的关键代码和难点,如时间获取、状态更新等。
摘要由CSDN通过智能技术生成

 

目录

E-R图 

数据库搭建

功能模块

代码部分


E-R图 

 数据库搭建

功能模块

1.首先要通过 JAVA 代码连接数据库,通过 jdbc 插件
2.设计主菜单、子菜单,里面内容是管理酒店的各种操作,我会设置相应的功能模块完成操作。
3.要使这个系统能够持续运行且可以选择相应的功能模块,需要设计一个主控制函数,这个函数通过一个 while 循环持续运行,操作者输入 1、2、3。。。来选择相应的功能实现。
难点:如果操作者需要从子菜单返回到主菜单,需要编写一个能使操作者输入数字就能返回的功能,我们可以设置一个 flag 变量,每次循环时刷新为 1
while( true)
{
flag = 1;
子菜单在 flag=1 的时候才能运行,在 switch 语句里面,如果操作者输入 4,令 flag=0,
while(flag == 1)
{
        menu3();//客房管理菜单
        System. out .println("\t\t请输入选项:");
        x = scan.nextInt();
        switch(x)
{
        case 1:b.increase_room(); break;//增加客房
        case 2:b.decrease_room(); break;//减少客房
        case 3:flag = 0; break;//返回
        case 4:b.change_roomprice(); break;//修改房价
        case 5:b.change_roomtype(); break;//修改房型
}
}
那么这个子菜单循环就结束了,就可以直接返回到主菜单的大循环里。
4.顾客登记模块,在这个模块里,我们要输入顾客的姓名、身份证号、电话、性别、订单号、房间号,然后把这些数据通过 sql 的 insert value 语句插入到数据库中,然后还需要生成订单,会继续输入入住天数、房间类型、订房数量,然后插入数据库中。
难点:入住时间设置为当前操作的时间
String sql3 = "select CONVERT(varchar, getdate(), 120 ) 当前时间";
rs=st.executeQuery(sql3);
while(rs.next())
{
time = rs.getString("当前时间");
}
通过 sql 语句获得当前时间,然后使 time 变量等于当前时间插入订单表的入住时间中。
5.团体登记的功能,团体登记需要输入团体名、团体号、团体电话、团体人数、
订单号然后插入到团体登记表中,然后通过输入的团体人数决定登记顾客的人数,然后循环顾客登记的模块,将团体中的成员录入顾客登记表中,最后调用生成订单模块生成订单。
难点:
String sql2 = "update 房间信息 set 是否入住 = '是' where 房间号 = '"+roomnum1+"'";
顾客登记后意味着房间已入住,所以房间信息表中是否入住这一属性也要相应的更改,通过这条 sql 语句即可实现
6.设计客房管理,客房管理有多项内容,我们创建了一个子菜单,里面有查询可用房间模块,增减客房、更改房价、更改房型。
7.可用房间模块通过 sql 语句查询是否入住属性为“否”的所有房间信息
rs=st.executeQuery("select * from 房间信息 where 是否入住 = '否' ");
while (rs.next())
{
System. out .println("房间号: "+rs.getString("房间号") + " 房间类型: " +
rs.getString("房间类型")
+ " 房间价格: " + rs.getString("房间价格"));
}
通过 while 循环 rs.next()来遍历表中所有内容打印出来。
8.增加客房模块,首先要输入增加数量,然后把增加的操作放到 for 循环里,循环增加数量次,输入增加的房型,房价,新的房间号然后插入房间信息表中。
9.减少客房模块,只需要输入需删除的房间号,然后用 sql delete 语句删除即可。
10.更改房价模块,输入要更改的房型,然后输入修改后的房价,然后用 sql update 语句更新房间即可。
11.更改房间类型模块,输入要更改的房间号,然后输入修改后的房型,然后用 sql update 语句更新即可。
12.设置登录模块
int login(String id,String psw)
实现管理员登录的操作,只有管理员才能进入客房管理和设置模块,登录模块要用到操作员信息表找到操作员 ID 和密码,与输入的 ID 和密码进行比较,看是否相等,相等则可进入相应界面。
13.设计设置,设置也有子菜单,包括修改密码,添删用户,实现比较简单,通过 sql 语句的增删改即可。
14.退房功能,分为顾客退房和团体退房
顾客退房:顾客只需输入身份证号即可完成退房,然后通过查询语句找到身份证号所对应的房间号,取得房间号,再把对应房间号的是否入住改为“否”,然后通过等值连接订单和顾客登记表,通过身份证号找到订单总金额,打印输出。
团体退房:与顾客退房相似,区别在于需输入团体号和退房数量,根据退房数量循环改是否入住属性,然后查询语句得到总金额打印输出。
15.查询界面设计
有查询所有顾客、所有团体、所有订单、根据姓氏查询顾客、根据身份证号查询顾客、根据团体号查询顾客、根据顾客电话查询顾客的房间类型,这些所有功能模块都只需相应的 sql 语句,查询到结果,打印输出。

代码部分

import java.sql.*;
import java.util.Scanner;
import java.util.Vector;
public class databaseConnect {
	private String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=宾馆客房管理系统";
	private  String userName="sa";
	private String userPwd="qzt1220796416";
	private  Connection ct=null;
	private ResultSet rs=null;
	private Statement st;
	static int number = 0;
	
	public void mainmenu()//主菜单
	{
		System.out.println("\n\n");
		System.out.println("\t\t* * * * * * 酒店管理系统 * * * * * *\n");
		System.out.println("\t\t*           1.:顾客登记                  *\n");
		System.out.println("\t\t*           2.:团体登记                  *\n");
		System.out.println("\t\t*           3.:客房管理                  *\n");
		System.out.println("\t\t*           4.:设置                      *\n");
		System.out.println("\t\t*           5.:查询                      *\n");
		System.out.println("\t\t*           6.:退房                      *\n");
		System.out.println("\t\t* * * * * * * * * * * * * * * * *  * * *\n\n");
	}
	public void menu5()//查询
	{
		System.out.println("\n\n");
		System.out.println("\t\t* * * * * * 酒店管理系统 * * * * * *\n");
		System.out.println("\t\t*           1.:所有顾客                  *\n");
		System.out.println("\t\t*           2.:所有团体                  *\n");
		System.out.println("\t\t*           3.:所有订单                  *\n");
		System.out.println("\t\t*           4.:返回                      *\n");
		System.out.println("\t\t*           5.:根据姓氏查询顾客          *\n");
		System.out.println("\t\t*           6.:根据身份证号查询顾客      *\n");
		System.out.println("\t\t*           7.:根据团体号查询团体信息    *\n");
		System.out.println("\t\t*     8.:根据顾客电话查询顾客的房间类型  *\n");
		System.out.println("\t\t*           9.:可用房间                  *\n");
		System.out.println("\t\t* * * * * * * * * * * * * * * * *  * * *\n\n");
	}
	public void menu6()//退房
	{
		S
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值