1、定义公寓类,类名:RoomInformation,其中包括五个私有变量(roomno,stunno1,stunno2,stunno3,stunno4,hygienescore)。
各成员的含义如下:
变量 roomno 为字符串类型 String,最长八位,用于存储宿舍号(例如:9#502表示9栋502宿舍)。
变量 stunno1,stunno2、stunno3、stunno4 为字符串类型 String,用于存储学生的学号,长度8位(如果某个学号为空,表示没有数值,代表该宿舍空余一个床位;如果四个学号都为空,表示该宿舍为空宿舍)。
变量hygienescore为int 类型,用于存储宿舍的卫生评分,初始值为0,数值范围0——100;
卫生评价等级:90分(含90分)以上为优秀,80分(含80分)以上为良好、60分(含60分)以上为合格、60分以下为不合格。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的方法。
2、赋初值方法包括五个参数,用于为变量(roomno,stunno1,stunno2,stunno3,stunno4,hygienescore)赋值。
package Room; public class RoomInformation { String roomno; //宿舍号最长八位 String stunno1 ; //学号,长度8位 String stunno2 ; String stunno3 ; String stunno4 ; int hygienescore = 0; //卫生评分 public RoomInformation(String roomno, String stunno1, String stunno2, String stunno3, String stunno4, int hygienescore) { this.roomno = roomno; this.stunno1 = stunno1; this.stunno2 = stunno2; this.stunno3 = stunno3; this.stunno4 = stunno4; this.hygienescore = hygienescore; } public RoomInformation( ) { } public void setRoomno(String roomno) { this.roomno = roomno; } public void setS1(String stunno1) { this.stunno1 = stunno1 ; } public void setS2(String stunno2) { this.stunno2 = stunno2; } public void setS3(String stunno3) { this.stunno3 = stunno3; } public void setS4(String stunno4) { this.stunno4 = stunno4; } public void setH(int hygienescore) { this.hygienescore = hygienescore; } public String getRoom() { return roomno; } public String getS1() { return stunno1; } public String getS2() { return stunno2; } public String getS3() { return stunno3; } public String getS4() { return stunno4; } public int getH() { return hygienescore; } }
package Room; import java.util.ArrayList; import java.util.Scanner; public class RoomManagement { static Scanner sc = new Scanner(System.in); static ArrayList <RoomInformation> list = new ArrayList<>(); public static int n = 0 ; //主函数 public static void main(String [] args) { RoomInformation a = new RoomInformation("9#101","001","002","003","004",0); list.add(a); RoomInformation b = new RoomInformation("9#102","005","006","007","008",0); list.add(b); RoomInformation c = new RoomInformation("9#103","009","010",null,null,0); list.add(c); RoomInformation d = new RoomInformation("9#104",null,null,null,"011",0); list.add(d); RoomInformation e = new RoomInformation("9#105","012","013","014","015",0); list.add(e); RoomInformation f = new RoomInformation("9#106","016","017","018","019",0); list.add(f); RoomInformation g = new RoomInformation("9#107",null,null,null,null,0); list.add(g); RoomInformation h = new RoomInformation("9#108",null,null,null,null,0); list.add(h); RoomInformation j = new RoomInformation("9#109",null,null,null,null,0); list.add(j); RoomInformation k = new RoomInformation("9#110",null,null,null,null,0); list.add(k); while(true) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); 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("**********************************************************"); String str = sc.next(); switch(str) { case "1" -> Show(list); case "2" -> Add(list); case "3" -> Updata(list); case "4" -> Score(list); case "5" -> Find(list); default -> System.out.println("该选项不存在"); } } } //宿舍查询 public static void Show(ArrayList <RoomInformation> list) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println("***********************************************************"); System.out.println(" 宿舍详细信息列表"); for(int i = 0 ; i < list.size(); i++) System.out.println(i+1 + "、" + list.get(i).roomno + " " + num(list.get(i)) + "人 " + IF(list.get(i))); System.out.println("***********************************************************"); } //安排新宿舍 public static void Add(ArrayList <RoomInformation> list) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 安排新宿舍"); System.out.println("***********************************************************"); System.out.println(" 空宿舍详细信息列表"); for(int i = 0 ; i<list.size(); i++) { int j = 1 ; if(num(list.get(i)) == 0) { System.out.println(j + "、" + list.get(i).roomno + " " + num(list.get(i)) + "人 " + IF(list.get(i))); j++; } } System.out.println("请输入新宿舍号:XXXXX"); System.out.println("***********************************************************"); String room = sc.next(); RoomInformation r = new RoomInformation(); r.setRoomno(room); int index = address(r); //索引 r = list.get(index); if(IF(r).equals("空宿舍")) { if(onlyq(r)) //新寝室 { list.add(r); } System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 安排新宿舍"); System.out.println("***********************************************************"); System.out.println(" 新宿舍号:" + r.roomno); System.out.println(" 1、床位1:" + r.stunno1); System.out.println(" 2、床位2:" + r.stunno2); System.out.println(" 3、床位3:" + r.stunno3); System.out.println(" 4、床位4:" + r.stunno4); System.out.println("***********************************************************"); int sum = 1; while(true) { String id = sc.next(); if(id.equals("END")) { return ; } if(only(id)) //没出现过得学号 { RoomInformation a = list.get(index); if(sum == 1) a.setS1(id); if(sum == 2) a.setS2(id); if(sum == 3) a.setS3(id); if(sum == 4) a.setS4(id); sum++; }else { System.out.println("该学生已分配宿舍"); } if(sum == 5) { System.out.println("该宿舍已满"); return; } } } else{ System.out.println("该宿舍不是空宿舍,无法安排新生"); } } //、调整宿舍 public static void Updata(ArrayList <RoomInformation> list) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 调整宿舍"); System.out.println("***********************************************************"); System.out.println(" 有空床位宿舍详细信息列表"); int j = 1 ; for(int i = 0 ; i<list.size(); i++) { if(num(list.get(i)) > 0 && num(list.get(i)) < 4) { System.out.println(j + "、" + list.get(i).roomno + " " + num(list.get(i)) + "人 " + IF(list.get(i))); j++; } } System.out.println(" 请输入待调整宿舍号:XXXXX"); System.out.println("***********************************************************"); String room = sc.next(); RoomInformation r = new RoomInformation(); r.setRoomno(room); int index = address(r); //索引 r = list.get(index); if(num(r) > 0 && num(r) < 4) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 调整宿舍"); System.out.println("***********************************************************"); System.out.println(" 待调整宿舍号:"+ r.roomno); System.out.println(" 1、床位1:" + r.stunno1); System.out.println(" 2、床位2:" + r.stunno2); System.out.println(" 3、床位3:" + r.stunno3); System.out.println(" 4、床位4:" + r.stunno4); System.out.println("***********************************************************"); int sum = num(list.get(index)); //已有人数 sum++; while(true) { String id = sc.next(); if(id.equals("END")) { return ; } if(only(id)) //没出现过得学号 { RoomInformation a = list.get(index); if(sum == 1) a.setS1(id); if(sum == 2) a.setS2(id); if(sum == 3) a.setS3(id); if(sum == 4) a.setS4(id); sum++; }else { System.out.println("该学生已分配宿舍"); } if(sum == 5) { System.out.println("该宿舍已满"); return; } } } else { System.out.println("该宿舍没有空床位,无法调整"); } } //宿舍卫生评价 public static void Score(ArrayList <RoomInformation> list) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 宿舍卫生宿舍"); System.out.println("***********************************************************"); System.out.println(" 请输入待评价宿舍号:XXXXX"); System.out.println("***********************************************************"); while(true) { String room = sc.next(); RoomInformation r = new RoomInformation(); r.setRoomno(room); int index = address(r); //索引 r = list.get(index); if(IF(r).equals("空宿舍")) { System.out.println("该宿舍为空宿舍"); } else { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 宿舍卫生评价"); System.out.println("***********************************************************"); System.out.println(" 宿舍号:" + r.roomno); System.out.println(" 1、床位1:" + r.stunno1); System.out.println(" 2、床位2:" + r.stunno2); System.out.println(" 3、床位3:" + r.stunno3); System.out.println(" 4、床位4:" + r.stunno4); System.out.println(" 输入宿舍卫生评价分数:XXXXXXX"); System.out.println("***********************************************************"); int score = sc.nextInt(); if(score>=0 && score <= 100) { r.setH(score); } else { System.out.println("输入错误"); } break; } } } //卫生检查情况查询 public static void Find(ArrayList <RoomInformation> list) { System.out.println("***********************************************************"); System.out.println(" 石家庄铁道大学"); System.out.println(" 学生公寓管理系统v2022"); System.out.println(" 卫生检查情况查询"); System.out.println("***********************************************************"); System.out.println(" 宿舍卫生检查情况信息"); for(int i = 0 ; i < list.size(); i++) System.out.println(i+1 + "、" + list.get(i).roomno + " " + list.get(i).hygienescore + " " + YES(list.get(i))); System.out.println("***********************************************************"); } //人数情况 public static int num(RoomInformation a) { int j = 0; if(a.stunno1 != null) j++; if(a.stunno2 != null) j++; if(a.stunno3 != null) j++; if(a.stunno4 != null) j++; return j; } //是否满人 public static String IF(RoomInformation a) { if(num(a) == 4) { return "已满"; } if(num(a) == 3) { return "空1人"; } if(num(a) == 2) { return "空2人"; } if(num(a) == 1) { return "空3人"; } return "空宿舍"; } //学号判重 public static boolean only(String id) { for(int i = 0 ; i < list.size() ;i ++) { if(id.equals( list.get(i).stunno1) || id.equals( list.get(i).stunno2) || id.equals( list.get(i).stunno3) || id.equals( list.get(i).stunno4)) { return false; } } return true; } //寝室判重 public static boolean onlyq(RoomInformation r) { for(int i = 0 ; i< list.size(); i++) { if(r.roomno.equals( list.get(i).roomno)) { return false; } } return true; } //索引 public static int address(RoomInformation r) { for(int i = 0 ; i< list.size(); i++) { if(r.roomno.equals( list.get(i).roomno)) { return i; } } return 0; } //寝室是否及格 public static String YES(RoomInformation r) { if(r.hygienescore >= 90) return "优秀"; if(r.hygienescore < 90 && r.hygienescore >=80) return "良好"; if(r.hygienescore < 80 && r.hygienescore >= 60) return "及格"; return "不合格"; } }
输出演示
*********************************************************** 石家庄铁道大学 学生公寓管理系统v2022 *********************************************************** 1、宿舍查询 2、安排新宿舍 3、调整宿舍 4、宿舍卫生评价 5、卫生检查情况查询 ********************************************************** 1 *********************************************************** 石家庄铁道大学 学生公寓管理系统v2022 *********************************************************** 宿舍详细信息列表 1、9#101 4人 已满 2、9#102 4人 已满 3、9#103 2人 空2人 4、9#104 1人 空3人 5、9#105 4人 已满 6、9#106 4人 已满 7、9#107 0人 空宿舍 8、9#108 0人 空宿舍 9、9#109 0人 空宿舍 10、9#110 0人 空宿舍 ***********************************************************