package shijuan;
import java.util.*;
public class RoomManagement {
    static     RoomInformation r[]=new RoomInformation[10];
    static String rens[]=new String[10];
    //主界面
    static void zjm() {
        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("********************************");
    }
        //宿舍详细信息显示
        static void fuction1()
        {
            System.out.println("********************************");
            System.out.println("    石家庄铁道大学");
            System.out.println("    学生公寓管理系统v2022");
            System.out.println("********************************");
            System.out.println("    宿舍详细信息列表");
            int i;
            for(i=0;i<10;i++)
            {
                if(r[i].getxh1()==null)
                    {
                    System.out.printf("\t%d、9#10%d   0人   空宿舍\n",i+1,i);
                    continue;
                    }
                else if(r[i].getxh2()==null)
                    System.out.printf("\t%d、9#10%d   1人   空3人\n",i+1,i);
                else if(r[i].getxh3()==null)
                    System.out.printf("\t%d、9#10%d   2人   空2人\n",i+1,i);
                else if(r[i].getxh4()==null)
                    System.out.printf("\t%d、9#10%d   3人   空1人\n",i+1,i);
                else System.out.printf("\t%d、9#10%d   4人   已满\n",i+1,i);
            }
            System.out.println("********************************");
        }
    
    //安排新宿舍页面
    static void apxss() {
        System.out.println("********************************");
        System.out.println("\t石家庄铁道大学");
        System.out.println("\t学生公寓管理系统v2022");
        System.out.println("\t安排新宿舍");
        System.out.println("********************************");
        
    }
    
    //调整宿舍页面
    static void tzss() {
        System.out.println("********************************");
        System.out.println("        石家庄铁道大学");
        System.out.println("    学生公寓管理系统v2022");
        System.out.println("          调整宿舍");
        System.out.println("********************************");
        System.out.println("    有空床位宿舍详细信息列表");
        
        
    }
    //宿舍卫生评价页面
    static void wspj() {
        System.out.println("********************************");
        System.out.println("        石家庄铁道大学");
        System.out.println("    学生公寓管理系统v2022");
        System.out.println("        宿舍卫生评价");
        System.out.println("********************************");
        //System.out.println("        请输入待评价宿舍号:XXXXX");
        //System.out.println("********************************");
        }
    //卫生检查情况查询页面
    static void wscx() {
        System.out.println("********************************");
        System.out.println("        石家庄铁道大学");
        System.out.println("    学生公寓管理系统v2022");
        System.out.println("       卫生检查情况查询");
        System.out.println("********************************");
        System.out.println("    宿舍卫生检查情况信息");
        
    }
    
    //设置宿舍基础信息
    static void seti()
    {
        r[0]=new RoomInformation();
        r[0].setall("9#100","20214005","20214006","20214007","20214008",0);
        r[1]=new RoomInformation();
        r[1].setall("9#101","20214009","20214010","20214011","20214012",0);
        r[2]=new RoomInformation();
        r[2].setall("9#102","20214013","20214014","20214015",null,0);
        r[3]=new RoomInformation();
        r[3].setall("9#103","20214016","20214017",null,null,0);
        r[4]=new RoomInformation();
        r[4].setall("9#104","20214018",null,null,null,0);
        r[5]=new RoomInformation();
        r[5].setall("9#105","20214019"," 20214020","20214021","20214022",0);
        r[6]=new RoomInformation();
        r[6].setall("9#106",null,null,null,null,0);
        r[7]=new RoomInformation();
        r[7].setall("9#107",null,null,null,null,0);
        r[8]=new RoomInformation();
        r[8].setall("9#108",null,null,null,null,0);
        r[9]=new RoomInformation();
        r[9].setall("9#109",null,null,null,null,0);
        }
    //查人数:
    static int rs(int i) {
        int num=0;
        if(r[i].getxh1()!=null)num++;
        if(r[i].getxh2()!=null)num++;
        if(r[i].getxh3()!=null)num++;
        if(r[i].getxh4()!=null)num++;
        switch(num) {
        case 0:rens[i]="空宿舍";break;
        case 1:rens[i]="空3人";break;
        case 2:rens[i]="空2人";break;
        case 3:rens[i]="空1人";break;
        case 4:rens[i]="已满";break;
        }
        
        return num;
    }
    //设置新生
    static void setxin(int k) {
        Scanner scan=new Scanner(System.in);
        String xss;
        
        int i,j=0;
        
        for(;;) 
        {xss=scan.next();
            System.out.println("\t床位"+(j+1)+":");
            if(xss.equals("END"))break;
            for(i=0;i<10;i++) 
            {
                if(xss.equals(r[i].getxh1())||xss.equals(r[i].getxh2())||xss.equals(r[i].getxh3())||xss.equals(r[i].getxh4()))
                {
                    System.out.println("该学生已被安排宿舍");break;
                }
                
            }
            if(i!=10)continue;
            if(j==0)r[k].setstunno1(xss);
            if(j==1)r[k].setstunno2(xss);
            if(j==2)r[k].setstunno3(xss);
            if(j==3)r[k].setstunno4(xss);
            j++;
            if(j==4) {
                System.out.println("该宿舍已满");break;
            }
            
        }
    }
    //实现安排新宿舍功能操作
    static void ap() 
    {
        Scanner scan=new Scanner(System.in);
        String xinsu;
        int i=0,j;
        for(;;)
        {
            apxss();
            for(i=0,j=1;i<10;i++)//输出空宿舍
            {
                if(rs(i)==0)
                {
                    System.out.println("\t"+j+"、"+r[i].getroomno()+"  0人\t空宿舍");j++;
                }
                
            }
            System.out.println("请输入要安排的宿舍号:");
            xinsu=scan.next();
            if(xinsu.equals("END"))break;
            for(i=0;i<10;i++)//判断输入是否为正确宿舍号
                if(xinsu.equals(r[i].getroomno()))break;
            if(i!=10)
            {
                if(rs(i)!=0)System.out.println("该宿舍不是空宿舍,无法安排新生");
                else 
                {
                    apxss();
                    setxin(i);
                }
            }
            else
            {
                System.out.println(i);
                System.out.println("宿舍号输入错误,请重新输入");continue;
        
            }
        }
        
    }
    //调整新生
    static void tiaoz(int k) {
        Scanner scan=new Scanner(System.in);
        String xss;
        
        int i;
        
        for(;;) 
        {System.out.println("请输入要调整的床位:");
            int l;
            l=scan.nextInt();
            System.out.println("请输入学号");
            xss=scan.next();
            if(xss.equals("END"))break;
            for(i=0;i<10;i++) 
            {
                if(xss.equals(r[i].getxh1())||xss.equals(r[i].getxh2())||xss.equals(r[i].getxh3())||xss.equals(r[i].getxh4()))
                {
                    System.out.println("该学生已被安排宿舍");break;
                }
                
            }
            if(i!=10)continue;
            
            if(l<=4)
            System.out.println("\t床位"+l+":");
            else { System.out.println("输入有误");continue;}
            if(l==1&&r[k].getxh1()==null)r[k].setstunno1(xss);
            if(l==2&&r[k].getxh2()==null)r[k].setstunno2(xss);
            if(l==3&&r[k].getxh3()==null)r[k].setstunno3(xss);
            if(l==4&&r[k].getxh4()==null)r[k].setstunno4(xss);
            if(rs(k)==4) {
                System.out.println("该宿舍已满");break;
            }
            
        }
    }
    //调整宿舍功能实现
    static void tz()
    {
        Scanner scan=new Scanner(System.in);
        String tiao;
        int i=0,j;
        for(;;)
        {
            tzss();
            System.out.println("输出带空铺的宿舍");
            for(i=0,j=1;i<10;i++)//输出带空铺的宿舍
            {
                if(rs(i)==0)
                {
                    System.out.println("\t"+j+"、"+r[i].getroomno()+"  0人\t空宿舍");j++;
                }
                if(rs(i)==1)
                {
                    System.out.println("\t"+j+"、"+r[i].getroomno()+"  1人\t空3人");j++;
                }
                if(rs(i)==2)
                {
                    System.out.println("\t"+j+"、"+r[i].getroomno()+"  2人\t空2人");j++;
                }
                if(rs(i)==3)
                {
                    System.out.println("\t"+j+"、"+r[i].getroomno()+"  3人\t空1人");j++;
                }
            }
            System.out.println("输入待调整宿舍");
            System.out.println("********************************");
            tiao=scan.next();
            if(tiao.equals("END"))break;
            for(i=0;i<10;i++)//判断输入是否为正确宿舍号
                if(tiao.equals(r[i].getroomno()))break;
            if(i!=10)
            {
                if(rs(i)==4)System.out.println("该宿舍没有空床位,无法调整");
                else 
                {
                    tzss();
                    int m=0;
                        System.out.println("\t床位"+(m+1)+"、"+"\t"+r[i].getxh1());m++;
                        System.out.println("\t床位"+(m+1)+"、"+"\t"+r[i].getxh2());m++;
                        System.out.println("\t床位"+(m+1)+"、"+"\t"+r[i].getxh3());m++;
                        System.out.println("\t床位"+(m+1)+"、"+"\t"+r[i].getxh4());m=0;
                        
                    tiaoz(i);
                }
            }
        }
        
        
    }
    //分数与评价对等
    static String fsdd(int i) {
        if(r[i].gethygienescore()<60)return "不合格";
        if(r[i].gethygienescore()<80&&r[i].gethygienescore()>=60)return "合格";
        if(r[i].gethygienescore()>=80&&r[i].gethygienescore()<90)return "良好";
        else return "优秀";
    }
    //宿舍卫生评价
    static void wspj2()
    {
        Scanner scan=new Scanner(System.in);
        wspj();
        System.out.println("请输入待评价宿舍号:");
        System.out.println("********************************");
        String pjh;int fs;
        pjh=scan.next();
        int i;
        for(i=0;i<10;i++)
        {
            if(pjh.equals(r[i].getroomno()))break;
        }
        if(i!=10)
        {
            if(rs(i)==0)System.out.println("该宿舍为空宿舍");
            else 
            {
                wspj();
                System.out.println("1、床位1:\t"+r[i].getxh1());
                System.out.println("2、床位2:\t"+r[i].getxh2());
                System.out.println("3、床位3:\t"+r[i].getxh3());
                System.out.println("4、床位4:\t"+r[i].getxh4());
                for(;;)
                {
                    System.out.println("请输入卫生分数");
                    fs=scan.nextInt();
                    if(fs<100&&fs>0)
                    {
                        r[i].sethygienescore(fs);break;
                    }
                    else 
                    {
                        System.out.println("输入错误");continue;
                    }
                
                }
                
            }
        }
        else System.out.println("宿舍号输入有误");
    }
    //卫生检查情况查询
    static void  wscx2()
    {
        wscx();
        for(int h=0;h<10;h++)
        {
            if(rs(h)!=0)
            System.out.println((h+1)+"、\t"+r[h].getroomno()+"\t"+fsdd(h));
            
        }
        
    }
    //在主函数调用
    public static void main(String [] args)
    {
        seti();
        while(true)
        {
            zjm();
            
            int i;
            Scanner scan=new Scanner(System.in);
            i=scan.nextInt();
            switch(i)
            {
               case 1:
                  fuction1();break;
               case 2:
               
                  ap();
                   break;
               case 3:
                 tz();
                  break;
               case 4:
                 wspj2();
                  break;
               case 5:
                   wscx2();
                   break;
                   case 0:
                       break;
        default:
            System.out.println("该选项不存在");
        }
           if(i==0) break;
        }
    }
}
/*信2105-3班
 * 20214005
 * 赵悦恒*/
package shijuan;
import java.util.*;
public class RoomInformation {
    private String roomno;
    private String stunno1,stunno2,stunno3,stunno4;
    private int hygienescore;
    //读取、设置
    public  void setroomno(String ssh) {
        this.roomno=ssh;
    }
    public String getroomno() {
        return roomno;
    }
    public  void setstunno1(String xh1) {
        this.stunno1=xh1;
    }
    public String getxh1() {
        return stunno1;
    }
    public  void setstunno2(String xh2) {
        this.stunno2=xh2;
    }
    public String getxh2() {
        return stunno2;
    }
    public  void setstunno3(String xh3) {
        this.stunno3=xh3;
    }
    public String getxh3() {
        return stunno3;
    }
    public  void setstunno4(String xh4) {
        this.stunno4=xh4;
    }
    public String getxh4() {
        return stunno4;
    }
    public  void sethygienescore(int fs) {
        this.hygienescore=fs;
    }
    public int gethygienescore() {
        return hygienescore;
    }
    
    public void setall(String roomnum,String stunno1,String stunno2,String stunno3,String stunno4,int hygienescore) {
        this.roomno=roomnum;this.stunno1=stunno1;this.stunno2=stunno2;this.stunno3=stunno3;this.stunno4=stunno4;this.hygienescore=hygienescore;
    }
}