石家庄铁道大学学生公寓管理系统

上周五,王建民老师给我们组织了开学第一测考试,让我们完成一个公寓管理系统。由于自己暑假对于java学习的不认真导致自己对于该程序的编写有点卡壳,某些功能不能完美实现,在课下我又进行了改正,但我感觉代码有点混乱,希望能有人帮忙改正一下。

题目的要求如下:

石家庄铁道大学公寓管理系统

1定义公寓类,类名:RoomInformation,其中包括个私有变量(roomnostunno1stunno2stunno3stunno4hygienescore)。

各成员的含义如下:

变量 roomno 为字符串类型 String最长八位,用于存储宿舍号例如:9#502表示9502宿舍)。

变量 stunno1stunno2stunno3stunno4 为字符串类型 String,用于存储学生的学号,长度8位(如果某个学号为空,表示没有数值,代表该宿舍空余一个床位;如果四个学号都为空,表示该宿舍为空宿舍)

变量hygienescoreint 类型,用于存储宿舍的卫生评分,初始值为0,数值范围0——100

卫生评价等级:90分(含90分)以上为优秀,80分(含80分)以上为良好、60分(含60分)以上为合格、60分以下为不合格

对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的方法。

2赋初值方法包括个参数,用于为变量roomnostunno1stunno2stunno3stunno4hygienescore)赋值。

 

二、 功能要求:(10分)

 

该系统完成石家庄铁道大学学生公寓管理的简单功能,定义RoomManagement类完成下列功能。

1利用数组实现至少存储宿舍基本信息; 要求十条记录中包含三条空宿舍信息(即只有宿舍号,四个学号为空),三条床位空信息(即,四个学号不全为空))。1分)

2、宿舍管理系统的主界面如下图所示:1分)

①界面要求;(0.5分)

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

***********************************************************

1宿舍查询

2安排新宿舍

3调整宿舍

4、宿舍卫生评价

5、卫生检查情况查询

**********************************************************

 

 

②功能说明

输入数字1-6执行相应的功能,输入其他数字提示错误信息(该选项不存在),并返回主界面。0.5分)

2、宿舍信息查询功能操作流程:(2分)

①在主界面选择“1、宿舍查询”功能后,进入“宿舍查询”界面,显示所有宿舍的基本信息,如下图所示:

 

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

***********************************************************

宿舍详细信息列表

19#101   4人   已满

29#102   4人   已满

39#103   3人 空1

49#104   2人 空1

59#105   1人 空3

69#106   4人   已满

79#107   0人   空宿舍

89#108   0人   空宿舍

99#109   0人   空宿舍

 

…………………….

**********************************************************

②至少显示10条宿舍信息(不足10条扣除0.5分);

③无法按照图示样式显示宿舍信息扣除0.5分;

④无法自动判断宿舍状态信息(已满、空1人,空宿舍等状态信息)扣除0.5分;

⑤缺少空宿舍或者空床位信息扣除0.5分。

 

3、安排新宿舍功能操作流程:(2分)

①在主界面选择“2、安排新宿舍”功能后,进入“安排新宿舍”界面,显示所有空宿舍的基本信息,如下图所示:

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

安排新宿舍

***********************************************************

空宿舍详细信息列表

19#107   0人   空宿舍

29#108   0人   空宿舍

39#109   0人   空宿舍

…………………….

请输入新宿舍号:XXXXX

**********************************************************

提示用户输入空宿舍号:

②用户输入宿舍号后,如果该宿舍不是空宿舍,则提示错误信息“该宿舍不是空宿舍,无法安排新生”。(0.5分)

 

 

 

 

③用户输入宿舍号正确如下图所示:

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

安排新宿舍

***********************************************************

新宿舍号:

1床位1XXXXX(学号1

2床位2XXXXX(学号2

3床位3XXXXX(学号3

4床位4XXXXX(学号4

 

**********************************************************

依次输入住宿人的学号,最多输入四个人的学号,输入第四个人的学号完毕,如果是,“提示该宿舍已满”,表示该宿舍分配完毕,返回上一级主页面。(0.5分)

如果输入的学号与前面存储记录中的任一学号重复,提示“该学生已分配宿舍”,清空输入,回到当前界面。(0.5分)

⑥如果在输入学号时输入END代表该宿舍分配完成,返回上一级主页面。(0.5分)

 

4、调整宿舍功能操作流程:(2分)

①在主界面选择“3、调整宿舍”功能后,进入“调整新宿舍”界面,显示所有有空床位的宿舍的基本信息,如下图所示:

 

 

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

调整宿舍

***********************************************************

有空床位宿舍详细信息列表

19#103   3人   空1

29#104   2人   空2

39#105   1人   空3

…………………….

请输入待调整宿舍号:XXXXX

**********************************************************

提示用户输入空宿舍号:

②用户输入宿舍号后,如果该宿舍不是有空床位的宿舍,则提示错误信息“该宿舍没有空床位,无法调整”。(0.5分)

③用户输入宿舍号正确如下图所示:

显示已有的床位信息:

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

调整宿舍

***********************************************************

待调整宿舍号:9#103

1床位1XXXXX(学号1

2床位2XXXXX(学号2

3床位3XXXXX(学号3

4床位420213709叶照心(用户输入)

 

**********************************************************

填写空床位的学号信息,判断该宿舍是否已有四人入住;如果是,“提示该宿舍已满”,表示该宿舍分配完毕,返回上一级主页面。(0.5分)

如果输入的学号与前面存储记录中的任一学号重复,提示“该学生已分配宿舍”,清空输入,回到当前界面。(0.5分)

⑥如果在输入学号时输入END代表该宿舍分配完成,返回上一级主页面。(0.5分)

 

5、宿舍卫生评价功能操作流程:(1分)

①在主界面选择“4、宿舍卫生评价”功能后,进入“宿舍卫生评价”界面,如下图所示:

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

宿舍卫生宿舍

***********************************************************

请输入待评价宿舍号:XXXXX

**********************************************************

提示用户输入待评价宿舍号:

②用户输入宿舍号后,如果该宿舍是空宿舍,则提示错误信息“该宿舍为空宿舍”,清空输入,回到当前界面。(0.5分)

③用户输入评价宿舍号正确如下图所示:

 

显示该宿舍人员信息:

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

宿舍卫生评价

***********************************************************

宿舍号:9#103

1床位1XXXXX(学号1

2床位2XXXXX(学号2

3床位3XXXXX(学号3

4床位4XXXXX(学号4

 

输入宿舍卫生评价分数:XXXXXXX

**********************************************************

用户输入卫生评价分数,判断输入数值0-100之间,超出范围,提示“输入错误”,清空输入,回到当前界面,输入正确的数值,返回到“宿舍卫生评价”主界面。(0.5分)

 

6、卫生检查情况查询功能操作流程:(1分)

 

①在主界面选择“5卫生检查情况查询”功能后,进入“卫生检查情况查询”界面,按照图示样式显示宿舍卫生情况信息: (1分)

 

 

 

 

 

***********************************************************石家庄铁道大学

学生公寓管理系统v2022

卫生检查情况查询

***********************************************************

宿舍卫生检查情况信息

19#101   50   不合格

29#102    90   优秀

39#103   85   良好

49#104  75   合格

59#105  65   合格

69#106   72   合格

 

…………………….

**********************************************************

②未根据分值正确显示卫生等级扣除0.5分。

 

代码如下:

首先是RoomInformation公寓类

import java.util.Scanner;
public class RoomInformation {
    Scanner sc=new Scanner(System.in);
    private String roomno;//宿舍号
    private String stunno1;//学号1
    private String stunno2;//学号2
    private String stunno3;//学号3
    private String stunno4;//学号4
    private int hygienescore;//卫生评价分数
    public RoomInformation() {
    }
    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 String getRoomno() {
        return roomno;
    }
    public void setRoomno(String roomno) {
        this.roomno = roomno;
    }
    public String getStunno1() {
        return stunno1;
    }
    public void setStunno1(String stunno1) {
        this.stunno1 = stunno1;
    }
    public String getStunno2() {
        return stunno2;
    }
    public void setStunno2(String stunno2) {
        this.stunno2 = stunno2;
    }
    public String getStunno3() {
        return stunno3;
    }
    public void setStunno3(String stunno3) {
        this.stunno3 = stunno3;
    }
    public String getStunno4() {
        return stunno4;
    }
    public void setStunno4(String stunno4) {
        this.stunno4 = stunno4;
    }
    public int getHygienescore() {
        return hygienescore;
    }
    public void setHygienescore(int hygienescore) {
        this.hygienescore = hygienescore;
    }
    

}

第二部分是RoomManagement类

package test;
import java.util.Scanner;
public class RoomManagement {
    Scanner sc=new Scanner (System.in);
    private RoomInformation []rooms= {null,null,null,null,null,null,null,null,null,null};//创建一个静态数组用来储存数据
    {
        rooms[0]=new RoomInformation("9#101","20213882","20213883","20213884","20213885",50);
        rooms[1]=new RoomInformation("9#102","20213892","20213893","20213894","20213895",90);
        rooms[2]=new RoomInformation("9#103","20214563","20214564","20214568",null,85);
        rooms[3]=new RoomInformation("9#104","20215698","20215699",null,null,75);
        rooms[4]=new RoomInformation("9#105","20213662",null,null,null,65);
        rooms[5]=new RoomInformation("9#106","20213896","20213897","20213898","20213899",72);
        rooms[6]=new RoomInformation("9#107",null,null,null,null,0);
        rooms[7]=new RoomInformation("9#108",null,null,null,null,0);
        rooms[8]=new RoomInformation("9#109",null,null,null,null,0);
        rooms[9]=new RoomInformation("9#111","20213666","20213667","20213668","20213669",96);
    }
    
    public void check()//宿舍查询
    {
        System.out.println("*************************************石家庄");
        System.out.println("               铁道大学                     ");
        System.out.println("           学生公寓管理系统v2022               ");
        System.out.println("  *************************************  ");
        System.out.println("             宿舍详细信息列表                  ");
        
        for(int i=0;i<10;i++)//对宿舍人数进行判断
        {
            int cout=0;
            if(rooms[i].getStunno1()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno2()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno3()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno4()!=null)
            {
                cout++;
            }
            if(cout==4)
            {
                System.out.println("       "+(i+1)+"、 "+rooms[i].getRoomno()+" "+cout+"人   已满");
            }
            else if(cout>0)
            {
                System.out.println("       "+(i+1)+"、 "+rooms[i].getRoomno()+" "+cout+"人  空"+(4-cout)+"人");
            }
            else
            {
                System.out.println("       "+(i+1)+"、 "+rooms[i].getRoomno()+" "+cout+"人  空宿舍");
            }
        }
        menu();//返回菜单
        
    }
    public void pan(RoomInformation []rooms,int n)//对学号是否重复进行判断
    {
        int cout=0;
        for(int j=0;j<n;j++) {
            while(true) {
                String id = sc.next();
                int index = -1;
                for (int i = 0; i < rooms.length; i++) {
                    RoomInformation ri = rooms[i];
                    if (id.equals(ri.getStunno1()) || id.equals(ri.getStunno2()) || id.equals(ri.getStunno3())
                            || id.equals(ri.getStunno4())) {
                        index = i;
                        break;
                    }
                }
                if (index == -1) {
                    RoomInformation ri = new RoomInformation();
                    if (j == 0) {
                        ri.setStunno1(id);
                        rooms[j].setStunno1(id);
                        cout++;
                    }
                    if (j == 1) {
                        ri.setStunno2(id);
                        rooms[j].setStunno2(id);
                        cout++;
                   
                    }
                    if (j == 2) {
                        ri.setStunno3(id);
                        rooms[j].setStunno3(id);
                        cout++;
                       
                    }
                    if (j == 3) {
                        ri.setStunno4(id);
                        rooms[j].setStunno4(id);
                        cout++;
                       
                    }
                    break;
                } else {
                    System.out.println("学号重复!请重新输入该学号:");
                }
            }
        }
        System.out.println("该宿舍已满!");
    }
    public void arrange()//安排新宿舍
    {
        System.out.println("*************************************石家庄");
        System.out.println("               铁道大学                     ");
        System.out.println("           学生公寓管理系统v2022               ");
        System.out.println("               安排新宿舍                    ");
        System.out.println("  *************************************  ");
        System.out.println("             空宿舍详细信息列表                  ");
        int x=0;
        for(int i=0;i<10;i++)
        {
            if(rooms[i].getStunno1()==null&&rooms[i].getStunno2()==null&&rooms[i].getStunno3()==null&&rooms[i].getStunno4()==null)
            {
                x++;
                    System.out.println("       "+x+"、 "+rooms[i].getRoomno()+"  0人     空宿舍");
            }
        }
        System.out.println("            请输入新宿舍号:                ");
        System.out.println("  *************************************  ");
        String score=sc.next();
        int cout=0;
        for(int i=0;i<10;i++)
        {
            int index=i;
            if(rooms[i].getStunno1()==null&&rooms[i].getStunno2()==null&&rooms[i].getStunno3()==null&&rooms[i].getStunno4()==null)
            {
                
                if(rooms[i].getRoomno().equals(score))
                {

                    System.out.println("*************************************石家庄");
                    System.out.println("               铁道大学                     ");
                    System.out.println("           学生公寓管理系统v2022               ");
                    System.out.println("               安排新宿舍                    ");
                    System.out.println("  *************************************  ");
                    System.out.println("                新宿舍号:                     ");
                    System.out.println("           1、床位1:(学号1)                    ");
                    System.out.println("           2、床位2:(学号2)                    ");
                    System.out.println("           3、床位3:(学号3)                    ");
                    System.out.println("           4、床位4:(学号4)                    ");
                    System.out.println("  *************************************  ");
                    System.out.println("            请输入住宿人的学号              ");
                    pan(rooms,4);
                    break;
                }
                }
            if(cout==0){
                System.out.println("该宿舍不是空宿舍,无法安排新生");
                break;
            }
        
        }
        menu();    
    }
    public void adjustment()//调整宿舍
    {
        System.out.println("*************************************石家庄");
        System.out.println("               铁道大学                     ");
        System.out.println("           学生公寓管理系统v2022               ");
        System.out.println("               调整宿舍                   ");
        System.out.println("  *************************************  ");
        System.out.println("               有空床位宿舍详细信息列表            ");
        int x=0;
        for(int i=0;i<10;i++)
        {
            int cout=0;
            if(rooms[i].getStunno1()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno2()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno3()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno4()!=null)
            {
                cout++;
            }
            if(cout<4&&cout>0)
            {
                x++;
                System.out.println("       "+x+"、 "+rooms[i].getRoomno()+" "+cout+"人  空"+(4-cout)+"人");
            }
        }
        System.out.println("            请输入待调整宿舍号:                ");
        System.out.println("  *************************************  ");
        String score=sc.next();
        for(int i=0;i<10;i++)
        {
            int cout=0;
            if(rooms[i].getStunno1()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno2()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno3()!=null)
            {
                cout++;
            }
            if(rooms[i].getStunno4()!=null)
            {
                cout++;
            }
            if(rooms[i].getRoomno().equals(score))
            {
             switch(cout)
             {
             case 0 :
                 System.out.println("该宿舍已满,请重新输入");
                 break;
             case 1 :
                 System.out.println("该宿舍有三个空位");
                 System.out.println("请输入学生学号");
                 pan(rooms,3);
                 break;
             case 2 :
                 System.out.println("该宿舍有两个空位");
                 System.out.println("请输入学生学号");
                 pan(rooms,2);
                 break;
             case 3:
                 System.out.println("该宿舍有一个空位");
                 System.out.println("请输入学生学号");
                 pan(rooms,1);
                 break; 
             }
            }
        }
        menu();
    }
    public void pingjia()//宿舍卫生评价
    {
        System.out.println("*************************************石家庄");
        System.out.println("               铁道大学                     ");
        System.out.println("           学生公寓管理系统v2022               ");
        System.out.println("               宿舍卫生评价                   ");
        System.out.println("  *************************************  ");
        System.out.println("               请输入待评价的宿舍号                ");
        System.out.println("  *************************************  ");
        String score=sc.next();
        for(int i=0;i<10;i++)
        {
            if(rooms[i].getRoomno().equals(score))
            {
                int cout=0;
                if(rooms[i].getStunno1()!=null)
                {
                    cout++;
                }
                if(rooms[i].getStunno2()!=null)
                {
                    cout++;
                }
                if(rooms[i].getStunno3()!=null)
                {
                    cout++;
                }
                if(rooms[i].getStunno4()!=null)
                {
                    cout++;
                }
                if(cout==0)
                {
                    System.out.println("该宿舍为空宿舍");
                    pingjia();
                }
                else {
                    System.out.println("*************************************石家庄");
                    System.out.println("               铁道大学                     ");
                    System.out.println("           学生公寓管理系统v2022               ");
                    System.out.println("               宿舍卫生评价                   ");
                    System.out.println("  *************************************  ");
                    System.out.println("               宿舍号:"+rooms[i].getRoomno());
                    System.out.println("           1、床位1:"+rooms[i].getStunno1());
                    System.out.println("           2、床位2:"+rooms[i].getStunno2());
                    System.out.println("           3、床位3:"+rooms[i].getStunno3());
                    System.out.println("           4、床位4:"+rooms[i].getStunno4());
                    System.out.println("           输入宿舍卫生评价分数:                ");
                    System.out.println("  *************************************  ");
                    int score1=sc.nextInt();
                    if(score1>100||score1<0)
                    {
                        System.out.println("输入错误");
                        return ;
                    }
                    else {
                        rooms[i].setHygienescore(score1);
                        menu();
                    }
                    
                }
            }
        }
        menu();
    }
    public void chaxun()//卫生检查情况查询
    {
        System.out.println("*************************************石家庄");
        System.out.println("               铁道大学                     ");
        System.out.println("           学生公寓管理系统v2022               ");
        System.out.println("               卫生检查情况查询                   ");
        System.out.println("  *************************************  ");
        System.out.println("              宿舍卫生检查情况信息                 ");
        for(int i=0;i<10;i++)
        {
            if(rooms[i].getHygienescore()>=90)
            {
                System.out.println("            "+(i+1)+"、 "+rooms[i].getHygienescore()+"   优秀");
            }
            else if(rooms[i].getHygienescore()<90&&rooms[i].getHygienescore()>=80)
            {
                System.out.println("            "+(i+1)+"、 "+rooms[i].getHygienescore()+"   良好");
            }
            else if(rooms[i].getHygienescore()<80&&rooms[i].getHygienescore()>=60)
            {
                System.out.println("            "+(i+1)+"、 "+rooms[i].getHygienescore()+"   合格");
            }
            else {
                System.out.println("            "+(i+1)+"、 "+rooms[i].getHygienescore()+"   不合格");
            }
        }
        
        System.out.println("  *************************************  ");
        menu();
    }
    public void menu()//主菜单
    {
        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();
         char menu1=str.charAt(0);
         switch(menu1)
         {
         case '1':check();break; 
         case'2': arrange();break;
         case'3':adjustment();break;
         case'4':pingjia();break;
         case'5': chaxun();break;
             default :System.out.println("该选项不存在");
         }
        
    }
    public static void main (String []args)
    {
        RoomManagement u=new RoomManagement();
        u.menu();
    }
    

}

以上是我最新修改的代码,其实这个代码还有很多需要修改的地方,比如说对于数据的储存,将静态转化为动态,我还要继续修改该代码。

 

 

posted @ 2022-09-06 20:07  伽澄  阅读(137)  评论(0)    收藏  举报