其他分享
首页 > 其他分享> > 房屋出租系统练习

房屋出租系统练习

作者:互联网

房屋出租系统练习

主要功能如下

  1. 添加房屋信息
  2. 查找房屋信息
  3. 删除房屋信息
  4. 修改房屋信息
  5. 列出所有房屋信息
  6. 退 出

具体实现

分为四个大类

HouseRentApp.java

是程序的入口

HouseView.java
  1. 显示界面
  2. 接受用户输入
  3. 调用HouseService完成对房屋信息的各种操作
HouseService.java
  1. 响应HouseView的调用
  2. 完成对房屋信息的各种操作
House.java

一个House对象表示一个房屋信息

工具类 Utility.java

代码实现如下

House.java
package com.gqz.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;
    }
    //方便输出对象信息,实现toString

    @Override
    public String toString() {
        return  id +
                "\t\t" + name +
                "\t\t" + phone +
                "\t" + address +
                "\t" + rent +
                "\t" + state;
    }
}

HouseView.java
package com.gqz.houserent.view;

import com.gqz.houserent.domain.House;
import com.gqz.houserent.service.HouseService;
import com.gqz.houserent.utils.Utility;

public class HouseView {
    //控制显示菜单
    private boolean loop = true;
    //接受用户输入
    private char key = ' ';
    private HouseService houseService = new HouseService(10);
    private int delid;

    //查找
    public void search() {
        System.out.println("========查找房屋信息========");
        System.out.print("请输入你要查找的id:");
        int searchId = Utility.readInt();
        House house = houseService.searchInfo(searchId);
        if (house != null) {
            System.out.println("========查找到的信息如下========");
            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;
        }
        //根据得到的updateId查找对象
        House house = houseService.searchInfo(updateId);
        if (house == null) {
            System.out.println("编号不存在");
            return;
        }
        System.out.print("姓名(" + house.getName() + "):");
        String name = Utility.readString(8,"");
        if (!"".equals(name)){
            house.setName(name);
        }
        System.out.print("电话(" + house.getPhone() + "):");
        String phone = Utility.readString(12,"");
        if (!"".equals(phone)){
            house.setPhone(phone);
        }
        System.out.print("地址(" + house.getAddress() + "):");
        String address = Utility.readString(18,"");
        if (!"".equals(address)){
            house.setAddress(address);
        }
        System.out.print("租金(" + house.getRent() + "):");
        int rent = Utility.readInt(-1);
        if (rent != -1){
            house.setRent(rent);
        }
        System.out.print("状态(" + house.getState() + "):");
        String state = Utility.readString(3,"");
        if (!"".equals(state)){
            house.setState(state);
        }
        System.out.println("========修改成功========");
    }

    //退出确认
    public void exit() {
        char c = Utility.readConfirmSelection();
        if (c == 'Y') {
            System.out.println("退出成功");
            loop = false;
        } else {

        }
    }

    //编写delHouse
    public void delHouse() {
        System.out.println("========删除房屋信息========");
        System.out.print("请选择删除房屋编号(-1退出):");
        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("房屋编号不存在,删除失败");
            }
        } else {
            System.out.println("你放弃了删除操作");
            return;
        }
    }

    //编写addHouse,接受输入,创建House对象
    public void addHouse() {
        System.out.println("========添加房屋========");
        System.out.print("姓名:");
        String name = Utility.readString(10);
        System.out.print("电话:");
        String phone = Utility.readString(12);
        System.out.print("地址:");
        String address = Utility.readString(16);
        System.out.print("月租:");
        int rent = Utility.readInt();
        System.out.print("状态:");
        String state = Utility.readString(3);
        //创建一个新的House对象
        House newHouse = new House(0, name, phone, address, rent, state);
        if (houseService.add(newHouse)) {
            System.out.println("========添加房屋成功========");
        } else {
            System.out.println("========添加房屋失败========");
        }
    }

    //编写listHouses显示房屋列表
    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) {
                continue;
            }
            System.out.println(houses[i]);
        }
    }

    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.print("请输入你的选择:");
            key = Utility.readChar();
            switch (key) {
                case '1':
//                    System.out.println("新增");
                    addHouse();
                    break;
                case '2':
//                    System.out.println("查找");
                    search();
                    break;
                case '3':
//                    System.out.println("删除");
                    delHouse();
                    break;
                case '4':
//                    System.out.println("修改");
                    Update();
                    break;
                case '5':
//                    System.out.println("列表");
                    listHouses();
                    break;
                case '6':
//                    System.out.println("退出");
                    exit();
                    break;
            }
        } while (loop);
    }
}

HouseService.java
package com.gqz.houserent.service;

import com.gqz.houserent.domain.House;

/**
 * HouseService. java<=>类[业务层]
 * // 定义House[] ,保存House对象
 * 1.响应HouseView的调用
 * 2.完成对房屋信息的各种操作(增删改查c [create]r[read]u[update]d[delete])
 */

public class HouseService {
    private House[] houses;
    private int housenumber = 1;//当前有多少个房屋
    private int idCounter = 1;//记录当前的id增加到哪个值

    //构造器初始化
    public HouseService(int size) {
        houses = new House[size];
        houses[0] = new House(1, "jack", "12345",
                "临沂市", 1500, "未出租");
    }

    //查找,根据id查找房屋信息
    public House searchInfo(int searchId) {
        for (int i = 0; i < housenumber; i++) {
            if (searchId == houses[i].getId()){
                return houses[i];
            }
        }
        return null;
    }

    //del方法,删除房屋信息
    public boolean del(int delId) {
        int index = -1;
        for (int i = 0; i < housenumber; i++) {
            if (delId == houses[i].getId()) {
                index = i;
            }
        }
        if (index == -1) {//说明delid在数组中不存在
            return false;
        }
        for (int i = index; i < housenumber - 1; i++) {
//            houses[i].setId(houses[i].getId() - 1);
            houses[i] = houses[i + 1];
        }
        houses[--housenumber] = null;
        return true;
    }

    //add方法,添加房屋信息
    public boolean add(House newHouse) {
        //判断是否还可以继续添加
        if (housenumber == houses.length) {
            System.out.println("数组已满不能再添加");
            return false;
        }
        //将newHouse加入
        houses[housenumber++] = newHouse;
        newHouse.setId(++idCounter);
        return true;
    }

    //list方法,返回房租列表
    public House[] list() {
        return houses;
    }
}

HouseRentApp.java
package com.gqz.houserent;

import com.gqz.houserent.view.HouseView;

public class HouseRentApp {
    public static void main(String[] args) {
        //程序入口
        new HouseView().mainMenu();
        System.out.println("你退出了房租出租系统");
    }
}

具体实现如下

28241ed78bf6c0340d80484d082a7476.png28241ed78bf6c0340d80484d082a7476.png
17557479747ca5cff4293b6abb032739.png17557479747ca5cff4293b6abb032739.png
de2bce43ce0447fd0eb1e5d0ac5f5bfa.pngde2bce43ce0447fd0eb1e5d0ac5f5bfa.png
9023ebb841d15386243013287da84013.png9023ebb841d15386243013287da84013.png
6605f2edcda05e17a2ec6003790da11e.png6605f2edcda05e17a2ec6003790da11e.png
7097ab6773becf71db6cee016a105443.png7097ab6773becf71db6cee016a105443.png

标签:String,int,练习,系统,System,房屋出租,println,public,out
来源: https://www.cnblogs.com/qzguo/p/16482989.html