项目 - 房屋出租系统
项目需求说明
基于文本界面的《房屋出租软件》。能够实现对房屋信息的添加、修改和删除(用数组实现),并且能够打印房屋明细表。
项目功能实现
House.java
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
| package com.hspedu.houserent.domain;
public class House { private int id; private String name; private String phone; private String address; private int rent; private String state;
public House(int id, String name, String phone, String address, int rent, String state) { this.id = id; this.name = name; this.phone = phone; this.address = address; this.rent = rent; this.state = state; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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 getState() { return state; } public void setState(String state) { this.state = state; }
@Override public String toString() { return id + "\t\t" + name + "\t" + phone + "\t\t" + address + "\t" + rent + "\t" + state ; } }
|
HouseService.java
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
| package com.hspedu.houserent.service;
import com.hspedu.houserent.domain.House;
public class HouseService { private House[] houses; private int houseNums; private int idCounter; public HouseService(int size){ houses = new House[size]; }
public boolean add(House newHouse){ if(houseNums >= houses.length){ System.out.println("数组已满,不能再添加了..."); return false; } houses[houseNums++] = newHouse; newHouse.setId(++idCounter); return true; }
public boolean del(int delId){ int index = -1; for (int i = 0; i < houseNums; i++) { if(delId == houses[i].getId()){ index = i; } } if(index == -1){ return false; }
for(int i = index;i < houseNums - 1;i++){ houses[i] =houses[i + 1]; } houses[--houseNums - 1] = null; return true; }
public House findById(int findId){ for (int i = 0; i < houseNums; i++) { if(findId == houses[i].getId()){ return houses[i]; } } return null; }
public House[] list(){ return houses; } }
|
Utility,java
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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
| package com.hspedu.houserent.utils;
import java.util.*;
public class Utility { private static Scanner scanner = new Scanner(System.in);
public static char readMenuSelection() { char c; for (; ; ) { String str = readKeyBoard(1, false); c = str.charAt(0); if (c != '1' && c != '2' && c != '3' && c != '4' && c != '5') { System.out.print("选择错误,请重新输入:"); } else break; } return c; }
public static char readChar() { String str = readKeyBoard(1, false); return str.charAt(0); }
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() { 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; } }
|
HouseView.java
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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
| package com.hspedu.houserent.view;
import com.hspedu.houserent.domain.House; import com.hspedu.houserent.service.HouseService; import com.hspedu.houserent.utils.Utility;
import java.sql.SQLOutput;
public class HouseView { private boolean loop = true; private char key = ' '; private HouseService houseService = new HouseService(10);
public void listHouses(){ System.out.println("=================房屋列表================="); System.out.println("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态"); House[] houses = houseService.list(); for (int i = 0; i < houses.length; i++) { if(houses[i] == null){ break; } System.out.println(houses[i]); } System.out.println("===============房屋列表显示完毕==============="); }
public void addHouse(){ System.out.println("=================添加房屋================="); System.out.println("姓名:"); String name = Utility.readString(8); System.out.println("电话:"); String phone = Utility.readString(12); System.out.println("地址:"); String address = Utility.readString(16); System.out.println("月租:"); int rent = Utility.readInt(); System.out.println("状态:"); String state = Utility.readString(3);
House newHouse = new House(0, name, phone, address, rent, state); if(houseService.add(newHouse)){ System.out.println("=================添加房屋成功================="); } else { System.out.println("=================添加房屋失败================="); } }
public void delHouse(){ System.out.println("================删除房屋信息================"); System.out.println("请输入待删除房屋的编号(-1退出):"); int delId = Utility.readInt(); if(delId == -1){ System.out.println("===============放弃删除房屋信息==============="); return; } System.out.println("确认是否删除(Y/N):"); char choice = Utility.readConfirmSelection(); if(choice == 'Y'){ if(houseService.del(delId)){ System.out.println("===============删除房屋信息成功==============="); }else{ System.out.println("房屋编号不存在,删除失败!"); } }else{ System.out.println("===============放弃删除房屋信息==============="); } }
public void exit() { System.out.println("确认是否退出程序(Y/N):"); char choice = Utility.readConfirmSelection(); if (choice == 'Y') { loop = false; } }
public void findHouse(){ System.out.println("================查找房屋信息================"); System.out.print("请输入要查找的ID:"); int findId = Utility.readInt(); House house = houseService.findById(findId); if(house != null){ System.out.println(house); }else{ System.out.println("==============查找房屋信息ID不存在=============="); } }
public void update(){ System.out.println("================修改房屋信息================"); System.out.println("请选择待修改房屋编号(-1退出):"); int updateId = Utility.readInt(); if(updateId == -1){ System.out.println("==============已放弃修改房屋信息=============="); return; } House house = houseService.findById(updateId); if(house == null){ System.out.println("修改的房屋编号不存在,无法修改!"); }
System.out.println("姓名(" + house.getName() + "):"); String name = Utility.readString(8,""); if(!"".equals(name)){ house.setName(name); }
System.out.println("电话(" + house.getPhone() + "):"); String phone = Utility.readString(12,""); if(!"".equals(phone)){ house.setName(phone); }
System.out.println("地址(" + house.getAddress() + "):"); String address = Utility.readString(18,""); if(!"".equals(address)){ house.setAddress(address); }
System.out.println("租金(" + house.getRent() + "):"); int rent = Utility.readInt(-1); if(rent != -1){ house.setRent(rent); }
System.out.println("状态(" + house.getState() + "):"); String state = Utility.readString(3,""); if(!"".equals(state)){ house.setState(state); }
System.out.println("===============修改房屋信息成功==============="); }
public void mainMenu(){ do{ System.out.println("===============房屋出租系统菜单==============="); System.out.println("\t\t\t1 新 增 房 源"); System.out.println("\t\t\t2 查 找 房 源"); System.out.println("\t\t\t3 删 除 房 屋 信 息"); System.out.println("\t\t\t4 修 改 房 屋 信 息"); System.out.println("\t\t\t5 房 屋 列 表"); System.out.println("\t\t\t6 退 出"); System.out.println("请输入你的选择(1-6):"); key = Utility.readChar(); switch(key){ case '1': addHouse(); break; case '2': findHouse(); break; case '3': delHouse(); break; case '4': update(); break; case '5': listHouses(); break; case '6': exit(); break; } }while(loop); } }
|
HouseRentApp.java
1 2 3 4 5 6 7 8 9 10 11
| package com.hspedu.houserent;
import com.hspedu.houserent.view.HouseView;
public class HouseRentApp { public static void main(String[] args) { new HouseView().mainMenu(); System.out.println("===你退出了房屋出租系统==="); } }
|