2022年java第一次随堂测试(部分问题尚未解决)

石家庄铁道大学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分。

 

//源代码

import java.util.Scanner;

public class RoomManagement {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
RoomInformation r1 = new RoomInformation("9#401", "20214001", "20214002", "20214003", "20214004", 0);
RoomInformation r2 = new RoomInformation("9#402", "", "", "", "", 0);
RoomInformation r3 = new RoomInformation("9#403", "", "", "", "", 0);
RoomInformation r4 = new RoomInformation("9#404", "", "", "", "", 0);
RoomInformation r5 = new RoomInformation("9#405", "", "20214011", "20214012", "20214013", 0);
RoomInformation r6 = new RoomInformation("9#406", "20214021", "", "20214022", "20214023", 0);
RoomInformation r7 = new RoomInformation("9#407", "20214031", "20214032", "", "20214033", 0);
RoomInformation r8 = new RoomInformation("9#408", "20214041", "20214042", "20214043", "20214044", 0);
RoomInformation r9 = new RoomInformation("9#409", "20214051", "20214052", "20214053", "20214054", 0);
RoomInformation r10 = new RoomInformation("9#410", "20214061", "20214062", "20214063", "20214064", 0);
rf[1] = r1;
rf[2] = r2;
rf[3] = r3;
rf[4] = r4;
rf[5] = r5;
rf[6] = r6;
rf[7] = r7;
rf[8] = r8;
rf[9] = r9;
rf[10] = r10;
menu1();
}
static RoomInformation rf[] = new RoomInformation[1010];
static int cnt = 10;
public static 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("**********************************************************");
}

public static void menu1() {
int n = 0;
while (n != 5) {
Scanner sc = new Scanner(System.in);
menu();
n = sc.nextInt();
if (n == 1)
chaxun();
else if (n == 2)
anpai();
else if (n == 3)
tiaozheng();
else if (n == 4)
weishengpingjia();
else if (n == 5)
weishengchaxun();
else {
System.out.println("该选项不存在");
menu();
}
}
}

public static void chaxun() {
System.out.print("***********************************************************\n"
+ " 石家庄铁道大学\r\n"
+ " 学生公寓管理系统v2022\r\n"
+ "***********************************************************\r\n"
+ "");
for (int i = 1; i <= cnt; i++) {
int no_cnt = 0;//统计人数
System.out.print(i + "、" + rf[i].getRoomno() + "\t");
if (rf[i].getStunno1() != "")
no_cnt++;
if (rf[i].getStunno2() != "")
no_cnt++;
if (rf[i].getStunno3() != "")
no_cnt++;
if (rf[i].getStunno4() != "")
no_cnt++;
if (no_cnt == 4) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("已满\n");
}
else if (no_cnt == 3) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空1人\n");
}
else if (no_cnt == 2) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空2人\n");
}
else if (no_cnt == 1) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空3人\n");
}
else if (no_cnt == 0) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空宿舍\n");
}
}
}

public static int anpaipanduan(String no0) {
if (no0.equals("END")) {
return 3;
}
for(int i = 1; i <= cnt; i++) {
if (no0.equals(rf[i].getStunno1()) || no0.equals(rf[i].getStunno2()) || no0.equals(rf[i].getStunno3()) || no0.equals(rf[i].getStunno4())) {
System.out.print("该学生已分配宿舍\n");
return 2;
}
}
return 1;
}

public static void anpaijiemian() {
Scanner sc = new Scanner(System.in);
System.out.print("***********************************************************\n"
+ " 石家庄铁道大学\r\n"
+ " 学生公寓管理系统v2022\r\n"
+ " 安排新宿舍\r\n"
+ "***********************************************************\r\n"
+ " 新宿舍号:\r\n"
+ "");
System.out.print("1、床位1:");
String no1 = sc.next();
if (anpaipanduan(no1) == 2) {
no1 = sc.next();
}
else if (anpaipanduan(no1) == 3) {
cnt ++;
menu();
}
System.out.print("\n");
System.out.print("2、床位2:");
String no2 = sc.next();
if (anpaipanduan(no2) == 2) {
no2 = sc.next();
}
else if (anpaipanduan(no2) == 3) {
cnt ++;
menu();
}
System.out.print("\n");
System.out.print("3、床位3:");
String no3 = sc.next();
if (anpaipanduan(no3) == 2) {
no3 = sc.next();
}
else if (anpaipanduan(no3) == 3) {
cnt ++;
menu();
}
System.out.print("\n");
System.out.print("4、床位4:");
String no4 = sc.next();
System.out.print("***********************************************************\n");
if (anpaipanduan(no4) == 2) {
no4 = sc.next();
}
else if (anpaipanduan(no4) == 3 || anpaipanduan(no4) == 1) {
System.out.print("\n");
System.out.print("提示该宿舍已满\n");
cnt ++;
menu();
}

}

public static void anpai() {
Scanner sc = new Scanner(System.in);
System.out.print("***********************************************************\n"
+ " 石家庄铁道大学\r\n"
+ " 学生公寓管理系统v2022\r\n"
+ " 安排新宿舍\r\n"
+ "***********************************************************\r\n"
+ "");
System.out.print(" 空宿舍详细信息列表\n");
for (int i = 1; i <= cnt; i++) {
if (rf[i].getStunno1() == "" && rf[i].getStunno2() == "" && rf[i].getStunno3() == "" && rf[i].getStunno4() == "") {
System.out.print(i + "、" + rf[i].getRoomno() + "\t\t" + "0人\t空宿舍\n");
}
}
System.out.print(" 请输入新宿舍号:");
String new_roomno = sc.next();
System.out.print("***********************************************************\n");
for (int i = 1; i <= cnt; i++) {
if(new_roomno.equals(rf[i].getRoomno())) {
if (rf[i].getStunno1() == "" && rf[i].getStunno2() == "" && rf[i].getStunno3() == "" && rf[i].getStunno4() == "") {
anpaijiemian();
}
else {
System.out.print("该宿舍不是空宿舍,无法安排新生\n");
}
}
}
}

public static void tiaozhengjiemian() {
Scanner sc = new Scanner(System.in);
System.out.print("***********************************************************\n"
+ " 石家庄铁道大学\r\n"
+ " 学生公寓管理系统v2022\r\n"
+ " 调整宿舍\r\n"
+ "***********************************************************\r\n"
+ " 有空床位宿舍详细信息列表\r\n"
+ "");
for (int i = 1; i <= cnt; i++) {
int no_cnt = 0;//统计人数
System.out.print(i + "、" + rf[i].getRoomno() + "\t");
if (rf[i].getStunno1() != "")
no_cnt++;
if (rf[i].getStunno2() != "")
no_cnt++;
if (rf[i].getStunno3() != "")
no_cnt++;
if (rf[i].getStunno4() != "")
no_cnt++;
if (no_cnt == 3) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空1人\n");
}
else if (no_cnt == 2) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空2人\n");
}
else if (no_cnt == 1) {
System.out.print(no_cnt + "人" + "\t");
System.out.print("空3人\n");
}
}
System.out.print("请输入待调整宿舍号:");
}

public static void tiaozhengjiemian2(String roomno) {
System.out.print("***********************************************************\n"
+ "石家庄铁道大学\r\n"
+ "学生公寓管理系统v2022\r\n"
+ "调整宿舍\r\n"
+ "***********************************************************\r\n"
+ "待调整宿舍号:"
+ roomno
+ "");
}



public static void tiaozheng() {
Scanner sc = new Scanner(System.in);
tiaozhengjiemian();
String new_roomno = sc.next();
System.out.print("***********************************************************\n");
for (int i = 1; i <= cnt; i++) {
if (new_roomno.equals(rf[i].getRoomno())) {
if (rf[i].getStunno1() == "" || rf[i].getStunno2() == "" || rf[i].getStunno3() == "" || rf[i].getStunno4() == "") {
tiaozhengjiemian2(new_roomno);
System.out.print("1、床位1:");
System.out.print(rf[i].getStunno1());
System.out.print("2、床位2:");
System.out.print(rf[i].getStunno2());
System.out.print("3、床位3:");
System.out.print(rf[i].getStunno3());
System.out.print("4、床位4:");
String stuno = sc.next();
if (anpaipanduan(stuno) == 3) {
menu();
}
else if (anpaipanduan(stuno) == 2) {
tiaozhengjiemian2(new_roomno);
}
else {
System.out.print("提示该宿舍已满");
menu();
}

}
else if (rf[i].getStunno1() != "" && rf[i].getStunno2() != "" && rf[i].getStunno3() != "" && rf[i].getStunno4() != "") {
System.out.print("该宿舍没有空床位,无法调整");
}
}
}
}

public static void wsjm() {
System.out.print("***********************************************************\n"
+ "石家庄铁道大学\r\n"
+ "学生公寓管理系统v2022\r\n"
+ "宿舍卫生\r\n"
+ "***********************************************************\r\n"
+ "");
System.out.print("请输入待评价宿舍号:");
}

public static void weishengpingjia() {
Scanner sc = new Scanner(System.in);
System.out.print("***********************************************************\n"
+ "石家庄铁道大学\r\n"
+ "学生公寓管理系统v2022\r\n"
+ "宿舍卫生\r\n"
+ "***********************************************************\r\n"
+ "");
System.out.print("请输入待评价宿舍号:");
String roomno = sc.next();
for (int i = 1; i <= cnt; i++) {
if (roomno.equals(rf[i].getRoomno())) {
if (rf[i].getStunno1() == "" && rf[i].getStunno2() == "" && rf[i].getStunno3() == "" && rf[i].getStunno4() == "") {
System.out.print("该宿舍为空宿舍");
weishengpingjia();
}
else {
System.out.print("***********************************************************\n"
+ "石家庄铁道大学\r\n"
+ "学生公寓管理系统v2022\r\n"
+ "宿舍卫生评价\r\n"
+ "***********************************************************\r\n"
+ "宿舍号:\r\n"
+ "");
System.out.print(roomno);
System.out.print("1、床位1:");
System.out.print(rf[i].getStunno1());
System.out.print("2、床位2:");
System.out.print(rf[i].getStunno2());
System.out.print("3、床位3:");
System.out.print(rf[i].getStunno3());
System.out.print("4、床位4:");
System.out.print(rf[i].getStunno4());

System.out.print("输入宿舍卫生评价分数:");
int wsscore = 0;
while (true) {
wsscore = sc.nextInt();
if (wsscore >=0 && wsscore <= 100) {
break;
}
else {
System.out.print("输入错误");
}

}
System.out.print("***********************************************************\n");
}
}
}
System.out.print("***********************************************************\n");
}

public static void weishengchaxun() {
System.out.print("***********************************************************\n"
+ "石家庄铁道大学\r\n"
+ "学生公寓管理系统v2022\r\n"
+ "卫生检查情况查询\r\n"
+ "***********************************************************\r\n"
+ "宿舍卫生检查情况信息\r\n"
+ "");
for (int i = 1; i <= cnt; i++) {
System.out.print(rf[i].getRoomno() + "\t" + rf[i].getHygienescore());
if (rf[i].getHygienescore() < 60)
System.out.print("不合格");
else if (rf[i].getHygienescore() >= 60 && rf[i].getHygienescore() < 80)
System.out.print("合格");
else if (rf[i].getHygienescore() >= 80 && rf[i].getHygienescore() < 90)
System.out.print("良好");
else if (rf[i].getHygienescore() >= 90)
System.out.print("优秀");
}
}

}

class RoomInformation {
private String roomno;// 8位 eg:9#502
private String stunno1, stunno2, stunno3, stunno4;
// 8位 空表示无数值,代表空余床位,
// 都空表示空宿舍
private int hygienescore;// 0-100 卫生标准分
// <60 不合格;>=60 合格;>=80 良好;>=90 优秀

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;
}

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 RoomInformation(RoomInformation r0) {
this.roomno = r0.roomno;
this.stunno1 = r0.stunno1;
this.stunno2 = r0.stunno2;
this.stunno3 = r0.stunno3;
this.stunno4 = r0.stunno4;
this.hygienescore = r0.hygienescore;
}

}

posted @ 2022-09-02 21:28  sodamate  阅读(39)  评论(0编辑  收藏  举报