第一次java测试
二、 数据结构要求:(5分)
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分。
这是今天修改后的版本
class RoomInformation {
private String roomno;
private String stunno1;
private String stunno2;
private String stunno3;
private String stunno4;
private int hygienescore;
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 void setroomno(String roomno) {
this.roomno=roomno;
}
public String getroomno() {
return roomno;
}
public void setstunno1(String stunno1) {
this.stunno1=stunno1;
}
public String getstunno1() {
return stunno1;
}
public void setstunno2(String stunno2) {
this.stunno2=stunno2;
}
public String getstunno2() {
return stunno2;
}
public void setstunno3(String stunno3) {
this.stunno3=stunno3;
}
public String getstunno3() {
return stunno3;
}
public void setstunno4(String stunno4) {
this.stunno4=stunno4;
}
public String getstunno4() {
return stunno4;
}
public void sethygienescore(int hygienescore) {
this.hygienescore=hygienescore;
}
public int gethygienescore() {
return hygienescore;
}
}
------------------------------------------------------------------------------
import java.util.Scanner;
public class RoomManagement {
static int sum;
static RoomInformation []a=new RoomInformation[100];
public static void main(String []args) {
sum=0;
RoomInformation b=new RoomInformation("9#101","20213719","20213712","20213781","20213725",0);a[sum++]=b;
RoomInformation c=new RoomInformation("9#102","20213619","20213812","20213881","20213111",0);a[sum++]=c;
RoomInformation d=new RoomInformation("9#103","20213819",null,null,"20213981",0);a[sum++]=d;
RoomInformation e=new RoomInformation("9#104","20213419","20213912","202131881","20213765",0);a[sum++]=e;
RoomInformation f=new RoomInformation("9#105","20213519","20213112",null,"20213481",0);a[sum++]=f;
RoomInformation g=new RoomInformation("9#106","20213319","20213212","20213741","20213789",0);a[sum++]=g;
RoomInformation h=new RoomInformation("9#107","20213219","20213312","20213711","20213781",0);a[sum++]=h;
RoomInformation i=new RoomInformation("9#108",null,null,null,null,0);a[sum++]=i;
RoomInformation j=new RoomInformation("9#109",null,null,null,null,0);a[sum++]=j;
RoomInformation l=new RoomInformation("9#110",null,null,null,null,0);a[sum++]=l;
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("**********************************************************");
System.out.println("请输入操作数");
Scanner sc=new Scanner(System.in);
int o=sc.nextInt();
switch(o) {
case 1:
RoomManagement.show();
break;
case 2:
RoomManagement.newss();
break;
case 3:
RoomManagement.tiaoz();
break;
case 4:
RoomManagement.weisheng();
break;
case 5:
RoomManagement.weis();
break;
default:
System.out.println("该选项不存在");
}
}
}
public static void show() {
int k;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println("***********************************************************");
System.out.println(" 宿舍详细信息列表");
for(k=0;k<sum;k++) {
int i=0;
if(a[k].getstunno1()!=null) i++;
if(a[k].getstunno2()!=null) i++;
if(a[k].getstunno3()!=null) i++;
if(a[k].getstunno4()!=null) i++;
if(i==4) {
System.out.println((k+1)+"、"+a[k].getroomno()+" "+i+"人 "+"已满");
}else if(i<4&&i>0) {
System.out.println((k+1)+"、"+a[k].getroomno()+" "+i+"人 "+"空"+(4-i)+"人");
}
else {
System.out.println((k+1)+"、"+a[k].getroomno()+" "+i+"人 "+"空宿舍");
}
}
}
public static void newss() {
int k;
int i=1;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 安排新宿舍");
System.out.println("***********************************************************");
System.out.println(" 空宿舍详细信息列表");
for(k=0;k<sum;k++) {
if(a[k].getstunno1()==null&&a[k].getstunno2()==null&&a[k].getstunno3()==null&&a[k].getstunno4()==null) {
System.out.println((i++)+"、"+a[k].getroomno()+" "+"0人 "+"空宿舍");
}
}
System.out.print("请输入新宿舍号:");
Scanner sy=new Scanner(System.in);
String str=sy.next();
for(k=0;k<sum;k++) {
if(a[k].getroomno().compareTo(str)==0) {
if(a[k].getstunno1()==null&&a[k].getstunno2()==null&&a[k].getstunno3()==null&&a[k].getstunno4()==null) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 安排新宿舍");
System.out.println("***********************************************************");
System.out.println(" 新宿舍号:"+a[k].getroomno());
System.out.print("1、床位1:");
String sv;
sv=sy.next();
if(sv.equals("END")) {
System.out.println("结束录入");
return;}
else if(pan(sv)==1) {a[k].setstunno1(sv);
}
else if(pan(sv)==0){
System.out.println("该学生已分配宿舍");return;}
System.out.print("2、床位2:");
String st=sy.next();
if(st.equals("END")) {
System.out.println("结束录入");
return;}
if(pan(st)==1) {a[k].setstunno2(st);
}
else if(pan(st)==0){
System.out.println("该学生已分配宿舍");return;}
System.out.println("3、床位3:");
String sq=sy.next();if(sq.equals("END")) {
System.out.println("结束录入");
return;}
if(pan(sq)==1) {a[k].setstunno3(sq);
}
else if(pan(sq)==0){
System.out.println("该学生已分配宿舍");return;}
System.out.println("4、床位4:");
String stw=sy.next();if(stw.equals("END")) {
System.out.println("结束录入");
return;}
if(pan(stw)==1) {a[k].setstunno4(stw);
}
else if(pan(stw)==0){
System.out.println("该学生已分配宿舍");return;}
System.out.println("该宿舍已满");
//System.out.println("");
}
else {
System.out.println("该宿舍不是空宿舍,无法安排新生");
return;
}
}
}
}
public static void tiaoz() {
int k,l=1;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 调整宿舍");
System.out.println("***********************************************************");
System.out.println(" 有空床位宿舍详细信息列表 ");
for(k=0;k<sum;k++) {
if(a[k].getstunno1()!=null&&(a[k].getstunno2()==null||a[k].getstunno3()==null||a[k].getstunno4()==null)) {
int i=0;
if(a[k].getstunno1()!=null) i++;
if(a[k].getstunno2()!=null) i++;
if(a[k].getstunno3()!=null) i++;
if(a[k].getstunno4()!=null) i++;
System.out.println((l++)+"、"+a[k].getroomno()+" "+i+"人 "+"空"+(4-i)+"人");
}
}
System.out.print("请输入待调整宿舍号:");
Scanner sf=new Scanner(System.in);
String str=sf.next();
boolean r=panduan1(str);
int a1=0,a2=0,a3=0;
if(r==true) {
for(k=0;k<sum;k++) {
if(a[k].getroomno().compareTo(str)==0&&(a[k].getstunno2()==null||a[k].getstunno3()==null||a[k].getstunno4()==null)) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 调整宿舍");
System.out.println("***********************************************************");
System.out.println("待调整宿舍号:"+a[k].getroomno());
System.out.println("1、床位1:"+a[k].getstunno1());
if(a[k].getstunno2()!=null) {
System.out.println("2、床位2:"+a[k].getstunno2());}
else {
System.out.println("2、床位2:");
a1=1;
}
if(a[k].getstunno3()!=null) {
System.out.println("3、床位3:"+a[k].getstunno3());}
else {
System.out.println("3、床位3:");
a2=1;
}
if(a[k].getstunno4()!=null) {
System.out.println("4、床位4:"+a[k].getstunno4());}
else {
System.out.println("4、床位4:");
a3=1;
}
System.out.println("请输入你要调整的床位");
if(a1==1) {System.out.print("2、床位2:");
String st=sf.next();
if(st.equals("END")) {
System.out.println("结束调整");
return;
}
if(pan(st)==1) {
a[k].setstunno2(st);
}else{
System.out.println("该学生已分配宿舍");
return;
}}
if(a2==1) {System.out.print("3、床位3:");
String st=sf.next();
if(st.equals("END")) {
System.out.println("结束调整");
return;
}
if(pan(st)==1) {
a[k].setstunno2(st);
}else{
System.out.println("该学生已分配宿舍");
return;
}
}
if(a3==1) {System.out.print("4、床位4:");
String st=sf.next();
if(st.equals("END")) {
System.out.println("结束调整");
return;
}
if(pan(st)==1) {
a[k].setstunno2(st);
}else{
System.out.println("该学生已分配宿舍");
return;
}
}
break;
}
if(k==sum-1)
System.out.println("该宿舍没有空床位,无法调整");
}
}
else System.out.println("该宿舍为空宿舍");
}
public static void weisheng() {
int k;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 宿舍卫生评价");
System.out.println("***********************************************************");
System.out.print("请输入待评价宿舍号:");
Scanner sf=new Scanner(System.in);
String str=sf.next();
System.out.println("**********************************************************");
boolean e=panduan1(str);
if(e==false) {
System.out.println("该宿舍为空宿舍");
return;
}
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 宿舍卫生评价");
System.out.println("***********************************************************");
for(k=0;k<sum;k++) {
if(a[k].getroomno().compareTo(str)==0) {
break;
}
}
System.out.println("宿舍号:"+a[k].getroomno());
System.out.println("1、床位1:"+a[k].getstunno1());
System.out.println("2、床位2:"+a[k].getstunno2());
System.out.println("3、床位3:"+a[k].getstunno3());
System.out.println("4、床位4:"+a[k].getstunno4());
System.out.print("输入宿舍卫生评价分数:");
int y;
while(true) {y=sf.nextInt();
if(y<0||y>100) {
System.out.println("输入错误");
break;
}
else {a[k].sethygienescore(y);
break;}
}
}
public static boolean panduan1(String q) {
int k;
for(k=0;k<sum;k++) {
if(a[k].getroomno().compareTo(q)==0) {
if(a[k].getstunno1()==null&&a[k].getstunno2()==null&&a[k].getstunno3()==null&&a[k].getstunno4()==null) {
return false;
}
}
}
return true;
}
public static void weis() {
int k;
int i=1;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学");
System.out.println(" 学生公寓管理系统v2022");
System.out.println(" 卫生检查情况查询");
System.out.println("***********************************************************");
System.out.println("宿舍卫生检查情况信息");
for(k=0;k<sum;k++) {
if(a[k].getstunno1()!=null) {
if(a[k].gethygienescore()>=90) {
System.out.println(i+"、"+a[k].getroomno()+" "+a[k].gethygienescore()+" 优秀");
i++;
}else if(a[k].gethygienescore()<90&&a[k].gethygienescore()>=80) {
System.out.println(i+"、"+a[k].getroomno()+" "+a[k].gethygienescore()+" 良好");
i++;
}else if(a[k].gethygienescore()<80&&a[k].gethygienescore()>=60) {
System.out.println(i+"、"+a[k].getroomno()+" "+a[k].gethygienescore()+" 合格");
i++;
}else if(a[k].gethygienescore()<60) {
System.out.println(i+"、"+a[k].getroomno()+" "+a[k].gethygienescore()+" 不合格");
i++;
}
}
}
}
public static int pan(String s) {
int k;
for(k=0;k<sum;k++) {
if(a[k].getstunno1()!=null&&a[k].getstunno1().equals(s)) return 0;
if(a[k].getstunno2()!=null&&a[k].getstunno2().equals(s)) return 0;
if(a[k].getstunno3()!=null&&a[k].getstunno3().equals(s)) return 0;
if(a[k].getstunno4()!=null&&a[k].getstunno4().equals(s)) return 0;
}
return 1;
}
}
本次测试的得分为11.5分,由于没有书写判断重复学号和判断宿舍情况的反馈,还有END结束输出,由于大部分的书写错误的反馈未体现,扣掉了3.5分。