石家庄铁道大学2022年秋季
2021 级课堂测试试卷(一)(15分)
课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟
一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“信2105-3班20213709叶照心”,将源程序文件、保存在文件夹中,压缩成rar文件提交。
3、以班级为单位上交最终考试结果。
4、需要在程序开始的注释中注明班级、学号、姓名。
二、 数据结构要求:(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分。
package test1;
public class RoomInformation {
private String roomno;
private String stunno1;
private String stunno2;
private String stunno3;
private String stunno4;
private int hygienescore=0;
private int num=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 void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}
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;
}
}
package test1;
import java.util.Scanner;
public class RoomManagement {
static RoomInformation []roo=new RoomInformation[10];
public static void Search()
{
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+"***********************************************************\n"
+" 宿舍详细信息列表:");
for(int i=0;i<10;i++)
{
int icount=0;
if(roo[i].getStunno1()!=null)
icount++;
if(roo[i].getStunno2()!=null)
icount++;
if(roo[i].getStunno3()!=null)
icount++;
if(roo[i].getStunno4()!=null)
icount++;
roo[i].setNum(icount);
System.out.print(i+1+"、"+roo[i].getRoomno()+" ");
if(icount==4)
{
System.out.println(icount+"人 已满");
}
if(icount==0)
{
System.out.println(icount+"人 空4人");
}
if(icount>0&&icount<4)
{
int icount1=4-icount;
System.out.println(icount+"人 空"+icount1+"人");
}
}
System.out.println("***********************************************************");
RoomManagement.menu();
}
public static void Arrange()
{Scanner sc=new Scanner(System.in);
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+"***********************************************************\n"
+" 安排新宿舍\n"
+"***********************************************************\n"
+" 空宿舍详细信息列表");
int J=0;
for(int i=0;i<10;i++)
{
if(roo[i].getNum()==0)
{
System.out.println(J+","+roo[i].getRoomno()+" "+roo[i].getNum()+"人 空宿舍");
J++;
}
}
System.out.println(" 请输入新宿舍号:");
System.out.println("***********************************************************");
String S1=sc.next();
for(int i=0;i<10;i++)
{if(roo[i].getRoomno().equals(S1))
{if(roo[i].getNum()!=0)
{
System.out.println("该宿舍不是空宿舍,无法安排新生,请重新输入");
RoomManagement.Arrange();
}
if(roo[i].getNum()==0)
{
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+"***********************************************************\n"
+" 安排新宿舍\n"
+"***********************************************************\n"
+" 新宿舍号:"+roo[i].getRoomno());
System.out.println("1、床位1");
String S2=sc.next();
//查重
for(int j=0;j<10;j++)
{
if(S2.equals(roo[i].getStunno1())||S2.equals(roo[i].getStunno2())||S2.equals(roo[i].getStunno3())||S2.equals(roo[i].getStunno4()))
{
System.out.println("该学生已分配宿舍");
roo[i].setNum(0);
menu();
}
}
if(S2.equals("END"))
{System.out.println("分配完成");
RoomManagement.menu();}
roo[i].setStunno1(S2);
roo[i].setNum(1);
System.out.println("2、床位2");
String S3=sc.next();
//查重
for(int j=0;j<10;j++)
{
if(S3.equals(roo[i].getStunno1())||S3.equals(roo[i].getStunno2())||S3.equals(roo[i].getStunno3())||S3.equals(roo[i].getStunno4()))
{
System.out.println("该学生已分配宿舍");
roo[i].setNum(0);
menu();
}
}
if(S3.equals("END"))
{System.out.println("分配完成");
RoomManagement.menu();}
roo[i].setStunno2(S3);
roo[i].setNum(2);
System.out.println("3、床位3");
String S4=sc.next();
for(int j=0;j<10;j++)
{
if(S4.equals(roo[i].getStunno1())||S4.equals(roo[i].getStunno2())||S4.equals(roo[i].getStunno3())||S4.equals(roo[i].getStunno4()))
{
System.out.println("该学生已分配宿舍");
roo[i].setNum(0);
menu();
}
}
if(S4.equals("END"))
{System.out.println("分配完成");
RoomManagement.menu();}
roo[i].setStunno3(S4);
roo[i].setNum(3);
System.out.println("4、床位4");
String S5=sc.next();
for(int j=0;j<10;j++)
{
if(S5.equals(roo[i].getStunno1())||S5.equals(roo[i].getStunno2())||S5.equals(roo[i].getStunno3())||S5.equals(roo[i].getStunno4()))
{
System.out.println("该学生已分配宿舍");
roo[i].setNum(0);
menu();
}
}
if(S5.equals("END"))
{System.out.println("分配完成");
RoomManagement.menu();}
roo[i].setNum(4);
roo[i].setStunno4(S5);
System.out.println("宿舍已满");
RoomManagement.menu();
}
}
}
}
public static void Adjust()
{
Scanner sc=new Scanner(System.in);
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 调整宿舍\n"
+"***********************************************************\n"
+" 有空床位宿舍详细信息列表 ");
for(int i=0;i<10;i++)
{
if(roo[i].getNum()<4&&roo[i].getNum()>0)
{
System.out.println(roo[i].getRoomno()+" "+roo[i].getNum()+"人 空" +(4-roo[i].getNum())+"人");
}
}
System.out.println("请输入待调整宿舍号:");
String S1=sc.next();
System.out.println("***********************************************************");
for(int i=0;i<10;i++)
{if(S1.equals(roo[i].getRoomno()))
{if(roo[i].getNum()>0&&roo[i].getNum()<4)
{ System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 调整宿舍\n"
+"***********************************************************\n"
+" 待调整宿舍号"+roo[i].getRoomno());
int J=1;
System.out.println("床位"+J+" "+roo[i].getStunno1());
J++;
if(roo[i].getStunno2()!=null)
{
System.out.println("床位"+J+" "+roo[i].getStunno2());
J++;
}
if(roo[i].getStunno3()!=null)
{
System.out.println("床位"+J+" "+roo[i].getStunno3());
J++;
}
if(roo[i].getStunno4()!=null)
{
System.out.println("床位"+J+" "+roo[i].getStunno4());
J++;
}
System.out.println("床位"+J+":");
String S2=sc.next();
if(J==2) {
roo[i].setStunno2(S2);;
roo[i].setNum(2);
}
if(J==3) {
roo[i].setStunno3(S2);
roo[i].setNum(3);
}
if(J==4) {
roo[i].setStunno4(S2);
roo[i].setNum(4);
}
System.out.println("调整成功");
menu();
}
if(roo[i].getNum()<0||roo[i].getNum()>=4)
{
System.out.println("该宿舍无法调入");
menu();
}
}
}
System.out.println("无该宿舍");
menu();
}
public static void Evaluate()
{
Scanner sc=new Scanner(System.in);
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 宿舍卫生宿舍\n"
+"***********************************************************");
System.out.println(" 请输入待评价宿舍号:");
String S1=sc.next();
System.out.println("***********************************************************");
for(int i=0;i<10;i++)
{
if(roo[i].getNum()==0)
{
System.out.println("该宿舍为空宿舍");
menu();
}
if(roo[i].getNum()!=0)
{
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 宿舍卫生宿舍\n"
+"***********************************************************\n"
+" 宿舍号:"+roo[i].getRoomno()+"\n"
+" 1、床位1:"+roo[i].getStunno1()+"\n"
+" 2、床位2:"+roo[i].getStunno2()+"\n"
+" 3、床位3:"+roo[i].getStunno3()+"\n"
+" 4、床位4:"+roo[i].getStunno4()+"\n"
+" 输入宿舍卫生评价分数: ");
int i1=sc.nextInt();
if(i1>=0&&i1<=100)
{
roo[i].setHygienescore(i1);
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 宿舍卫生宿舍\n"
+"***********************************************************\n"
+" 宿舍号:"+roo[i].getRoomno()+"\n"
+" 1、床位1:"+roo[i].getStunno1()+"\n"
+" 2、床位2:"+roo[i].getStunno2()+"\n"
+" 3、床位3:"+roo[i].getStunno3()+"\n"
+" 4、床位4:"+roo[i].getStunno4()+"\n"
+" 宿舍卫生评价分数: "+roo[i].getHygienescore());
menu();
}
if(i1<0&&i1>100)
{
System.out.println("输入错误,请重新输入");
Evaluate();
}
}
}
}
public static void Check()
{
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+" 卫生检查情况查询\n"
+"***********************************************************\n"
+" 宿舍卫生检查情况信息 ");
System.out.print("1、9#101 "+roo[0].getHygienescore());
if(roo[0].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[0].getHygienescore()>=80&&roo[0].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[0].getHygienescore()>=60&&roo[0].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[0].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("2、9#102 "+roo[1].getHygienescore());
if(roo[1].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[1].getHygienescore()>=80&&roo[1].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[1].getHygienescore()>=60&&roo[1].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[1].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("3、9#103 "+roo[2].getHygienescore());
if(roo[2].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[2].getHygienescore()>=80&&roo[2].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[2].getHygienescore()>=60&&roo[2].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[2].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("4、9#104 "+roo[3].getHygienescore());
if(roo[3].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[3].getHygienescore()>=80&&roo[3].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[3].getHygienescore()>=60&&roo[3].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[3].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("5、9#105 "+roo[4].getHygienescore());
if(roo[4].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[4].getHygienescore()>=80&&roo[4].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[4].getHygienescore()>=60&&roo[4].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[4].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("6、9#106 "+roo[5].getHygienescore());
if(roo[5].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[5].getHygienescore()>=80&&roo[5].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[5].getHygienescore()>=60&&roo[5].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[5].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("7、9#107 "+roo[6].getHygienescore());
if(roo[6].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[6].getHygienescore()>=80&&roo[6].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[6].getHygienescore()>=60&&roo[6].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[6].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("8、9#108 "+roo[7].getHygienescore());
if(roo[7].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[7].getHygienescore()>=80&&roo[7].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[7].getHygienescore()>=60&&roo[7].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[7].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("9、9#109 "+roo[8].getHygienescore());
if(roo[8].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[8].getHygienescore()>=80&&roo[8].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[8].getHygienescore()>=60&&roo[8].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[8].getHygienescore()<60)
{
System.out.println("不合格");
}
System.out.print("10、9#110 "+roo[9].getHygienescore());
if(roo[9].getHygienescore()>=90)
{
System.out.println("优秀");
}
if(roo[9].getHygienescore()>=80&&roo[9].getHygienescore()<90)
{
System.out.println("良好");
}
if(roo[9].getHygienescore()>=60&&roo[9].getHygienescore()<80)
{
System.out.println("及格");
}
if(roo[9].getHygienescore()<60)
{
System.out.println("不合格");
}
menu();
}
public static void menu()
{Scanner sc=new Scanner(System.in);
System.out.println("***********************************************************\n"
+" 石家庄铁道大学\n"
+" 学生公寓管理系统v2022\n"
+"***********************************************************\n"
+" 1、宿舍查询\n"
+" 2、安排新宿舍\n"
+" 3、调整宿舍\n"
+" 4、宿舍卫生评价\n"
+" 5、卫生检查情况查询\n"
+"**********************************************************");
int n=sc.nextInt();
switch(n)
{
case 1://每次运行必操作这一步,否则num不进行初始化
{//宿舍查询
RoomManagement.Search();
break;
}
case 2:
{//安排新宿舍
RoomManagement.Arrange();
break;
}
case 3:
{//调整宿舍
Adjust();
break;
}
case 4:
{//宿舍卫生评价
Evaluate();
break;
}
case 5:
{//卫生检查情况查询
Check();
break;
}
default:
{
System.out.println("该选项不存在");
RoomManagement.menu();
}
}
}
public static void main(String[]args)
{
roo[0]= new RoomInformation("9#101","1011","1012","1013","1014",0);
roo[1]= new RoomInformation("9#102","1021","1022","1023","1024",0);
roo[2]= new RoomInformation("9#103","1031","1032","1033","1034",0);
roo[3]= new RoomInformation("9#104","1041","1042","1043","1044",0);
roo[4]= new RoomInformation("9#105","1051","1052","1053",null,0);
roo[5]= new RoomInformation("9#106","1051","0002",null,null,0);
roo[6]= new RoomInformation("9#107","0001",null,null,null,0);
roo[7]= new RoomInformation("9#108",null,null,null,null,0);
roo[8]= new RoomInformation("9#109",null,null,null,null,0);
roo[9]= new RoomInformation("9#110",null,null,null,null,0);
RoomManagement.menu();
}
}