java_房屋出租系统
1 框架
graph LR;
service业务层;
utils常用工具;
RentAPP入口 --> 主菜单;
主菜单 --> 房屋列表界面 --调用--> list方法;
主菜单 --> 新增界面 --调用--> add方法;
主菜单 --> 删除界面 --调用--> del方法;
主菜单 --> 修改界面 --调用--> mod方法;
主菜单 --> 查找界面 --调用--> sel方法;
service业务层 --> list方法("返回列表功能");
service业务层 --> add方法("新增功能");
service业务层 --> del方法("删除功能");
service业务层 --> mod方法("修改功能");
service业务层 --> sel方法("查找功能");
service业务层 --创建--> domain对象;
domain对象 --提供--> service业务层;
2.对象类 ( House )
package house.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;
}
// get and set
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; }
// toString 方便输出对象的信息
@Override
public String toString() {
return id + "\t\t" + name +
"\t" + phone + "\t\t" + address +
"\t" + rent + "\t\t" + state;
}
}
3.功能类 ( HouseService )
package house.service;
import house.domain.House;
public class HouseService {
private House[] houses;
private int houseNumbers = 1;
private int idCount = 1;
// 构造器:将对象初始化
public HouseService (int size){
houses = new House[size];
houses[0] = new House(1, "haha", "111", "beijing", 200, "未出租");
}
// 查找房源
public House sel(int selID){
for (int i = 0; i < houseNumbers; i++) {
if(selID == houses[i].getId()){
return houses[i];
}
}
return null;
}
// 删除房源
public boolean del(int delID){
int index = -1;
for (int i = 0; i < houseNumbers; i++) {
if(delID == houses[i].getId()){
index = i; // 记下此房源所在数组的位置
}
}
if(index == -1){
System.out.println("del退出");
return false;
}
//删除:用数组后一个 覆盖 前一个
// 然后将后一个置为null, 房屋个数再减1
for (int i = index; i < houseNumbers-1; i++) {
houses[i] = houses[i+1];
}
houses[--houseNumbers] = null;
return true;
}
// 新增房源
public boolean add(House newHouse){
if (houseNumbers == houses.length) {
System.out.println("数组已满");
}
houses[houseNumbers++] = newHouse;
newHouse.setId(++idCount); // ID由程序分配
return true;
}
// 房屋列表
public House[] list(){
return houses;
}
}
4.界面类 ( View )
package house.view;
import house.domain.House;
import house.service.HouseService;
import house.utils.Utility;
import java.util.Scanner;
public class View {
String key = " ";
boolean loop = true;
Scanner scanner = new Scanner(System.in);
private HouseService houseService = new HouseService(10);
char choice;
// 修改房源
public void updHouse(){
System.out.println("===========update houses==========");
System.out.println("please ID(-1 out): ");
int updID = Utility.readInt();
House house = houseService.sel(updID);
if(house == null){
System.out.println("ID not found");
}
System.out.print("name(" + house.getName() + "): ");
String name = Utility.readString(8, "");
if(!"".equals(name)){
house.setName(name);
}
System.out.print("phone(" + house.getPhone() + "): ");
String phone = Utility.readString(8, "");
if(!"".equals(phone)){
house.setPhone(phone);
}
System.out.print("address(" + house.getAddress() + "): ");
String address = Utility.readString(8, "");
if(!"".equals(address)){
house.setAddress(address);
}
System.out.print("rent(" + house.getRent() + "): ");
int rent = Utility.readInt(-1);
if(rent != -1){
house.setRent(rent);
}
System.out.print("stats(" + house.getState() + "): ");
String stats = Utility.readString(8, "");
if(!"".equals(stats)){
house.setState(stats);
}
}
// 查找房源
public void selHouse(){
System.out.println("========select houses========");
System.out.print("please ID(-1 out): ");
int selID = Utility.readInt();
House house = houseService.sel(selID);
if(house != null){
System.out.println(house);
}else {
System.out.println("ID not found");
}
}
// 退出系统
public void exit(){
char choice = Utility.readConfirmSelection();
if (choice == 'Y'){
loop = false;
}
}
// 删除房源
public void delHouse(){
System.out.println("=========删除房源===========");
System.out.print("选择要删除的房源ID (-1退出): ");
int delID = Utility.readInt();
if(delID == -1){
System.out.println("退出");
return;
}
char choice = Utility.readConfirmSelection();
if(choice == 'Y'){
if(houseService.del(delID)){
System.out.println("删除成功");
}else{
System.out.println("ID不存在");
}
}else{
System.out.println("放弃删除");
}
}
// 新增房源
public void addHouse(){
System.out.println("=========新增房源=============");
System.out.print("房主: ");
String name = Utility.readString(12);
System.out.print("电话: ");
String phone = Utility.readString(12);
System.out.print("地址: ");
String address = Utility.readString(16);
System.out.print("月租: ");
int rent = Utility.readInt(10);
System.out.print("状态: ");
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 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 menuView(){
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.print("请输入(1-6): ");
key = scanner.next();
switch (key) {
case "1":
addHouse();
break;
case "2":
selHouse();
break;
case "3":
delHouse();
break;
case "4":
updHouse();
break;
case "5":
listHouses();
break;
case "6":
exit();
break;
default:
System.out.println("输入有误,请重新输入");
}
}while(loop);
}
}
5.入口
package house;
import house.domain.House;
import house.view.View;
public class RentApp {
public static void main(String[] args) {
new View().menuView();
}
}

浙公网安备 33010602011771号