房屋出租系统

一、设计

  1. 设计程序框架图(分层模式=>当软件比较复杂时,需要模式化管理)!



java 营销活动 设计 java项目设计案例_设计模式


2.依据我们所设计的框架图,在IDEA中创建好相关的包,在包下面建立类,即可进行编程。


java 营销活动 设计 java项目设计案例_设计模式_02


二、实现

1.准备工具类 Utility,提高开发效率

在实际开发中,公司都会提供相应的工具类和开发库,可以提高开发效率,程序员也需要能够看懂别人写的代码, 并能够正确的调用。

  1. 了解 Utility 类的使用
  2. 测试 Utility 类

2.项目功能实现-完成 House 类

House 类:

1、一个House对象表示一个房屋信息

2、House类有哪些属性,可以通过给出的界面分析得到

部分代码展示:

package houserent.domain;
//House的对象表示一个房屋信息
public class House
{
    //编号 房主 电话 地址 月租 状态(未出租/已出租)
    private int id;//编号
    private String name;//房主
    private String phone;//电话
    private String address;//地址
    private int rent;//月租
    private String state;//状态(未出租/已出租)

    //编写构造器、setter和getter

    public House(int id, String name, String phone, String address, int rent, String state) {
        this.id = id;
        this.name = name;
        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 getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    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;
    }

    //为了方便输出对象信息,我们实现toString
    //编号 房主 电话 地址 月租 状态(未出租/已出租)

    @Override
    public String toString() {
        return  id +
                "\t" + name +
                "\t" + phone +
                "\t" + address +
                "\t" + rent +
                "\t" + state ;
    }
}

3.项目功能实现-显示主菜单和完成退出软件功能

实现功能的三部曲:==[明确完成功能->思路分析->代码实现]==

功能说明: 用户打开软件, 可以看到主菜单,可以看到多个选项,通过输入不同的数字序号,实现不同的功能。

HouseView类:

1、显示界面

2、接收用户的输入

3、调用HouseService完成对房屋信息的各种操作


java 营销活动 设计 java项目设计案例_设计模式_03


其实,就是设置退出软件的界面:

功能说明: 用户看到退出软件的界面,系统也会输出相对应的话语提示用户已退出。

编写 mainMenu 方法:显示主菜单

部分代码展示:

package houserent;

import houserent.view.HouseView;

public class HouseRentApp//完成退出软件功能
{
    public static void main(String[] args)
    {
        //创建HouseView对象,并且显示主菜单,是整个程序的入口
        new HouseView().mainMenu();
        System.out.println("==========你已退出房屋出租系统!==========");
    }
}

4.项目功能实现-完成显示房屋列表的功能

HouseService(业务层)来响应 HouseView(界面)的调用,两者要分开,做到各司其职。

HouseService类:

1、响应HouseView的调用

2、完成对房屋信息的增删改查

编写 list 方法:返回所有房屋信息

部分代码展示:

package houserent.service;

import houserent.domain.House;

public class HouseService
{
    private House[] houses;//保存House对象

    public HouseService(int size)
    {
        houses = new House[size];//当创建HouseService对象,指定数组大小
        //在这里初始一个House对象,按编号 房主 电话 地址 月租 状态(未出租/已出租)的位置进行设置
        houses[0] = new House(1,"Mike","123456789","海珠区",8000,"未出租");
    }
    //再写一个list方法,返回houses
    public House[] list()
    {
        return houses;
    }
}

5.项目功能实现-添加房屋信息的功能

编写addHouse()方法:接收输入,创建House对象,调用add方法(在HouseView类)

编写add方法:添加新对象,返回boolean(在HouseService类)


java 营销活动 设计 java项目设计案例_github_04


6.项目功能实现-完成删除房屋信息的功能

编写delHouse() 方法:接收输入的id,调用service的del方法(在HouseView类)

编写del方法:删除一个房屋信息(在HouseService类)


java 营销活动 设计 java项目设计案例_java_05


7.项目功能实现-完成根据 id 查找房屋信息的功能

编写findHouse()方法:根据id查找房屋信息(在HouseView类)

编写find方法:返回House对象或者null(在HouseService类)


java 营销活动 设计 java项目设计案例_关卡设计_06


8.项目功能实现--完成修改房屋信息的功能

编写updateHouses()方法:来根据id修改房屋信息,并根据输入得到updateId,查找对象(在HouseView类)


java 营销活动 设计 java项目设计案例_java 营销活动 设计_07


9.项目功能实现-完善退出确认功能

参考代码如下:

case '6':
    char c =Utility.readConfirmSelection();
    if(c =='Y')
    {
        loop = false;
    }
    break;


java 营销活动 设计 java项目设计案例_设计模式_08