Java房屋出租项目实现

本文详细描述了一个基于面向对象的房屋出租管理系统,涉及House类、HouseService类和HouseView类,介绍了如何实现添加、查找、删除和修改房屋信息,以及用户界面与业务逻辑的分离设计。
摘要由CSDN通过智能技术生成

项目概述

这个房屋出租管理系统主要包含三个类:House类、HouseService类和HouseView类和Utility类。该项目采用了面向对象的设计思想,将房屋信息的表示、业务逻辑和用户界面分别封装在不同的类中,提高了代码的可维护性和扩展性。

House类

House类用于表示房屋信息,包含了房屋的编号、月租、房主姓名、电话、地址以及状态等属性,并提供了对这些属性的访问和设置方法。

HouseService类

HouseService类是系统的业务逻辑层,其中定义了对房屋信息进行操作的方法,包括添加房屋、查找房屋、删除房屋和修改房屋信息等功能。

HouseView类

HouseView类是系统的用户界面层,负责与用户进行交互,接受用户的输入,并调用HouseService类中的方法来实现相应的功能。

Utility类

该类提供了部分方便快捷的功能

实现功能
  1. 添加房屋信息:用户可以输入房主姓名、电话、地址、月租和状态等信息,系统会自动分配一个唯一的房屋编号。

  2. 查找房屋信息:用户可以通过输入房屋编号来查找对应的房屋信息。

  3. 删除房屋信息:用户可以选择删除指定编号的房屋信息,系统会进行确认操作以避免误删。

  4. 修改房屋信息:用户可以选择修改指定编号的房屋信息,包括房主姓名、电话、地址、月租和状态等。

  5. 显示房屋列表:用户可以查看系统中所有房屋的信息列表代码实现

代码实现

1.界面类

import com.basic.study.realization.modifyhome.domain.House;
import com.basic.study.realization.modifyhome.service.HouseService;
import com.basic.study.realization.modifyhome.utils.Utility;

/**
 * 1.显示界面
 * 2.接受用户输入
 * 调用HouseService的功能
 */
public class HouseView {
    private boolean loop = true;
    private char key = ' ';
    private HouseService houseService = new HouseService(100);

    public void addHouse() {//添加房屋
        System.out.println("===============添加房屋===============");
        System.out.print("姓名: (长度 < 10) ");
        String name = Utility.readString(10);
        System.out.print("电话: ");
        String phone = Utility.readString(11);
        System.out.print("地址: ");
        String address = Utility.readString(20);
        System.out.print("租金: ");
        double rent = Utility.readInt();
        System.out.print("状态(未出租/已出租): ");
        String state = Utility.readString(3);
        House house = new House(0, rent, name, phone, address, state);
        boolean result = houseService.add(house);
        if (result) {
            System.out.println("===============添加完成===============");
        } else {
            System.out.println("===============添加失败===============");
        }
    }

    public void listHouse() {//房屋信息列表
        System.out.println("===============房屋列表===============");
        System.out.println("编号\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]);
        }
    }

    public void findHouse() {//查找房屋
        System.out.println("===============查找房屋===============");
        System.out.print("请输入你要查找的id: ");
        int findId = Utility.readInt();
        House result = houseService.find(findId);
        if (result != null) {
            System.out.println(result);
            System.out.println("===============查找成功===============");
        } else {
            System.out.println("===============没有相应的房屋信息===============");
        }
    }

    public void deleteHouse() {//删除房屋
        System.out.println("===============删除房屋===============");
        System.out.print("请选择删除房屋编号(-1退出): ");
        int findId = Utility.readInt();
        if (findId == -1) {
            System.out.println("===============放弃删除房屋===============");
            return;
        }
        System.out.println("请确认是否删除房屋(Y/N):");
        char choose = Utility.readConfirmSelection();
        if (choose == 'Y') {
            if (houseService.del(findId)) {
                System.out.println("===============删除房屋成功===============");
            } else {
                System.out.println("===============房屋信息不存在===============");
            }
        } else {
            System.out.println("===============放弃删除房屋===============");
        }
    }

    public void modifyHouse() {//修改房屋
        System.out.println("===============修改房屋===============");
        System.out.print("请输入修改房屋编号(-1退出): ");
        int findId = Utility.readInt();
        if (findId == -1) {
            System.out.println("===============放弃删除房屋===============");
            return;
        }
        House result = houseService.modify(findId);
        if (result != null) {
            System.out.println("姓名(" + result.getName() + "):");
            result.setName(Utility.readString(10));
            System.out.println("电话(" + result.getPhone() + "):");
            result.setPhone(Utility.readString(11));
            System.out.println("地址(" + result.getAddress() + "):");
            result.setAddress(Utility.readString(20));
            System.out.println("租金(" + result.getRent() + "):");
            result.setRent(Utility.readInt());
            System.out.println("状态(" + result.getState() + "):");
            result.setState(Utility.readString(3));
            System.out.println("===============删除房屋成功===============");
        } else {
            System.out.println("===============房屋信息不存在===============");
        }
    }

    public void exit() {//退出
        char choose = Utility.readConfirmSelection();
        if (choose == 'Y') {
            System.out.println("退出程序!");
            loop = false;
        }
    }

    public void mainMenu() {//程序运行调用该方法即可实现
        do {
            System.out.println("===============房屋出租系统===============");
            System.out.println("\t1 新 增 房 源\n\t2 查 找 房 屋\n\t3 删 除 房 屋\n\t4 修 改 房 屋 信 息" +
                    "\n\t5 房 屋 列 表\n\t6 退      出");
            System.out.println("请输入你的选择:");
            key = Utility.readMenuSelection();
            switch (key) {
                case '1':
                    addHouse();
                    break;
                case '2':
                    findHouse();
                    break;
                case '3':
                    deleteHouse();
                    break;
                case '4':
                    modifyHouse();
                    break;
                case '5':
                    listHouse();
                    break;
                case '6':
                    exit();
                    break;
            }
        } while (loop);
    }
}

剩余代码可在文章相应链接中获取,仅供参考

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值