房屋出租系统
一、设计
- 设计程序框架图(分层模式=>当软件比较复杂时,需要模式化管理)!
2.依据我们所设计的框架图,在IDEA中创建好相关的包,在包下面建立类,即可进行编程。
二、实现
1.准备工具类 Utility,提高开发效率
在实际开发中,公司都会提供相应的工具类和开发库,可以提高开发效率,程序员也需要能够看懂别人写的代码, 并能够正确的调用。
- 了解 Utility 类的使用
- 测试 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完成对房屋信息的各种操作
其实,就是设置退出软件的界面:
功能说明: 用户看到退出软件的界面,系统也会输出相对应的话语提示用户已退出。
编写 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类)
6.项目功能实现-完成删除房屋信息的功能
编写delHouse() 方法:接收输入的id,调用service的del方法(在HouseView类)
编写del方法:删除一个房屋信息(在HouseService类)
7.项目功能实现-完成根据 id 查找房屋信息的功能
编写findHouse()方法:根据id查找房屋信息(在HouseView类)
编写find方法:返回House对象或者null(在HouseService类)
8.项目功能实现--完成修改房屋信息的功能
编写updateHouses()方法:来根据id修改房屋信息,并根据输入得到updateId,查找对象(在HouseView类)
9.项目功能实现-完善退出确认功能
参考代码如下:
case '6':
char c =Utility.readConfirmSelection();
if(c =='Y')
{
loop = false;
}
break;