查找房源 删除房源 修改房源 房屋列表
退出
代码实现 界面
package com.house;
import java.util.Scanner;
public class HouseRent {
//让do while 死循环
boolean loop=true;
//控制台接收scanner
Scanner scanner=new Scanner(System.in);
//接收输入的数字
String key= "";
//创建houseService对象 给数组长度赋值
private HouseService houseService=new HouseService(2);
//界面
public void listhst(){
System.out.println("===房屋列表===");
System.out.println("编号tt房主tt电话tt地址tt月租tt状态(未出租/已出租)");
House[] list = houseService.list();
for (int i = 0; i < list.length; i++) {
if(list[i]!=null){
System.out.println(list[i]);
}
}
System.out.println("===房屋列表显示完毕===");
}
public static void main(String[] args) {
HouseRent h=new HouseRent();
h.HouseRents();
}
public void HouseRents(){
do {
System.out.println("---------房屋租聘系统----------");
System.out.println("1.新增房屋");
System.out.println("2.查找房屋 ");
System.out.println("3.删除房屋 ");
System.out.println("4.修改房屋信息 ");
System.out.println("5.房屋列表");
System.out.println("6.退出");
System.out.println("请选择1-6:");
key=scanner.next();
switch (key){
case "1":
addHouse();
break;
case "2":
findHouse();
break;
case "3":
deleteHouse();
break;
case "4":
editHouse();
break;
case "5":
listhst();
break;
case "6":
System.out.println("退出");
exit();
break;
default:
System.out.println("你输入有误。。。。");
}
}while (loop);
}
//添加房屋的信息view
public void addHouse(){
System.out.println("==添加房屋信息==");
System.out.println("名字:");
String name=Utility.readString(8);
System.out.println("电话:");
String phone=Utility.readString(13);
System.out.println("地址:");
String address=Utility.readString(8);
System.out.println("月租:");
int rent=Utility.readInt(10);
System.out.println("状态:");
String state=Utility.readString(3);
House house = new House(0,name,phone,address,rent,state);
if(houseService.adds(house)){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
}
//查看房屋的信息view
public void findHouse(){
System.out.println("====根据id查找====");
System.out.println("请输入你要查找的id号");
int id=Utility.readInt();
if(houseService.find(id)!=null){
System.out.println (houseService.find(id));
}else{
System.out.println("你输入的id不存在");
}
}
//修改房屋的信息view
public void editHouse(){
System.out.println("=======修改房屋======");
System.out.println("请选择房屋id(-1退出)");
int id=Utility.readInt();
if(id==-1){
System.out.println("取消修改");
return;
}else{
House h= houseService.find(id);
if(h==null){
System.out.println("你输入的ID不存在");
}else{
System.out.println("名字"+h.getName()+":");
String name=Utility.readString(8,"");
if(!"".equals(name)){
h.setName(name);
}
System.out.println("电话"+ h.getTel()+":");
String phone=Utility.readString(13,"");
if(!"".equals(phone)){
h.setTel(phone);
}
System.out.println("地址"+h.getAddress()+":");
String address=Utility.readString(8,"");
if(!"".equals(address)){
h.setAddress(address);
}
System.out.println("月租"+h.getMonthly_rent()+":");
int rent=Utility.readInt(-1);
if(rent!=-1){
h.setMonthly_rent(rent);
}
System.out.println("状态"+h.getState()+":");
String state=Utility.readString(3,"");
if (!"".equals(state)){
h.setState(state);
}
System.out.println("修改房屋信息成功=========");
}
}
}
//删除房屋的信息view
public void deleteHouse(){
System.out.println("====删除房屋信息====");
System.out.println("请输入待删除的房屋编号(-1退出)");
int id=Utility.readInt();
if(id==-1){
System.out.println("取消删除房屋信息");
return;
}
char c=Utility.readConfirmSelection();
if(c=='Y'){
if(houseService.delete(id)){
System.out.println("成功删除房屋信息");
}else{
System.out.println(" 删除房屋信息失败 你的id不存在");
}
}else {
System.out.println("取消删除房屋信息");
}
}
//退出的方法
public void exit(){
String exits="";
while (true){
System.out.println("是否退出Y/N");
exits=scanner.next();
if("y".equals(exits) ||"n".equals(exits)){
break;
}
}
if(exits.equals("y")){
loop=false;
}
}
}
servic
package com.house;
public class HouseService {
//定义一个数组对象
private House[] houses;
//定义一个记录数组个数的变量
private int housesize=1;
//定义一个id的变量
private int idcounter=1;
//定义一个变量记录id的位置
int index=-1;
// 写一个构造器
public HouseService(int siez) {
//创建一个新的对象数组siez数组个数
houses = new House[siez];
//为了方便初始化一个房屋数据
houses[0] = new House(1,"jke", "123", "长沙", 2000, "未出租");
}
// list 方法 返回houses
public House[] list() {
return houses;
}
//增加的方法 添加新对象 返回boolean
public boolean add(House house){
//判断是否还能够添加(这个方法没考虑扩容的问题)如果当前数组个数等于数组长度就不能添加了
if(housesize==houses.length){
System.out.println("已经不能添加了");
//返回false
return false;
}
//如果housesize不等于houses.length 就把house加入到数组里面
//housesize默认是1因为是后++所有结束后就housesize+1
houses[housesize++]=house;
//自定义的id赋值给house的id属性
house.setId(++idcounter);
//返回true
return true;
}
//del方法,删除一个房屋信息
//应该先找到要删除的房屋信息对应的下标
//一定要搞清楚 下标和房屋的编号不是一回事
public boolean delete(int id){
index=-1;
for (int i = 0; i
工具类
package com.house;
import java.util.*;
public class Utility {
//静态属性。。。
private static Scanner scanner = new Scanner(System.in);
public static char readMenuSelection() {
char c;
for (; ; ) {
String str = readKeyBoard(1, false);//包含一个字符的字符串
c = str.charAt(0);//将字符串转换成字符char类型
if (c != '1' && c != '2' &&
c != '3' && c != '4' && c != '5') {
System.out.print("选择错误,请重新输入:");
} else break;
}
return c;
}
public static char readChar() {
String str = readKeyBoard(1, false);//就是一个字符
return str.charAt(0);
}
public static char readChar(char defaultValue) {
String str = readKeyBoard(1, true);//要么是空字符串,要么是一个字符
return (str.length() == 0) ? defaultValue : str.charAt(0);
}
public static int readInt() {
int n;
for (; ; ) {
String str = readKeyBoard(2, false);//一个整数,长度<=2位
try {
n = Integer.parseInt(str);//将字符串转换成整数
break;
} catch (NumberFormatException e) {
System.out.print("数字输入错误,请重新输入:");
}
}
return n;
}
public static int readInt(int defaultValue) {
int n;
for (; ; ) {
String str = readKeyBoard(10, true);
if (str.equals("")) {
return defaultValue;
}
//异常处理...
try {
n = Integer.parseInt(str);
break;
} catch (NumberFormatException e) {
System.out.print("数字输入错误,请重新输入:");
}
}
return n;
}
public static String readString(int limit) {
return readKeyBoard(limit, false);
}
public static String readString(int limit, String defaultValue) {
String str = readKeyBoard(limit, true);
return str.equals("")? defaultValue : str;
}
public static char readConfirmSelection() {
System.out.println("请输入你的选择(Y/N)");
char c;
for (; ; ) {//无限循环
//在这里,将接受到字符,转成了大写字母
//y => Y n=>N
String str = readKeyBoard(1, false).toUpperCase();
c = str.charAt(0);
if (c == 'Y' || c == 'N') {
break;
} else {
System.out.print("选择错误,请重新输入:");
}
}
return c;
}
private static String readKeyBoard(int limit, boolean blankReturn) {
//定义了字符串
String line = "";
//scanner.hasNextLine() 判断有没有下一行
while (scanner.hasNextLine()) {
line = scanner.nextLine();//读取这一行
//如果line.length=0, 即用户没有输入任何内容,直接回车
if (line.length() == 0) {
if (blankReturn) return line;//如果blankReturn=true,可以返回空串
else continue; //如果blankReturn=false,不接受空串,必须输入内容
}
//如果用户输入的内容大于了 limit,就提示重写输入
//如果用户如的内容 >0 <= limit ,我就接受
if (line.length() < 1 || line.length() > limit) {
System.out.print("输入长度(不能大于" + limit + ")错误,请重新输入:");
continue;
}
break;
}
return line;
}
}
对象类
package com.house;
import java.util.Scanner;
public class House {
//id
private int id;
//名字
private String name;
//电话
private String tel;
//地址
private String address;
//月租
private int monthly_rent;
//状态
private String state;
//构造器
public House(int id,String name, String tel, String address, int monthly_rent, String state) {
this.id=id;
this.name = name;
this.tel = tel;
this.address = address;
this.monthly_rent = monthly_rent;
this.state = state;
}
//get set 方法
public String getName() {
return name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getMonthly_rent() {
return monthly_rent;
}
public void setMonthly_rent(int monthly_rent) {
this.monthly_rent = monthly_rent;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
//打印的方法
@Override
public String toString() {
return id+"tt"+name + "tt"
+ tel +
"tt" +
address +
"tt" +
monthly_rent +
"tt" +
state;
}
}
房屋出租系统-设计
项目设计-程序框架图 (分层模式=>当软件比较复杂,需要模式管理



