[Java]房屋出租系统-自己敲的才是自己的

2023-12-27 05:59
文章标签 java 系统 房屋出租

本文主要是介绍[Java]房屋出租系统-自己敲的才是自己的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

房屋出租系统

目录

房屋出租系统

1、首先我们要把要求和题目给理清楚

2、把要实现的功能分好类

(1)先把在domain就是主体的属性House写好,然后他们的Set和Get的方法,还要重写toString方法;

(2)实现房屋的列表功能

(3)添加房源的功能

(4)删除房屋的功能

自己的经验:


1、首先我们要把要求和题目给理清楚

实现基于文本界面的《房屋出租软件》 。 能够实现对房屋信息的添加、 修改和删除(用数组实现) , 并能够打印房屋明细表

2、把要实现的功能分好类

(1)先把在domain就是主体的属性House写好,然后他们的Set和Get的方法,还要重写toString方法;

package HouseRent.view;​import HouseRent.utils.Utility;​public class HouseView {int choose;//选择菜单的用户的选择boolean loop = true;​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.printf("请输入你的选择");choose = Utility.readInt();​switch (choose) {case 1://1 新 增 房 源System.out.println("新增房源");break;case 2://2 查 找 房 源System.out.println("查找房源");break;​case 3://3 删 除 房 屋System.out.println("删除房源");break;​case 4://4 修 改 房 屋 信 息System.out.println("修改房屋信息");break;​case 5://5 房 屋 列 表System.out.println("房屋列表");break;​case 6://6 退  出System.out.println("退出");loop = false;break;​}}while(loop);​}}

上面的整体的主菜单已经是整理出来

(2)实现房屋的列表功能

public void ListView(){​House[] houses = houseService.getList();System.out.println("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态(未出租/已出租)");for(int i = 0; i < houses.length; i++){if(houses[i] == null){break;}System.out.println(houses[i]);}​}

因为所有的数据全都是HouseService来提供

HouseView因为是显示界面肯定要写

(3)添加房源的功能

//记录当前房屋有多少,因为之前测试加了一套private int HouseNum = 1;private int idCounter = 1; //记录当前的id增长到哪个值public boolean add(House newHouse) {//一定要注意这里是Service层不能用来显示动系//System.out.println();if (HouseNum >= houses.length) {System.out.println("房源不能再继续添加了");return false;}houses[HouseNum++] = newHouse;newHouse.setID(++idCounter);return true;}

(4)删除房屋的功能

--------------------------------------------------------------------------------------------------------------------

//实际的删除功能public boolean del(int ID){​//应当先找到要删除的房屋信息对应的下标//老韩强调,一定要搞清楚 下标和房屋的编号不是一回事int index = -1;for(int i = 0; i < HouseNum; i++) {if(ID == houses[i].getID()) {//要删除的房屋(id),是数组下标为i的元素index = i;//就使用index记录i}}​if(index == -1) {//说明delId在数组中不存在(有点绕..)return false;}//如果找到, 这里需要小伙伴动脑筋,有点难.//老师思路分析:for(int i = index; i < HouseNum - 1; i++) {houses[i] = houses[i+1];//这里我还添加了一句把ID减了houses[i].setID(houses[i].getID()-1);}//把当有存在的房屋信息的最后一个 设置nullhouses[--HouseNum] = null;return true;}

-------------------------------------------------------------------------------------------------------------------

看了老韩在房屋出租系统写的,对比自己写的,确实有点混乱,View就不要用数据来记录东西,Service就是用来服务数据的。

重点是:删除房屋信息,不能只是把要删的那里使用删除一次(houses[i] = houses[i+1];),而是要从那个位置全部都得往前面移动,就得用到for循环。而且i < HouseNum - 1,这个条件就巧妙在当要删除的idex为3(数组下表)时候,当时的房屋是4个,就等于最后一个的直接置为NULL。

自己的经验:

所有的代码:百分之75都是我自己根据听完课写的,自己敲真的和听的完全不同,听懂和自己能够写代码完全是两回事,所以我宁愿慢慢写,明天再把后面的功能自己打一次,然后参考韩顺平老师补充改错,我感觉自己写代码已经在提升了!!!!

总结:有的时候理解了,但是自己从零到开始编写,就会发现很多问题,不是说不会编写,而是会发现比较混乱,虽然能实现。

这篇关于[Java]房屋出租系统-自己敲的才是自己的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542079

相关文章

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

Java文件与Base64之间的转化方式

《Java文件与Base64之间的转化方式》这篇文章介绍了如何使用Java将文件(如图片、视频)转换为Base64编码,以及如何将Base64编码转换回文件,通过提供具体的工具类实现,作者希望帮助读者... 目录Java文件与Base64之间的转化1、文件转Base64工具类2、Base64转文件工具类3、

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例