酒店客房预订管理系统简单实现

发布于:2023-07-04 ⋅ 阅读:(75) ⋅ 点赞:(0)

酒店客房预订管理系统

纯java实现,通过IO流对本地文件进行读取操作

  • 需求分析
  1. 入住客人信息管理
    管理所有入住客人的基本信息,包括开房登记、退房结账、查询、客人延期续费、按姓名详细查询等
  2. 客人预订信息管理
    管理所有预订客户的基本信息,包括预订房间、取消预订、查询全部等
  3. 房间信息管理
    管理所有房间的基本信息,包括房间信息的添加、删除、排序、修改、查询等,包括查询时的排序,房间状态跟随开房登记、退房结账、预订房间、取消预订等操作实时变化。
  4. 历史客人管理
    管理所有在本店入住和预订的客户,包括所有的开房登记、预订房间,用于查询历史客人列表使用
  5. 注册登录信息管理
    管理所有用户和管理员的基本信息,包括用户的注册、登录,管理员的注册、登录等
  6. 文件信息管理
    管理所有要存储的信息,包括入住客人、预订客人、历史客人、房间信息的存储读取,如没有文件自动创建文件,也可以对指定文件进行读取等
  • 主要内容
    要求使用Java语言开发一个简单的酒店客房预订管理系统。
    数据:
    住店管理:客人姓名、证件号码、房号、入住时期、预计离开日期、结账离开日期、应付金额
    客人信息:姓名、性别、证件类型、证件号码、联系电话
    房间信息:房号、房类型、价格、押金、房状态
    预订房间:客人姓名、性别、房类型、房号、价格、证件类型、证件号码、联系电话、入住日期、预计离开日期

    基本功能:

  1. 房间信息管理:增加,删除,查询,排序
  2. 客人信息管理:开房,退房,预订,退订,查询,续费
  3. 注册登录:客人注册、登录,管理员注册、登录
  4. 文件管理:所有信息的存储、读取,按文件路径读取
  • 思路
    使用了集合LinkedList与动态数组ArrayList,客人信息和预定的客人信息与房间信息有嵌套关系,客人信息与预定的客人信息的对象的引用变量定义为房间信息的属性,存到集合LinkedList中,使用对象流存储读取,登陆注册分别用ArrayList存储便于登录时账号密码校对。
  • 运行截图
    在这里插入图片描述在这里插入图片描述
  • 主要代码
	public boolean addroom(Room room) throws IOException {
		boolean a=false;
		if(!chachong(room)) {
		rooms.add(room);
		Io.writer(rooms);
		a=true;
	
		}
		return a;
	}
	
	public boolean deleteroom(int num) throws IOException {
		boolean a=false;
		Iterator<Room> iterator = rooms.iterator();
		while(iterator.hasNext()) {
			if(iterator.next().num==num) {
				iterator.remove();
				Io.writer(rooms);
				a=true;
				break;
			}
		}
		return a;
	}
	
	public boolean chaxunroom() {
		boolean a=false;
		if(rooms.size()!=0) {
			Iterator<Room> iterator = rooms.iterator();
			Collections.sort(rooms);
			while(iterator.hasNext()) {
				System.out.println(iterator.next().toString());
			}
			a=true;
		}
		return a;
	}
	
	public boolean chachong(Room room) {
		boolean a=false;
		Iterator<Room> iterator = rooms.iterator();
		while(iterator.hasNext()) {
			if(room.num==iterator.next().num) {
				a=true;
				break;
			}
		}
		return a;
	}
	
	public boolean kaifang(Guest guest,int num) throws IOException {
		boolean a=true;
		if(rooms.size()!=0) {
		for (Room room : rooms) {
			if(num==room.num) {
				if(room.state.equals("空闲")) {
				room.setState("售出");
				System.out.println("您所选择的房间价格为"+room.price);
				room.guest=guest;
				guests.add(guest);
				Io.writerlishi(guests);
				Io.writer(rooms);
				break;
				}else {
					a=false;
				}
			}
		}
		}else {
			a=false;
		}
		return a;
	}
	public boolean chaxunguest(String name){
		boolean a=false;
		for(Room room:rooms) {
			if(room.guest!=null&&room.guest.name!=null) {
				a=true;
				System.out.println(room.guest.toString());
				break;
			}
		}
		return a;
	}
	
	public boolean chaxunallguest() {
		boolean a = true;
		if (rooms.size() != 0) {
			for(Room room:rooms) {
				if(room.guest!=null&&room.guest.name!=null) {
					a=true;
					System.out.println(room.guest.toString());
				}
			}
		} else {
			a = false;
		}
		return a;
	}
	
	public boolean yuding(Guest yuding,int num) throws IOException {
		boolean a=true;
		if(rooms.size()!=0) {
		for (Room room : rooms) {
			if(num==room.num) {
				if(room.state.equals("空闲")) {
				room.setState("预订");
				System.out.println("您所选择的房间押金为"+room.deposit);
				room.yuding=yuding;
				guests.add(yuding);
				Io.writerlishi(guests);
				Io.writer(rooms);
				break;
				}else {
					a=false;
				}
			}
		}
		}else {
			a=false;
		}
		return a;
	}
	
	public boolean quxiao(String id) throws IOException {
		boolean a = false;
		for (Room room : rooms) {
				if (room.yuding!=null&&room.yuding.name!=null&&room.yuding.id.equals(id)) {
					a = true;
					room.yuding=null;
					room.setState("空闲");
					Io.writer(rooms);
					break;
				}
		}
		return a;
	}
	
	public boolean chaxunallyuding() {
		boolean a = true;
		if(rooms.size()!=0) {
		for(Room room:rooms) {
			if(room.yuding!=null&&room.yuding.name!=null) {
				a=true;
				System.out.println(room.yuding.toString());
			}
		} 
		}else {
			a = false;
		}
		return a;
	}
	
	public boolean xiugai(String name,String fdate) throws IOException {
		boolean a=false;
		for(Room room:rooms) {
			if(room.guest!=null&&room.guest.name!=null&&room.guest.name.equals(name)) {
				a=true;
				room.guest.fdate=fdate;
				Io.writer(rooms);
				break;
			}
		}
		return a;
	}
	
	@Override
	public int compareTo(Room room) {
		if(this.num!=room.num) {
			return this.num-room.num;
		}else {
			return this.price-room.price;
		}
	}
	
	public void read() throws ClassNotFoundException, IOException {
		rooms=Io.reader();
		guests=Io.readerlishi();
	}
	
	public boolean chaxunlishi() {
		boolean a = true;
		Iterator<Guest> iterator = guests.iterator();
		if(guests.size()!=0) {
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		}else {
			a = false;
		}
		return a;
	}
  • IO流对文件进行读取
public static void writer(List<Room> rooms) throws IOException{
		File file=new File("D:\\1.txt");
		if(!file.getParentFile().exists()) {
			file.getParentFile().mkdir();
		}
		if(!file.exists()) {
			file.createNewFile();
		}
		FileOutputStream out = new FileOutputStream(file);
		ObjectOutputStream outputstream = new ObjectOutputStream(out);
		outputstream.writeObject(rooms);
		outputstream.close();
		}
public static List<Room> reader() throws IOException, ClassNotFoundException {
		File file=new File("D:\\1.txt");
		if(!file.getParentFile().exists()) {
			file.getParentFile().mkdir();
		}
		if(!file.exists()) {
			file.createNewFile();
		}
		LinkedList<Room> rooms = new LinkedList<Room>();
		LinkedList<Room> a = new LinkedList<Room>();
		FileInputStream in = new FileInputStream(file);
		if(file.length()!=0) {
		ObjectInputStream inputstream = new ObjectInputStream(in);
		rooms = (LinkedList<Room>)inputstream.readObject();
		a=rooms;
		inputstream.close();
		}
		return a;
	}

点击查看:酒店客房预订管理系统源代码


网站公告

今日签到

点亮在社区的每一天
去签到