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();
    }
}
posted @ 2023-08-14 22:49  liudelantu  阅读(42)  评论(0)    收藏  举报