石家庄铁道大学学生公寓管理系统
上周五,王建民老师给我们组织了开学第一测考试,让我们完成一个公寓管理系统。由于自己暑假对于java学习的不认真导致自己对于该程序的编写有点卡壳,某些功能不能完美实现,在课下我又进行了改正,但我感觉代码有点混乱,希望能有人帮忙改正一下。
题目的要求如下:
石家庄铁道大学公寓管理系统
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)赋值。
二、 功能要求:(10分)
该系统完成石家庄铁道大学学生公寓管理的简单功能,定义RoomManagement类完成下列功能。
1、利用数组实现至少存储十个宿舍的基本信息; (要求十条记录中包含三条空宿舍信息(即只有宿舍号,四个学号为空),三条床位空信息(即,四个学号不全为空))。(1分)
2、宿舍管理系统的主界面如下图所示:(1分)
①界面要求;(0.5分)
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
***********************************************************
1、宿舍查询
2、安排新宿舍
3、调整宿舍
4、宿舍卫生评价
5、卫生检查情况查询
**********************************************************
②功能说明
输入数字1-6执行相应的功能,输入其他数字提示错误信息(该选项不存在),并返回主界面。(0.5分)
2、宿舍信息查询功能操作流程:(2分)
①在主界面选择“1、宿舍查询”功能后,进入“宿舍查询”界面,显示所有宿舍的基本信息,如下图所示:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
***********************************************************
宿舍详细信息列表
1、9#101 4人 已满
2、9#102 4人 已满
3、9#103 3人 空1人
4、9#104 2人 空1人
5、9#105 1人 空3人
6、9#106 4人 已满
7、9#107 0人 空宿舍
8、9#108 0人 空宿舍
9、9#109 0人 空宿舍
…………………….
**********************************************************
②至少显示10条宿舍信息(不足10条扣除0.5分);
③无法按照图示样式显示宿舍信息扣除0.5分;
④无法自动判断宿舍状态信息(已满、空1人,空宿舍等状态信息)扣除0.5分;
⑤缺少空宿舍或者空床位信息扣除0.5分。
3、安排新宿舍功能操作流程:(2分)
①在主界面选择“2、安排新宿舍”功能后,进入“安排新宿舍”界面,显示所有空宿舍的基本信息,如下图所示:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
安排新宿舍
***********************************************************
空宿舍详细信息列表
1、9#107 0人 空宿舍
2、9#108 0人 空宿舍
3、9#109 0人 空宿舍
…………………….
请输入新宿舍号:XXXXX
**********************************************************
提示用户输入空宿舍号:
②用户输入宿舍号后,如果该宿舍不是空宿舍,则提示错误信息“该宿舍不是空宿舍,无法安排新生”。(0.5分)
③用户输入宿舍号正确如下图所示:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
安排新宿舍
***********************************************************
新宿舍号:
1、床位1:XXXXX(学号1)
2、床位2:XXXXX(学号2)
3、床位3:XXXXX(学号3)
4、床位4:XXXXX(学号4)
**********************************************************
④依次输入住宿人的学号,最多输入四个人的学号,输入第四个人的学号完毕,如果是,“提示该宿舍已满”,表示该宿舍分配完毕,返回上一级主页面。(0.5分)
⑤如果输入的学号与前面存储记录中的任一学号重复,提示“该学生已分配宿舍”,清空输入,回到当前界面。(0.5分)
⑥如果在输入学号时输入(END)代表该宿舍分配完成,返回上一级主页面。(0.5分)
4、调整宿舍功能操作流程:(2分)
①在主界面选择“3、调整宿舍”功能后,进入“调整新宿舍”界面,显示所有有空床位的宿舍的基本信息,如下图所示:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
调整宿舍
***********************************************************
有空床位宿舍详细信息列表
1、9#103 3人 空1人
2、9#104 2人 空2人
3、9#105 1人 空3人
…………………….
请输入待调整宿舍号:XXXXX
**********************************************************
提示用户输入空宿舍号:
②用户输入宿舍号后,如果该宿舍不是有空床位的宿舍,则提示错误信息“该宿舍没有空床位,无法调整”。(0.5分)
③用户输入宿舍号正确如下图所示:
显示已有的床位信息:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
调整宿舍
***********************************************************
待调整宿舍号:9#103
1、床位1:XXXXX(学号1)
2、床位2:XXXXX(学号2)
3、床位3:XXXXX(学号3)
4、床位4:20213709叶照心(用户输入)
**********************************************************
④填写空床位的学号信息,判断该宿舍是否已有四人入住;如果是,“提示该宿舍已满”,表示该宿舍分配完毕,返回上一级主页面。(0.5分)
⑤如果输入的学号与前面存储记录中的任一学号重复,提示“该学生已分配宿舍”,清空输入,回到当前界面。(0.5分)
⑥如果在输入学号时输入(END)代表该宿舍分配完成,返回上一级主页面。(0.5分)
5、宿舍卫生评价功能操作流程:(1分)
①在主界面选择“4、宿舍卫生评价”功能后,进入“宿舍卫生评价”界面,如下图所示:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
宿舍卫生宿舍
***********************************************************
请输入待评价宿舍号:XXXXX
**********************************************************
提示用户输入待评价宿舍号:
②用户输入宿舍号后,如果该宿舍是空宿舍,则提示错误信息“该宿舍为空宿舍”,清空输入,回到当前界面。(0.5分)
③用户输入评价宿舍号正确如下图所示:
显示该宿舍人员信息:
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
宿舍卫生评价
***********************************************************
宿舍号:9#103
1、床位1:XXXXX(学号1)
2、床位2:XXXXX(学号2)
3、床位3:XXXXX(学号3)
4、床位4:XXXXX(学号4)
输入宿舍卫生评价分数:XXXXXXX
**********************************************************
④用户输入卫生评价分数,判断输入数值0-100之间,超出范围,提示“输入错误”,清空输入,回到当前界面,输入正确的数值,返回到“宿舍卫生评价”主界面。(0.5分)
6、卫生检查情况查询功能操作流程:(1分)
①在主界面选择“5、卫生检查情况查询”功能后,进入“卫生检查情况查询”界面,按照图示样式显示宿舍卫生情况信息: (1分)
***********************************************************石家庄铁道大学
学生公寓管理系统v2022
卫生检查情况查询
***********************************************************
宿舍卫生检查情况信息
1、9#101 50 不合格
2、9#102 90 优秀
3、9#103 85 良好
4、9#104 75 合格
5、9#105 65 合格
6、9#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(); } }
以上是我最新修改的代码,其实这个代码还有很多需要修改的地方,比如说对于数据的储存,将静态转化为动态,我还要继续修改该代码。

浙公网安备 33010602011771号