房屋出租系统项目
一、项目需求
- 项目界面–主菜单
- 房屋列表
- 新增房源(姓名、电话、地址、月租、状态)
- 查找房源
- 删除房源
- 修改房源
- 退出系统
二、项目框架图(分层模式)
HouseRentApp.java
main(){//程序入口
//创建HouseView对象
//调用该对象显示主菜单}
工具类
完成获取用户各种输入
HouseView.java <=> 类 [ 界面 ]
1.显示界面
2.接收用户输入
3.调用HouseService完成对房屋信息的各种操作
HouseService.java <=> 类 [ 业务层 ]
1.响应HouseView的调用
2.完成对房屋信息的各种操作(crud)
House.java <=> 类 [ domain / model 数据层]
1.一个House对象表示一个房屋信息
三、代码部分
1 2 3 4 5 6 7 8 9
| import View.HouseView; public class HouseRentApp { public static void main(String[] args) { new HouseView().start(); System.out.println("=============你已退出系统============="); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| package Utils; import java.util.*;
public class Utility { private static Scanner scanner = new Scanner(System.in);
public static char readChar(char defaultValue) { String str = readKeyBoard(1, true); return (str.length() == 0) ? defaultValue : str.charAt(0); }
public static int readInt() { int n; for (; ; ) { String str = readKeyBoard(10, false); try { n = Integer.parseInt(str); break; } catch (NumberFormatException e) { System.out.print("数字输入错误,请重新输入:"); } } return n; }
public static int readInt(int defaultValue) { int n; for (; ; ) { String str = readKeyBoard(10, true); if (str.equals("")) { return defaultValue; }
try { n = Integer.parseInt(str); break; } catch (NumberFormatException e) { System.out.print("数字输入错误,请重新输入:"); } } return n; }
public static String readString(int limit) { return readKeyBoard(limit, false); }
public static String readString(int limit, String defaultValue) { String str = readKeyBoard(limit, true); return str.equals("") ? defaultValue : str; }
public static char readConfirmSelection() { System.out.println("请输入你的选择(Y/N): 请小心选择"); char c; for (; ; ) { String str = readKeyBoard(1, false).toUpperCase(); c = str.charAt(0); if (c == 'Y' || c == 'N') { break; } else { System.out.print("选择错误,请重新输入:"); } } return c; }
private static String readKeyBoard(int limit, boolean blankReturn) {
String line = "";
while (scanner.hasNextLine()) { line = scanner.nextLine();
if (line.length() == 0) { if (blankReturn) return line; else continue; }
if (line.length() < 1 || line.length() > limit) { System.out.print("输入长度(不能大于" + limit + ")错误,请重新输入:"); continue; } break; }
return line; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| package View;
import Service.HouseService; import java.util.*;
public class HouseView { private final HouseService houseService = new HouseService(); private final Scanner scanner = new Scanner(System.in);
public void start() { boolean running = true; while (running) { menu(); running = choice(); } }
public void menu() { System.out.println("--------------房屋出租系统---------------"); System.out.println("- 1新增房屋 -"); System.out.println("- 2查找房屋 -"); System.out.println("- 3删除房屋 -"); System.out.println("- 4修改信息 -"); System.out.println("- 5房屋列表 -"); System.out.println("- 6退 出 -"); System.out.println("-请输入你的选择:"); }
public boolean choice() { switch (scanner.next()) { case "1": houseService.addHouse(); break; case "2": houseService.findHouse(); break; case "3": houseService.deleteHouse(); break; case "4": houseService.changeHouse(); break; case "5": houseService.listHouse(); break; case "6": return houseService.exit(); default: System.out.println("无效操作,重新输入:"); } return true; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| package Service;
import Domain.House; import Utils.Utility; import java.util.*;
public class HouseService { private final Scanner scanner = new Scanner(System.in); private final ArrayList<House> houses = new ArrayList<>();
public void addHouse() { System.out.println("----------------添加房屋-----------------"); System.out.println("输入id:"); String id = scanner.next(); System.out.println("输入姓名:"); String name = Utility.readString(8); System.out.println("输入电话:"); String phone = Utility.readString(11); System.out.println("输入地址:"); String address = scanner.next(); System.out.println("输入月租:"); int pay = Utility.readInt(); System.out.println("输入状态(未出租/已出租):"); String status = Utility.readString(3); House house = new House(id, name, phone, address, pay, status); houses.add(house); System.out.println("----------------添加完成-----------------"); }
public void findHouse() { System.out.println("----------------查找房屋-----------------"); System.out.println("输入你要查找的房屋id:"); findID(scanner.next()); }
public void deleteHouse() { System.out.println("----------------删除房屋-----------------"); System.out.println("输入你要删除的房屋id:"); int ID = findID(scanner.next()); if (ID == -1) return; System.out.println("确认是否删除:"); if (isOK()) houses.remove(ID); }
public void changeHouse() { System.out.println("----------------修改信息-----------------"); System.out.println("输入你要修改的房屋id:(-1退出)"); String input=scanner.next(); if("-1".equals(input)) return; int ID = findID(input); if (ID == -1) return; System.out.println("确认是否修改:"); if (isOK()) { House house = houses.get(ID); System.out.println("修改id:" + "( " + house.getId() + " )"); house.setId(scanner.next()); System.out.println("修改姓名:" + "( " + house.getName() + " )"); house.setName(Utility.readString(8)); System.out.println("修改电话:" + "( " + house.getPhone() + " )"); house.setPhone(Utility.readString(11)); System.out.println("修改地址:" + "( " + house.getAddress() + " )"); house.setAddress(scanner.next()); System.out.println("修改月租:" + "( " + house.getRent() + " )"); house.setRent(Utility.readInt()); System.out.println("修改状态(未出租/已出租):" + "( " + house.getStatus() + " )"); house.setStatus(Utility.readString(3)); System.out.println("----------------修改完成-----------------"); } }
public void listHouse() { System.out.println("----------------房屋列表-----------------"); if (houses.isEmpty()) { System.out.println("当前列表为空,请先添加"); } for (House house : houses) { System.out.println(house); } }
public boolean exit() { System.out.println("----------------退 出-----------------"); System.out.println("确认退出?"); return !isOK(); }
public int findID(String ID) { for (int i = 0; i < houses.size(); i++) { House house = houses.get(i); if (ID.equals(house.getId())) { System.out.println(house); return i; } } System.out.println("当前ID不存在!"); return -1; }
public boolean isOK() { while (true) { System.out.println("输入你的选择y/n"); String s = scanner.next(); if ("y".equals(s)) return true; else if ("n".equals(s)) return false; else System.out.println("输入不合规范"); } } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| package Domain;
public class House { private String id; private String name; private String phone; private String address; private int rent; private String status;
public House() { }
public House(String id, String name, String phone, String address, int pay, String status) { this.id = id; this.name = name; this.phone = phone; this.address = address; this.rent = pay; this.status = status; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getPhone() { return phone; }
public void setPhone(String phone) { this.phone = phone; }
public String getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
public int getRent() { return rent; }
public void setRent(int rent) { this.rent = rent; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
public String getId() { return id; }
public void setId(String id) { this.id = id; }
@Override public String toString() { return id + "\t"+ name + "\t"+ phone + "\t"+ address + "\t"+ rent + "\t"+ status ; } }
|