创建宿舍类:
import java.io.Serializable;
public class dorm implements Serializable,Comparable<dorm> {
private String bulidingnumber;//楼号
private String roomnumber;//房间号
private double area;//面积
private int realitynumber;//入住人数
private int themaxnumber;//所容纳人数
public dorm(String bulidingnumber,String roomnumber,double area,int realitynumber,int themaxnumber ){
this.area=area;
this.bulidingnumber=bulidingnumber;
this.realitynumber=realitynumber;
this.roomnumber=roomnumber;
this.themaxnumber=themaxnumber;
}
public dorm(){
}
public void setBulidingnumber(String bulidingnumber) {
this.bulidingnumber = bulidingnumber;
}
public String getBulidingnumber() {
return bulidingnumber;
}
public void setRoomnumber(String roomnumber) {
this.roomnumber = roomnumber;
}
public String getRoomnumber() {
return roomnumber;
}
public void setArea(double area) {
this.area = area;
}
public double getArea() {
return area;
}
public void setRealitynumber(int realitynumber) {
this.realitynumber = realitynumber;
}
public int getRealitynumber() {
return realitynumber;
}
public void setThemaxnumber(int themaxnumber) {
this.themaxnumber = themaxnumber;
}
public int getThemaxnumber() {
return themaxnumber;
}
@Override
public String toString() {
return "dorm{" +
"bulidingnumber='" + bulidingnumber + '\'' +
", roomnumber='" + roomnumber + '\'' +
", area=" + area +
", realitynumber=" + realitynumber +
", themaxnumber=" + themaxnumber +
'}';
}
@Override
public int compareTo(dorm o) {
return this.getRealitynumber()-o.getRealitynumber();
}
}
main主函数
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import static java.lang.System.exit;
public class Main {
public static void main(String[] args) {
List<dorm> array = new ArrayList<>();
mainfenzhi(array);
}
public static void mainfenzhi(List<dorm> array) {
while (true) {
menu();
Scanner sc = new Scanner(System.in);
String f = sc.next();
xuanze(array, f);
}
}
public static void xuanze(List<dorm> array, String f) {
switch (f) {
case "1"://录入宿舍信息
luru(array);
break;
case "2"://删除指定房间号信息
delete();
break;
case "3"://修改指定房间号信息
xiugai();
break;
case "4"://宿舍信息浏览
liulan();
break;
case "5"://按房间号查询
chaxun();
break;
case "6"://按已入住人数排序
paixu();
break;
case "7"://追加录入信息
zhuijia();
case "8"://退出系统
exit(0);
default:
System.out.println("请输入正确的选项!");
Scanner sc = new Scanner(System.in);
String q = sc.next();
xuanze(array, q);
break;
}
}
public static void menu() {
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("7 追加宿舍信息");
System.out.println("8 退出系统");
System.out.print("请选择需要使用的功能:");
}
public static void luru(List<dorm> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入楼号");
String bulidingnumber = sc.nextLine();
System.out.println("请输入房间号");
String roomnumber = sc.nextLine();
System.out.println("请输入面积");
double area = sc.nextInt();
System.out.println("请输入所容纳人数");
int themaxnumber = sc.nextInt();
System.out.println("请输入入住人数");
int realitynumber = sc.nextInt();
dorm s = new dorm();
s.setBulidingnumber(bulidingnumber);
s.setRoomnumber(roomnumber);
s.setArea(area);
s.setThemaxnumber(themaxnumber);
s.setRealitynumber(realitynumber);
array.add(s);
System.out.println("录入宿舍信息成功!");
lurufenzhi(array);
}
public static void lurufenzhi(List<dorm> array) {
System.out.println("是否继续录入宿舍信息(是请按1,不是请按0)");
Scanner sc = new Scanner(System.in);
String i = sc.next();
switch (i) {
case "1":
luru(array);
break;
case "0":
save(array);
mainfenzhi(array);
break;
default:
System.out.println("请输入正确的数字!");
lurufenzhi(array);
break;
}
}
public static void xiugai() {
Scanner sc = new Scanner(System.in);
List<dorm> array = duqu();
while (true) {
System.out.println("请输入你需要修改的信息的房间号");
String roomnumber = sc.next();
xuigaifenzhi(array, roomnumber);
}
}
public static void xuigaifenzhi(List<dorm> array, String roomnumber) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < array.size(); i++) {
dorm s = array.get(i);
if (s.getRoomnumber().equals(roomnumber)) {
System.out.println("已找到该房间号的信息:" + "房间号为:" + s.getRoomnumber() + " 所容纳人数为:" + s.getThemaxnumber() + " 楼号为:" + s.getBulidingnumber() + "面积为:" + s.getArea() + "入住人数为:" + s.getRealitynumber());
while (true) {
System.out.println("修改楼号请按1,修改房间号请按2,修改所容纳人数请按3,修改面积请按4,修改入住人数请按5,取消修改请按0");
String m = sc.next();
switch (m) {
case "1":
System.out.println("修改楼号,请输入你修改后的数据");
String bulidingnumber1 = sc.next();
s.setBulidingnumber(bulidingnumber1);
System.out.println("修改成功!");
xuigaifenzhi2(array, roomnumber);
break;
case "2":
System.out.println("修改房间号,请输入你修改后的数据");
String roomnumber1 = sc.next();
s.setRoomnumber(roomnumber1);
System.out.println("修改成功!");
xuigaifenzhi2(array, roomnumber1);
break;
case "3":
System.out.println("修改所容纳人数,请输入你修改后的数据");
int themaxnumber1 = sc.nextInt();
s.setThemaxnumber(themaxnumber1);
System.out.println("修改成功!");
xuigaifenzhi2(array, roomnumber);
break;
case "4":
System.out.println("修改面积,请输入你修改后的数据");
double area1 = sc.nextInt();
s.setArea(area1);
System.out.println("修改成功!");
xuigaifenzhi2(array, roomnumber);
break;
case "5":
System.out.println("修改入住人数,请输入你修改后的数据");
int realitynumber1 = sc.nextInt();
s.setRealitynumber(realitynumber1);
System.out.println("修改成功!");
xuigaifenzhi2(array, roomnumber);
break;
case "0":
mainfenzhi(array);
break;
}
}
}
}
}
public static void xuigaifenzhi2(List<dorm> array, String roomnumber) {
System.out.println("是否继续修改该宿舍信息,是请按1,退出请按0");
Scanner sc = new Scanner(System.in);
String r = sc.next();
switch (r) {
case "1":
System.out.println("继续修改该宿舍信息");
xuigaifenzhi(array, roomnumber);
break;
case "0":
save(array);
System.out.println("退出修改系统");
mainfenzhi(array);
break;
default:
System.out.println("请输入正确的数字!");
xuigaifenzhi2(array, roomnumber);
}
}
//删除指定房间号记录
public static void delete() {
Scanner sc = new Scanner(System.in);
List<dorm> array = duqu();
while (true) {
System.out.println("请输入你要删除的房间号");
String roomnumber = sc.next();
deletefenzhi(array, roomnumber);
}
}
public static void deletefenzhi(List<dorm> array, String roomnumber) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < array.size(); i++) {
dorm s = array.get(i);
if (s.getRoomnumber().equals(roomnumber)) {
System.out.println("已找到该房间号的信息:" + "房间号为:" + s.getRoomnumber() + " 所容纳人数为:" + s.getThemaxnumber() + " 楼号为:" + s.getBulidingnumber() + "面积为:" + s.getArea() + "入住人数为:" + s.getRealitynumber());
while (true) {
System.out.println("确认删除请按1,取消删除请按0");
String s1 = sc.next();
switch (s1) {
case "1":
array.remove(i);
System.out.println("删除成功!");
save(array);
mainfenzhi(array);
break;
case "0":
System.out.println("取消删除成功!");
mainfenzhi(array);
break;
default:
System.out.println("请输入正确的数字!");
deletefenzhi(array, roomnumber);
break;
}
}
}
}
}
public static void liulan() {
List<dorm> array = duqu();
for (dorm arrays : array) {
System.out.println(arrays);
}
}
public static void chaxun() {
List<dorm> array = duqu();
while (true) {
System.out.println("按房间号查询,请输入你想查询的房间号");
chaxunfenzhi1(array);
}
}
public static void chaxunfenzhi1(List<dorm> array) {
Scanner sc = new Scanner(System.in);
String r = sc.next();
for (int i = 0; i < array.size(); i++) {
dorm s = array.get(i);
if (s.getRoomnumber().equals(r)) {
System.out.println("已找到该房间号的信息:" + "房间号为:" + s.getRoomnumber() + " 所容纳人数为:" + s.getThemaxnumber() + " 楼号为:" + s.getBulidingnumber() + "面积为:" + s.getArea() + "入住人数为:" + s.getRealitynumber());
chaxunfenzhi(array);
}
}
}
public static void chaxunfenzhi(List<dorm> array) {
Scanner sc = new Scanner(System.in);
System.out.println("继续查询房间请按1,退出请按0");
String f = sc.next();
switch (f) {
case "1":
System.out.println("继续查询房间");
chaxun();
break;
case "0":
System.out.println("退出查询");
mainfenzhi(array);
break;
default:
System.out.println("请输入正确的数字!");
chaxunfenzhi(array);
break;
}
}
public static void paixu() {
List<dorm> array = duqu();
System.out.println("按照已入住人数进行排序");
Collections.sort(array);
liulan();
}
public static void save(List<dorm> array) {
try (
ObjectOutputStream bos = new ObjectOutputStream(new FileOutputStream("D:\\Java lianxi\\keshe\\keshe\\save"))
) {
bos.writeObject(array);
System.out.println("保存成功!");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static List<dorm> duqu() {
try (
ObjectInputStream bow = new ObjectInputStream(new FileInputStream("D:\\Java lianxi\\keshe\\keshe\\save"))
) {
List<dorm> array = (List<dorm>) bow.readObject();
System.out.println("读取成功!");
return array;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void zhuijia() {
List<dorm> array = duqu();
Scanner sc = new Scanner(System.in);
System.out.println("请输入楼号");
String bulidingnumber = sc.nextLine();
System.out.println("请输入房间号");
String roomnumber = sc.nextLine();
System.out.println("请输入面积");
double area = sc.nextInt();
System.out.println("请输入所容纳人数");
int themaxnumber = sc.nextInt();
System.out.println("请输入入住人数");
int realitynumber = sc.nextInt();
dorm s = new dorm();
s.setBulidingnumber(bulidingnumber);
s.setRoomnumber(roomnumber);
s.setArea(area);
s.setThemaxnumber(themaxnumber);
s.setRealitynumber(realitynumber);
array.add(s);
System.out.println("录入宿舍信息成功!");
lurufenzhi(array);
}
}