- 1 常用的开发模式
- 2 房屋出租系统三层框架图
- 3 房屋出租系统-界面层-代码实现分析
- 4 房屋出租系统-房屋信息-代码实现分析
- 5 房屋出租系统-添加房屋信息-代码实现分析
- 6 房屋出租系统-删除房屋信息-代码实现分析
- 7 房屋出租系统-查找房屋信息-代码实现分析
- 8 房屋出租系统-修改房屋信息-代码实现分析
- 9 框架
- 10 House.java
- 11 HouseView.java
- 12 HouseService.java
- 13 HouseRentApp.java
(1)分层模式
(2)modul模式
(3)mvc模式
目的:使程序扩展性,可变性变强
package project.rent_house.domain;
public class House {
//编号 房主 电话 地址 月租 状态(未出租/已出租)
private int id;
private String homeowner;
private String phone;
private String address;
private int rent;
private String state;
public House(int id, String homeowner, String phone, String address,
int rent, String state) {
this.id = id;
this.homeowner = homeowner;
this.phone = phone;
this.address = address;
this.rent = rent;
this.state = state;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getHomeowner() {
return homeowner;
}
public void setHomeowner(String homeowner) {
this.homeowner = homeowner;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getRent() {
return rent;
}
public void setRent(int rent) {
this.rent = rent;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
@Override
public String toString() {
return id +
"tt" + homeowner +
"tt" + phone +
"tt" + address +
"tt" + rent +
"tt" + state;
}
}
11 HouseView.java
package project.rent_house.view;
import project.rent_house.domain.House;
import project.rent_house.service.HouseService;
import project.rent_house.utils.Utility;
public class HouseView {
private boolean loop = true ; //控制显示菜单
private char userIn = ' '; //用户菜单选择输入
HouseService houseService = new HouseService(3);
//修改房屋信息
public void reSetRomm(){
System.out.println("================修改房屋信息================");
System.out.println("输入修改的房屋ID:");
int keyRoom = Utility.readInt();
House house = houseService.findHouse(keyRoom);
if(house == null){
System.out.println("房屋不存在,无法修改");
return;
}
System.out.print("n电话("+ house.getPhone() +"):");
String ph = Utility.readString(10, "");
if(!"".equals(ph)){
house.setPhone(ph);
}
System.out.print("n姓名("+ house.getHomeowner() +"):");
String name = Utility.readString(10, "");
if(!"".equals(name)){
house.setHomeowner(name);
}
System.out.print("n地址("+ house.getAddress() +"):");
String add = Utility.readString(10, "");
if(!"".equals(add)){
house.setAddress(add);
}
System.out.print("n租金("+ house.getRent() +"):");
int re = Utility.readInt(-1);
if(re != -1){
house.setRent(re);
}
System.out.print("n状态("+ house.getState() +"):");
String sta = Utility.readString(10, "");
if(!"".equals(sta)){
house.setState(sta);
}
return;
}
//查找房屋信息
public void findRoom(){
System.out.println("================已有房屋ID如下================");
int[] roomID = houseService.roomID();
System.out.print("目前可查询的房屋有:n");
for (int i = 0; roomID[i] != 0; i++) {
System.out.print(roomID[i] + "t");
}
System.out.println("n输入要查找的房间标号:");
int userKey = Utility.readInt();
if(houseService.findRoomInfor(userKey)){
return;
}
return;
}
//退出系统
public void exit(){
char c = Utility.read/confirm/iSelection();
if(c == 'Y'){
loop = false;
System.out.println("退出房屋出租系统-------->");
}
}
//删除房屋信息
public void delHouse(){
System.out.println("================删除房屋信息================");
System.out.print("请输入删除房间的标号:(-1退出)");
int keyUser = Utility.readInt();
if(keyUser == -1){
return;
}
char c = Utility.read/confirm/iSelection();
if(c=='Y'){
if(houseService.del(keyUser)){
System.out.println("================删除房屋成功================");
}
return;
}
return;
}
//增加房屋信息
public void addHouse(){
System.out.println("================增加房屋信息================");
System.out.print("姓名:");
String name = Utility.readString(10);
System.out.print("电话:");
String phonr = Utility.readString(10);
System.out.print("地址:");
String address = Utility.readString(10);
System.out.print("月租:");
int rent = Utility.readInt();
System.out.print("状态(未出租/已出租):");
String state = Utility.readString(3);
House newHouse = new House(0,name,phonr,address,rent,state);
if(houseService.add(newHouse)){
System.out.println("================增加信息成功================n");
}
}
//显示房屋列表
public void listHouses(){
System.out.println("================房屋信息列表================");
System.out.println("编号tt房主tt电话tt地址ttt月租ttt状态(未出租/已出租)");
House[] houses = houseService.list();
for (int i = 0; i < houses.length; i++) {
if(houses[i] != null){
System.out.println(houses[i].toString());
}
}
System.out.println("================房屋信息显示完毕================n");
}
//显示主菜单
public void mainManu(){
do{
System.out.println("============房屋出租系统============");
System.out.println("ttt1 新 增 房 屋");
System.out.println("ttt2 查 找 房 屋");
System.out.println("ttt3 删 除 房 屋");
System.out.println("ttt4 修 改 房 屋");
System.out.println("ttt5 房 屋 列 表");
System.out.println("ttt6 退 出");
System.out.print("请输入(1-6):");
userIn = Utility.readChar();
switch (userIn){
case '1':
addHouse();
break;
case '2':
findRoom();
break;
case '3':
delHouse();
break;
case '4':
reSetRomm();
break;
case '5':
listHouses();
break;
case '6':
exit();
break;
default:
System.out.println("请重新输入!");
}
}while(loop);
}
}
12 HouseService.java
package project.rent_house.service;
import project.rent_house.domain.House;
public class HouseService {
private House[] houses;
private int houseNum = 1; //记录已有房屋数量
private int id_room = 1; //记录房屋id号
public boolean findRoomInfor(int keyroom){
int flag = -1;
for (int i = 0; i < houses.length; i++) {
if(keyroom == houses[i].getId()){
flag = i;
break;
}
}
if(flag == -1){
System.out.println("房屋信息查询失败!");
return false;
}
System.out.println("正在载入房屋信息------->");
System.out.println(houses[flag].toString());
return true;
}
//查找房屋
public House findHouse(int keyhouse){
int falg = -1;
for (int i = 0; i < houses.length; i++) {
if(keyhouse == houses[i].getId()){
falg = i;
break;
}
}
if(falg == -1){
return null;
}
return houses[falg];
}
//返回现有房屋ID
public int[] roomID(){
int[] key = new int[houses.length];
for (int i = 0; houses[i] != null; i++) {
key[i] = houses[i].getId();
}
return key;
}
//删除房屋信息
public boolean del(int roomKey){
if(roomKey > id_room || roomKey < 1 || houses.length <= 0){
System.out.println("房间不存在----------------->");
return false;
}
int temp = -1;
for (int i = 0; i < houses.length; i++) {
if(houses[i].getId() == roomKey){
temp = i ;
break;
}
}
if(temp == -1){
System.out.println("房间不存在----------------->");
return false;
}
for (int i = temp; i < houses.length - 1; i++) {
houses[i] = houses[i+1];
}
houses[--houseNum] = null;
return true;
}
//增加房屋信息
public boolean add(House newHouse){
if(houseNum == houses.length){
System.out.println("房屋数组已经满了,小二正在打扫新客房------>");
//动态扩容
House[] tempHouse = new House[houses.length+1];
for (int i = 0; i < houses.length; i++) {
tempHouse[i] = houses[i];
}
houses = tempHouse;
}
newHouse.setId(++id_room); //实现房屋id号自增标号
houses[houseNum++] = newHouse;
return true;
}
public HouseService(int size){
houses = new House[size];
houses[0] = new House(1,"大志","158","石油大学",
2000,"已出租");
}
//返回房屋信息
public House[] list(){
return houses;
}
}
13 HouseRentApp.java
package project.rent_house;
import project.rent_house.view.HouseView;
public class HouseRentApp {
public static void main(String[] args) {
new HouseView().mainManu();
}
}
部分图片来自B站韩顺平老师



