房屋出租系统包括以下功能:
1、添加房屋功能
2、查找房屋功能
3、删除房屋功能
4、修改房屋功能
5、显示房屋列表功能
6、退出功能
具体界面如下:
代码如下:
import java.util.Scanner;
public class House {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str[] = new String[100]; //创建一个房屋的数组对象
boolean bool = true; //设置一个布尔类型用于表示程序的退出
String key = ""; //用于选择所执行的项目
String name = ""; //姓名
String num = ""; //电话号
String address = ""; //地址
double money; //月租
String state = ""; //状态
int id = 0; //记录房屋的id号
String re = ""; //用于字符串的连接
String choose = ""; //在退出功能中选择是否退出程序
int id1; //表示要查找的id号
int length = 0; //表示实际数组的长度
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.print("请选择:");
key = scanner.next();
//开始选择项目
switch (key) {
//添加房屋功能
case "1":
System.out.println("============新增房屋============");
System.out.print("\t姓名: ");
name = scanner.next();
System.out.print("\n\t电话: ");
num = scanner.next();
System.out.print("\n\t地址: ");
address = scanner.next();
System.out.print("\n\t月租: ");
money = scanner.nextDouble();
System.out.print("\n\t状态(已出租/未出租): ");
state = scanner.next();
re = "id:" + id + "\t姓名:" + name + "\t电话:" + num + "\t地址:" + address + "\t月租:" + money + "\t状态:" + state; //字符串的连接
str[id] = re; //对字符串数组进行赋值
id++; //每添加一组信息id加一
System.out.println("============添加完成============");
break;
//查找房屋功能
case "2":
System.out.println("============查找房屋============");
System.out.print("请输入要查找的id:");
id1 = scanner.nextInt();
//得出数组目前的实际长度
for(int i = 0; str[i] != null; i++) {
length = i;
}
//如果要查找的id在这个实际长度中,则输出该id的信息;否则输出查找失败
if(id1 <= length) {
System.out.println(str[id1]);
System.out.println("============查找成功============");
} else {
System.out.println("查找失败,无此房屋");
}
break;
//删除房屋功能
case "3":
System.out.println("============删除房屋============");
System.out.print("请输入要查找的id:");
id1 = scanner.nextInt();
//得出数组目前的实际长度
for(int i = 0; str[i] != null; i++) {
length = i;
}
//如果要删除的数组id在这个实际长度中,则删除该id的信息,否则输出删除失败
if(id1 <= length) {
for(int i = id1; i <= length; i++) {
str[i] = str[i+1];
str[length] = null;
}
System.out.println("=============删除成功============");
} else {
System.out.println("删除失败,无此房屋");
}
break;
//修改房屋信息功能
case "4":
System.out.println("============修改房屋信息============");
System.out.print("请输入要修改的房屋id:");
id1 = scanner.nextInt();
//得出数组的实际长度
for(int i = 0; str[i] != null; i++) {
length = i;
}
//如果我们需要的id在实际长度中,则对该id的内容进行重新赋值;否则输出修改失败
if(id1 <= length) {
System.out.print("\t姓名: ");
name = scanner.next();
System.out.print("\n\t电话: ");
num = scanner.next();
System.out.print("\n\t地址: ");
address = scanner.next();
System.out.print("\n\t月租: ");
money = scanner.nextDouble();
System.out.print("\n\t状态(已出租/未出租): ");
state = scanner.next();
re = "id:" + id + "\t姓名:" + name + "\t电话:" + num + "\t地址:" + address + "\t月租:" + money + "\t状态:" + state;
str[id1] = re;
} else {
System.out.println("修改失败,无此房屋");
}
break;
//输出房屋列表功能
case "5":
System.out.println("===========房屋列表===========");
//在创建数组时定义长度为100,但在实际过程中,可能不到100,所以循环判定条件为str[i] != null,表示只输出我们定义的信息
for(int i = 0; str[i] != null; i++) {
System.out.println(str[i]);
}
break;
//退出功能
case "6":
//循环判定,退出时再次询问是否要退出
while(true) {
System.out.print("是否要退出(y/n):");
choose = scanner.next();
if(choose.equals("y")) {
bool = false;
System.out.println("已退出");
break;
} else if (choose.equals("n")) {
break;
} else {
System.out.println("出错,请重新选择");
}
}
break;
default:
System.out.println("出错,请重新选择!");
}
} while(bool);
}
}
//两个问题:
//1 删除后id不会自动减一
//2 修改后的房屋id会自动跑到最后