package com.hsp.project.houserental.view;
import com.hsp.project.houserental.domain.House;
import com.hsp.project.houserental.service.HouseService;
import com.hsp.project.houserental.utils.Utility;
/*
* 1.显示界面
* 2.接受用户收入
* 3.调用HouseService中crud[增删改查]方法完成对房屋信息的各种操作
* */
public class HouseView {
private boolean loop = true;//控制显示菜单的属性值
private char key = ' ';//接受用户选择
private HouseService houseService = new HouseService(10);//创建对象的同时调用了有参构造器并设置数组大小为10
//显示主菜单
public void mainMenu() {
do {
System.out.println("=======房屋出租系统菜单=======");
System.out.println("\t1 新 增 房 源");
System.out.println("\t2 查 找 房 屋");
System.out.println("\t3 删 除 房 屋 信 息");
System.out.println("\t4 修 改 房 屋 信 息");
System.out.println("\t5 房 屋 列 表");
System.out.println("\t6 退 出");
System.out.println("\n>>请输入你的选择(1-6):");
key = Utility.readChar();//调用工具类Utility中的readChar()方法
switch(key) {
case '1':
addhouse();//调用本类中添加方法
break;
case '2':
findHouse();//调用本类中查找方法
break;
case '3':
delHouse();//调用本类中删除方法
break;
case '4':
update();//调用本类中删除方法
break;
case '5':
listhouse();//调用本类中列表方法
break;
case '6':
exit();//调用本类中退出方法
break;
}
}while(loop);//退出方法中会将loop值置为false,是其退出菜单switch循环
}
//新增
public void addhouse() {
System.out.println("=========添加列表=========");
System.out.println("姓名:");
String name = Utility.readString(8);//调用工具类Utility中的readString()方法接收姓名
System.out.println("电话:");
String phone = Utility.readString(12);//调用工具类Utility中的readString()方法接收电话
System.out.println("地址:");
String address = Utility.readString(16);//调用工具类Utility中的readString()方法接收地址
System.out.println("月租:");
int rent = Utility.readInt();//调用工具类Utility中的readInt()方法接收月租
System.out.println("状态:");
String state = Utility.readString(3);//调用工具类Utility中的readString()方法接收状态
//创建一个新对象,将上面接收的房屋信息传入,注意id不是输入而是系统分配的
House newHouse = new House(0,name,phone,address,rent,state);
if(houseService.add(newHouse)) {//调用Service中的add()方法,通过其判断数组是否支持添加
System.out.println("添加房屋成功");
}else {
System.out.println("添加房屋失败");
}
}
//根据Id查找
public void findHouse() {
System.out.println("=========房屋查找==========");
System.out.println("请输入要查找的Id:");
int findId = Utility.readInt();
//调用Service中的findId方法
House house = houseService .findById(findId);
if(house != null) {
System.out.println(house);
}else {
System.out.println("=========查找房屋信息Id不存在...==========");
}
}
//删除,接受输入的id,调用Service的del方法对对应id的房屋信息进行删除
public void delHouse() {
System.out.println("=====删除房屋信息=====");
System.out.println("请输入待删除房屋的编号(-1退出删除):");
int delId = Utility.readInt();
if(delId == -1) {
System.out.println("取消删除房屋信息");
return;
}
char choice = Utility.readConfirmSelection();//调用的本方法中已经包含循环,必须输入Y/N
if(choice == 'Y') {//对房屋进行的信息删除操作在调用Service中的方法
if(houseService.del(delId)) {
System.out.println("=====删除房屋信息成功=====");
}else {
System.out.println("=====删除房屋编号不存在,删除失败=====");
}
}else {
System.out.println("取消删除房屋信息");
}
}
//根据Id修改
public void update() {
System.out.println("=========修改房屋信息==========");
System.out.println("请输入要修改的房屋编号(-1退出):");
int updateId = Utility.readInt();
if(updateId == -1) {
System.out.println("=========放弃修改房屋信息==========");
return ;
}
//根据输入的updateId,调用findId方法查找房屋是否存在再进行修改
House house = houseService.findById(updateId);
if(house == null) {
System.out.println("=========修改房屋信息编号不存在...==========");
return;
}
System.out.println("姓名("+house.getName()+"):");
String name = Utility.readString(8,"");//Utility中的方法,若直接回车表示不修改该信息,默认""
if(!"".equals(name)) {
house.setName(name);
}
System.out.println("电话("+house.getPhone()+"):");
String phone = Utility.readString(12,"");//Utility中的方法,若直接回车表示不修改该信息,默认""
if(!"".equals(phone)) {
house.setPhone(phone);
}
System.out.println("地址("+house.getAddress()+"):");
String address = Utility.readString(18,"");//Utility中的方法,若直接回车表示不修改该信息,默认""
if(!"".equals(address)) {
house.setAddress(address);
}
System.out.println("租金("+house.getRent()+"):");
int rent = Utility.readInt(-1);//Utility中的方法,若直接回车表示不修改该信息,默认""
if(!"".equals(rent)) {
house.setRent(rent);
}
System.out.println("状态("+house.getState()+"):");
String state = Utility.readString(3,"");//Utility中的方法,若直接回车表示不修改该信息,默认""
if(!"".equals(state)) {
house.setState(state);
}
System.out.println("=========修改房屋信息成功==========");
}
//显示房屋列表
public void listhouse() {
System.out.println("=========房屋列表==========");
System.out.println("编号\t房主\t电话\t地址\t月租\t状态");
House[] houses = houseService.list();//得到所有房屋信息
for(int i = 0; i < houses.length; i++) {
if(houses[i] != null) {
System.out.println(houses[i]);//遍历house数组输出房屋信息(toString方法已重写输出格式)
}
}
System.out.println("房屋列表显示完毕");
}
//完成退出确认
public void exit() {
//使用Utility提供的方法
char c = Utility.readConfirmSelection();
if(c == 'Y') {
loop = false;
}
}
}
评论0