一个基于文本界面的综合练习,主要用于串联和回忆知识点,比较简单
各个界面的设计样式主菜单=============房屋出租系统菜单============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】
上述类的关系如图所示
文章插图
ps:Utility类作为工具类是提前预制的,无需纠结,主要负责判断输入是否合法等
项目结构如下
文章插图
功能实现实现主菜单理清关系后,最开始肯定先写界面嘛,即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 {}
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程
- 【Bluetooth|蓝牙开发】二、蓝牙开发入门
- 【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构
- 【Azure 事件中心】Event Hub 无法连接,出现 Did not observe any item or terminal signal within 60000ms in 'flatMapMany' 的错误消息
- 2023年9月15日是买鱼吉日吗 2023年9月15日买鱼行吗
- Java集合精选常见面试题
- 2023年农历正月初七宜买鸭吗 2023年1月28日买鸭好吗
- 很可爱奶凶奶凶的句子 可爱萌炸了的小情话
- 父亲刚去世的朋友圈心情短句 失去爸爸撕心裂肺感言
- 2023年1月28日适合装修屋顶吗 2023年1月28日装修屋顶行吗