首页 > 编程语言 >Java房屋出租项目实现

Java房屋出租项目实现

时间:2024-03-22 16:58:05浏览次数:32  
标签:房屋信息 Java 项目 System 房屋出租 result println Utility out

项目概述

这个房屋出租管理系统主要包含三个类: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);
    }
}

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

标签:房屋信息,Java,项目,System,房屋出租,result,println,Utility,out
From: https://blog.csdn.net/m0_55877598/article/details/136945613

相关文章

  • Java - 冒泡排序
      //冒泡排序publicclassBubbleSort{ publicstaticvoidmain(String[]args){ //定义一个整型的数组 int[]array={64,34,25,12,22,11,90} bubbleSort(array); for(inti:array){ System.out.println(i+""); } } publicstaticvoidbubbl......
  • Java并发之CAS (Compare and Swap)(转载)
    CAS(CompareandSwap)比较并替换,CAS是实现乐观锁的一个重要操作。CAS是一个硬件指令,保证是原子操作。Java中通过UnSafe来实现。原子类:AtomicBoolean,AtomicInteger,AtomicLong等使用CAS实现。1.概述CAS的基本步骤:执行函数CAS(V,E,N),如果V值等于E值,则将V的值设为N。若......
  • Java知识学习13(AQS详解)(转载)
    1、AQS介绍?AQS的全称为AbstractQueuedSynchronizer,翻译过来的意思就是抽象队列同步器。这个类在java.util.concurrent.locks包下面。AQS就是一个抽象类,主要用来构建锁和同步器。publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnableSynchronizer......
  • 记录真实项目中遇到的bug--002:下载文件bug
    T02:下载文件bug1.前提条件:用户点击卡片2.预期结果:(1)下载地址正常时:用户可预览文件内容,并点击下载按钮开始下载文件(2)不可访问时:卡片置灰,提示:“尚未开放,敬请期待”3.实际结果:(1)下载地址正常时:用户可预览文件内容,并点击下载按钮开始下载文件(2)不可访问时:用户可点击卡片,弹出“此......
  • java实验室设备资产管理系统(ssm框架毕业设计)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:实验室设备资产管理系统在科学研究和教学实验中,实验室设备扮演着至关重要的角色。随着科技进步和研究需求的不断增长,实验室内的各种仪器设备变得日益复杂和昂......
  • Java抽象类和接口详解
    1.抽象类的概念和语法实现 当一个类中的信息不足以描述一个具体的对象的时候,我们可以将这个类定义为抽象类。那么我们怎么定义出一个抽象类呢?我们要采用一个关键字abstract。下面我们来看具体代码:abstractclassAnimal{publicStringname;publicintage;......
  • Win7下做一个Kubernetes的NetCore项目Demo
    建立K8s集群Demo,将一个建立好的AspNetCore项目加入到集群中。一准备工作IDEVS2017Win7下需要dockertools(打包Dockerimage)一个VM,笔者用的是VMwareWorkstationPro15(破解版)注册一个https://hub.docker.com/账户安装一个WinSCP用来windows和linux传送文件,......
  • IDEA项目路径初探
    IDEA项目路径初探:https://blog.csdn.net/qq_30591155/article/details/109046394?ops_request_misc=&request_id=&biz_id=102&utm_term=idea%20java%20%E7%89%88%E6%9C%AC%E7%9A%84%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95&utm_medium=distribute.pc_search_result.n......
  • 解决出现javax.net.ssl.SSLHandshakeException: PKIX path building failed 或 sun.se
    From: https://www.cnblogs.com/luoxiao1104/p/16671501.html当我们从网络上根据url下载文件的时候可能会出现一下异常错误信息: javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:......
  • vue3 + ts +element-plus + vue-router + scss + axios搭建项目
    本地环境:node版本:20.10.0目录一、搭建环境二、创建项目三、修改页面四、封装路由vue-router五、element-plus六、安装scss七、封装axios一、搭建环境1、安装vue脚手架npmi-g@vue/cli2、查看脚手架版本vue-V3、切换路径到需要创建项目的地方二、创建......