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人 空宿舍 ***********************************************************
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/288993.html