【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 已出租=============房屋列表顯示完畢============退出系統【【Java復健指南09】項目練習全解--房屋出租系統】=============房屋出租系統菜單============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 {}實現房屋列表接下來實現對現有房屋的展示,即房屋列表的展示【listHouses()】
為什么先實現這個功能呢?因為能夠展示房屋意味著我們需要完成對房屋類的定義,這是后面的功能也需要的
因此作為基礎部分 , 需要先做這個房屋列表功能
//編寫listHouses()顯示房屋列表//其中使用業務類的方法,實例化并返回房屋對象House數組//因此需要先對House進行定義public void listHouses(){System.out.println("=============房屋列表============");System.out.println("編號\t\t房主\t\t電話\t\t地址\t\t月租\t\t狀態(未出租/已出租)");House[] houses = houseService.list();//返回所有房屋信息,保存在houses數組中for (int i = 0; i < houses.length; i++) {if (houses[i] == null) {break;}System.out.println(houses[i]);}System.out.println("=============房屋列表顯示完畢============");}

推薦閱讀