前言
本项目是根据【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili 课程进行的。项目的主要目的是巩固一下以前学习的 Java基础 知识。
需求
实现基于文本界面的房屋出租系统,能够实现对房屋信息的添加,修改和删除(用数组实现),并且能够打印房屋明细表。
界面
- 主菜单
- 新 增 房 源
- 查 找 房 屋
- 删 除 房 屋
- 修 改 房 屋 信 息
- 房 屋 列 表
- 退 出
- 新增房源
- 姓名:
- 电话:
- 地址:
- 月租:
- 状态(未出租/已出租):
- 查找房源
- 请输入查找的id:
- 有id 姓名 电话 地址 租金 状态
- 删除房源
- 选择要删除的房屋编号
- 再次确认
- 修改房源
- 选择房屋编号
- 列出修改的信息(不修改的地方直接回车)
- 退出系统
- 再次确认
- 输出:你退出了程序~~~
项目设计-程序框架
上图每一个类对应一个包,便于管理。虽然最初设计时只有一个类或者一个文件,但是随着项目后续的完善,所对应的相关类有很多,因此这里的每个类对应一个包。上述图片用ioDraw绘制
工具类
实际开发中,公司都会提供对应的工具类和开发库,可以提高开发效率。因此在日常学习中要能够看懂别人写的代码,并正确调用
这里的 utility
类是课程提供的, 可在(16条消息) 韩顺平Utility工具类(java房屋出租项目)_m0_52228020的博客-CSDN博客复制到自己的项目里.
House类
House类的属性有 编号, 房主, 电话, 地址, 月租, 状态. House的对象表示一个房屋信息
将各属性写入House类, 并且设立相应的构造器与 setter 与 getter 方法, 为了方便输出对象信息, 还应该实现toString 方法的重写
@Override
public String toString() {
return id +
"\t" + name +
"\t" + phone +
"\t" + address +
"\t" + rent +
"\t" + state;
}
HouseView类 与 HouseService类
HouseView类用于显示,HouseService类用于给HouseView类传输相应的数据,如HouseView中有listHouse()方法,而HouseService中的list()方法用于给listHouse()方法传送房屋列表的信息. 个人理解: HouseView相当于前端, HouseService相当于后端.
- 实现主菜单和完成退出软件的功能
说明:实现功能的三步曲[明确功能 --> 思路分析 --> 代码实现]
-
功能说明:
用户打开软件, 可以看见主菜单, 可退出软件
-
思路分析:
在HouseView.java中, 编写一个方法mainMenu, 显示菜单.
-
实现效果
=房屋出租系统菜单
1 新 增 房 源
2 查 找 房 源
3 删 除 房 源 信 息
4 修 改 房 源 信 息
5 房 屋 列 表
6 退 出
7 新增房源
请输入你的选择(1 ~ 6):
1
新 增
-
完成显示房屋列表的功能
-
功能说明: 显示房屋列表的各个信息
-
思路分析: 需要编写HouseView.java 和 HouseService.Java
在显示房屋列表时, 如果总房源数小于数组容量, 应该设置 break 语句, 防止输出空指针
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++) { // 1.这里不因该用houses.length, 因为houses是能表示的房屋总数, 实际存在的房屋因该另外设置变量 //2. 或者加一个判断 if(houses[i] == null){ break; } System.out.println(houses[i]); //这里输出房屋的基本信息, 默认输出调用的是toString方法 } System.out.println("===================房屋列表显示完毕=================="); }
-
实现效果
=================== 房 屋 列 表 ==================
编号 房主 电话 地址 月租 状态(未出租/已出租)<
-
-