【Java复健指南09】项目练习全解--房屋出租系统

一个基于文本界面的综合练习,主要用于串联和回忆知识点,比较简单
各个界面的设计样式主菜单=============房屋出租系统菜单============1 新 增 房 源2 查 找 房 屋3 删除房屋信息4 修改房屋信息5 房 屋 列 表6 退出请输入你的选择(1-6):新增房源=============添加房屋============姓名: jk电话: 174地址: 丰台区月租: 5600状态:未出租查找房源=============查询房屋信息============请输入想查询的房屋ID:11 jk1 13544856575 西青区 1800 未出租删除房源=============删除房屋信息============请输入待删除的房屋编号或输入-1退出: 1请输入你的选择(Y/N): 请小心选择y=============删除房屋信息成功============修改房源=============修改房屋信息============请选择待修改房屋编号(-1退出):2姓名(jk):jack电话(174):124地址(丰台区): 海淀区租金(5600):5300状态(未出租):已出租=============修改房屋信息成功============房屋列表=============房屋列表============编号房主电话地址月租状态(未出租/已出租)2 jack 124 海淀区 5300 已出租3 gg 485 昌平区 1800 已出租=============房屋列表显示完毕============退出系统=============房屋出租系统菜单============1 新 增 房 源2 查 找 房 屋3 删除房屋信息4 修改房屋信息5 房 屋 列 表6 退出请输入你的选择(1-6):6请输入你的选择(Y/N): 请小心选择y========已退出========项目设计相较之前的练习来说,这个程序体量已经达到小项目级别 。因此,需要使用合理的方式进行规划
使用分层模式对软件各部分功能进行设计规划
步骤:
1、明确系统有哪些类
2、确定类之间的关系
系统希望通过文字界面进行展示
那么显示界面需要一个类实现【HouseView.java】
显示界面中的各项功能背后需要的业务逻辑代码应该单独放在一个类中,即该类用于相应主界面类的各项服务【HouseService.java】
在系统中,对于各种数据的操作是通过房屋类间接进行的【House.java】,其中定义了一间房屋应该包含的属性与方法
三大主类基本完成了,现在需要一个调用各对象的类作为程序的入口,即【HouseRentApp.java】
上述类的关系如图所示

【Java复健指南09】项目练习全解--房屋出租系统

文章插图
ps:Utility类作为工具类是提前预制的,无需纠结,主要负责判断输入是否合法等
项目结构如下
【Java复健指南09】项目练习全解--房屋出租系统

文章插图
功能实现实现主菜单理清关系后,最开始肯定先写界面嘛,即HouseView中定义一个显示主菜单的方法【mainMenu】
//显示主菜单//仍然是用之前提到的do-while循环实现显示,loop标志位控制是否结束(退出系统)显示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("请输入你的选择(1-6):");key = Utility.readChar();switch (key) {//以下是菜单中各功能的实现方法,刚开始没写完可以先用sout占位case '1':addHouse();break;case '2':findHouse();break;case '3':delHouse();break;case '4':update();break;case '5':listHouses();break;case '6':exit();loop = false;break;}}while (loop);注意,界面类的方法只负责界面部分的功能,对于数据的相关操作需要在业务类定义
界面类只负责引用相关业务方法
定义业务类/** //定义House[],保存House对象1.响应HouseView的调用2.完成对房屋信息的各种操作* (增删改查c[create]r[read]u[update]d[delete])*/public class HouseService {}

经验总结扩展阅读