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分。
//RoomInformation类
1 package 公寓管理系统;
2 3 public class RoomInformation{ 4 private String roomno,stunno1,stunno2,stunno3,stunno4; 5 private int hygienescore; 6 public RoomInformation(String roomno,String stunno1,String stunno2,String stunno3,String stunno4,int hygienescore) { 7 this.roomno=roomno; 8 this.stunno1=stunno1; 9 this.stunno2=stunno2; 10 this.stunno3=stunno3; 11 this.stunno4=stunno4; 12 this.hygienescore=hygienescore; 13 } 14 public void set( String stunno1,String stunno2 ,String stunno3 ,String stunno4 ) 15 { 16 17 this.stunno1=stunno1; 18 this.stunno2=stunno2; 19 this.stunno3=stunno3; 20 this.stunno4=stunno4; 21 } 22 public String getRoomno() { 23 return roomno; 24 } 25 public void setRoomno(String roomno) { 26 this.roomno=roomno; 27 } 28 public String getStunno1() { 29 return stunno1; 30 } 31 public void setStunno1(String stunno1) { 32 this.stunno1=stunno1; 33 } 34 public String getStunno2() { 35 return stunno2; 36 } 37 public void setStunno2(String stunno2) { 38 this.stunno2=stunno2; 39 } 40 public String getStunno3() { 41 return stunno3; 42 } 43 public void setStunno3(String stunno3) { 44 this.stunno3=stunno3; 45 } 46 public String getStunno4() { 47 return stunno4; 48 } 49 public void setStunno4(String stunno4) { 50 this.stunno4=stunno4; 51 } 52 public int getHygienescore() { 53 return hygienescore; 54 } 55 public void setHygienescore(int hygienescore) { 56 this.hygienescore=hygienescore; 57 } 58 }
//RoomManagement类
1 package 公寓管理系统; 2 3 import java.util.Scanner; 4 public class RoomManagement { 5 static Scanner sc =new Scanner(System.in); 6 static RoomInformation[] s = new RoomInformation[10]; 7 static int z=0; 8 public static void main(String[] args) { 9 s[0]=new RoomInformation("9#101","20213725","20213726","20213727","20213728",0); 10 s[1]=new RoomInformation("9#102","20213729","20213730","20213731","20213732",0); 11 s[2]=new RoomInformation("9#103","20213733","20213734","20213735","",0); 12 s[3]=new RoomInformation("9#104","20213737","20213738","","",0); 13 s[4]=new RoomInformation("9#105","20213741","","","",0); 14 s[5]=new RoomInformation("9#106","20213744","20213745","20213746","20213747",0); 15 s[6]=new RoomInformation("9#107","20213748","20213749","20213750","20213751",0); 16 s[7]=new RoomInformation("9#108","","","","",0); 17 s[8]=new RoomInformation("9#109","","","","",0); 18 s[9]=new RoomInformation("9#110","","","","",0); 19 while(true) { 20 showMenu(); 21 int a=sc.nextInt(); 22 switch(a) { 23 case 1: 24 QueryRoom(); 25 break; 26 case 2: 27 ArrangeRoom(); 28 break; 29 case 3: 30 AdjustRoom(); 31 break; 32 case 4: 33 HygienicEvaluate(); 34 break; 35 case 5: 36 Hygienescore(); 37 break; 38 default: 39 System.out.println("该选项不存在"); 40 break; 41 } 42 } 43 } 44 static void showTitle() { 45 System.out.println("***********************************************************"); 46 System.out.println("\t\t\t石家庄铁道大学 "); 47 System.out.println("\t\t\t学生公寓管理系统v2022 "); 48 } 49 static void showMenu() { 50 showTitle(); 51 System.out.println("***********************************************************"); 52 System.out.println(" 1、宿舍查询"); 53 System.out.println(" 2、安排新宿舍"); 54 System.out.println(" 3、调整宿舍"); 55 System.out.println(" 4、宿舍卫生评价"); 56 System.out.println(" 5、卫生检查情况查询"); 57 System.out.println("***********************************************************"); 58 } 59 public static int JudgeNum(int i) {//判断宿舍人数 60 int count=0; 61 if(s[i].getStunno1()!="") count++; 62 if(s[i].getStunno2()!="") count++; 63 if(s[i].getStunno3()!="") count++; 64 if(s[i].getStunno4()!="") count++; 65 return count; 66 } 67 public static boolean JudgeKroom(String room) {//判断是否为空房间 68 for(int i=0;i<10;i++) { 69 int k=JudgeNum(i); 70 if(k==0) { 71 if(room.equals(s[i].getRoomno())){ 72 z=i; 73 return true; 74 } 75 } 76 } 77 return false; 78 } 79 public static boolean JudgeRoom(String a) {//判断是否为空宿舍 80 for(int i=0;i<10;i++) { 81 if(a.equals(s[i].getRoomno())) { 82 int k = JudgeNum(i); 83 if(k!=0) { 84 z=i; 85 return true; 86 } 87 } 88 } 89 return false; 90 } 91 public static boolean JudgeAdjust(String a) {//判断是否有空余床位 92 for (int i = 0; i < 10; i++) { 93 int k = JudgeNum(i); 94 if (k< 4 && k > 0) { 95 if (a.equals(s[i].getRoomno())) { 96 z = i; 97 return true; 98 } 99 } 100 } 101 return false; 102 } 103 public static int JudgeAdjust1(String a) {//判断是否有空余床位 104 for (int i = 0; i <10; i++) { 105 int k = JudgeNum(i); 106 if (k < 4 && k > 0) { 107 if (a.equals(s[i].getRoomno())) { 108 z=i; 109 return i; 110 } 111 } 112 } 113 return 0; 114 } 115 public static void ArrangeRoom1() {//安排新宿舍表头 116 showTitle(); 117 System.out.println("\t\t\t安排新宿舍"); 118 System.out.println("***********************************************************"); 119 System.out.println("\t\t\t新宿舍号:"+s[z].getRoomno()); 120 System.out.println("\t\t1、床位1:"+s[z].getStunno1()); 121 System.out.println("\t\t2、床位2:"+s[z].getStunno2()); 122 System.out.println("\t\t3、床位3:"+s[z].getStunno3()); 123 System.out.println("\t\t4、床位4:"+s[z].getStunno4()); 124 System.out.println("**********************************************************"); 125 } 126 public static void AdjustRoom1(String a) {//调整宿舍表头 127 showTitle(); 128 System.out.println("\t\t\t调整宿舍"); 129 System.out.println("\t\t待调整宿舍号:"+a); 130 System.out.println("1、床位1:"+s[z].getStunno1()); 131 System.out.println("2、床位2:"+s[z].getStunno2()); 132 System.out.println("3、床位3:"+s[z].getStunno3()); 133 System.out.println("4、床位4:"+s[z].getStunno4()); 134 } 135 public static boolean JudgeAnumber(String a) { 136 int count=0; 137 for(int i=0;i<10;i++) { 138 if(a.equals(s[i].getStunno1())) count++; 139 if(a.equals(s[i].getStunno2())) count++; 140 if(a.equals(s[i].getStunno3())) count++; 141 if(a.equals(s[i].getStunno4())) count++; 142 } 143 if(count==0) { 144 return true; 145 } 146 else 147 return false; 148 } 149 // 150 public static boolean JudgeRnum(String a) { 151 for (int i = 0; i<10; i++) { 152 int k = JudgeNum(i); 153 if (k < 4 && k > 0) { 154 if (a.equals(s[i].getRoomno())) { 155 z = i; 156 return true; 157 } 158 } 159 } 160 return false; 161 } 162 //宿舍查询 163 public static void QueryRoom() { 164 showTitle(); 165 System.out.println("***********************************************************"); 166 System.out.println(" 宿舍详细信息列表"); 167 int k=0; 168 String a=""; 169 for(int i=0;i<10;i++) { 170 k=JudgeNum(i); 171 if(k==4) a="已满"; 172 if(k==3) a="空1人"; 173 if(k==2) a="空2人"; 174 if(k==1) a="空3人"; 175 if(k==0) a="空房间"; 176 System.out.println(i+1+"、"+s[i].getRoomno()+" "+k+"人"+" "+a); 177 } 178 } 179 public static void ArrangeRoom() { 180 showTitle(); 181 System.out.println("\t\t\t安排新宿舍"); 182 System.out.println("***********************************************************"); 183 System.out.println("\t\t\t空宿舍详细信息列表"); 184 int a=1; 185 for(int i=0;i<10;i++) { 186 int k=JudgeNum(i); 187 if(k==0) { 188 System.out.println(a+"、"+s[i].getRoomno()+" "+k+"人"+" 空宿舍"); 189 a++; 190 } 191 } 192 System.out.println("\t\t\t请输入新宿舍号:"); 193 String room=sc.next(); 194 if(JudgeKroom(room)==false) { 195 System.out.println("该宿舍不是空宿舍,无法安排新生"); 196 } 197 else { 198 ArrangeRoom1(); 199 System.out.println("请输入要入住学生学号"); 200 String y = null; 201 int i=0; 202 for (i = 0; i<4; i++) { 203 y=sc.next(); 204 if (JudgeAnumber(y) == false) { 205 s[z].set(null, null, null, null); 206 ArrangeRoom1(); 207 System.out.println("输入错误,请重新输入"); 208 ArrangeRoom(); 209 break; 210 } 211 if (y.contains("END")) { 212 System.out.println("分配完毕"); 213 if(i==0) s[z].set(y.substring(0, 8),null,null,null); 214 if(i==1) s[z].set(s[z].getStunno1(),y.substring(0, 8),null,null); 215 if(i==2) s[z].set(s[z].getStunno1(),s[z].getStunno2(),y.substring(0, 8),null); 216 ArrangeRoom1(); 217 break; 218 } 219 if(i==0) s[z].set(y,null,null,null); 220 if(i==1) s[z].set(s[z].getStunno1(),y,null,null); 221 if(i==2) s[z].set(s[z].getStunno1(),s[z].getStunno2(),y,null); 222 if(i==3) s[z].set(s[z].getStunno1(),s[z].getStunno2(),s[z].getStunno2(),y); 223 } 224 if(i==4) 225 ArrangeRoom1(); 226 } 227 } 228 229 public static void AdjustRoom() { 230 showTitle(); 231 System.out.println("\t\t\t调整宿舍"); 232 System.out.println("***********************************************************"); 233 System.out.println("\t\t\t有空床位宿舍详细信息列表"); 234 for(int i=0;i<10;i++) { 235 if(JudgeRnum(s[i].getRoomno())) { 236 int j=1; 237 int k = 4-JudgeNum(i); 238 System.out.println(j+"、"+s[i].getRoomno()+" "+JudgeNum(i)+"人"+" 空 "+k+"人"); 239 j++; 240 } 241 } 242 System.out.println("\t\t\t请输入待调整宿舍号"); 243 System.out.println("**********************************************************"); 244 String a=sc.next(); 245 if(JudgeAdjust(a)==false) { 246 System.out.println("该宿舍没有空床位,无法调整"); 247 } 248 else { 249 AdjustRoom1(a); 250 System.out.println("请输入要入住学生学号"); 251 String y = null; 252 int i = JudgeAdjust1(a); 253 while (i < 4) { 254 y = sc.next(); 255 if (JudgeAnumber(y) == false) { 256 s[z].set(s[z].getStunno1(), s[z].getStunno2(), s[z].getStunno3(), s[z].getStunno4()); 257 AdjustRoom1(a); 258 System.out.println("输入错误,请重新输入"); 259 AdjustRoom(); 260 break; 261 } 262 if (y.contains("END")) { 263 System.out.println("分配完毕"); 264 if (i == 1) 265 s[z].set(s[z].getStunno1(), y.substring(0, 8), null, null); 266 if (i == 2) 267 s[z].set(s[z].getStunno1(), s[z].getStunno2(), y.substring(0, 8), null); 268 AdjustRoom1(a); 269 break; 270 } 271 if (i == 1) { 272 s[z].set(s[z].getStunno1(), y, null, null); 273 i++; 274 continue; 275 } 276 if (i == 2) { 277 s[z].set(s[z].getStunno1(), s[z].getStunno2(), y, null); 278 i++; 279 continue; 280 } 281 if (i == 3) { 282 s[z].set(s[z].getStunno1(), s[z].getStunno2(), s[z].getStunno3(), y); 283 i++; 284 } 285 } 286 if (i == 4) 287 AdjustRoom1(a); 288 } 289 } 290 public static void HygienicEvaluate() { 291 showTitle(); 292 System.out.println("\t\t\t宿舍卫生宿舍"); 293 System.out.println("***********************************************************"); 294 System.out.println("\t\t请输入待评价宿舍号:"); 295 System.out.println("************************************************************"); 296 String a=sc.next(); 297 if(JudgeRoom(a)==false) 298 { 299 System.out.println("该宿舍为空宿舍,请重新输入"); 300 HygienicEvaluate(); 301 } 302 else { 303 showTitle(); 304 System.out.println("\t\t\t宿舍卫生评价"); 305 System.out.println("***********************************************************"); 306 System.out.println("\t\t宿舍号:"+s[z].getRoomno()); 307 System.out.println("1、床位1:"+s[z].getStunno1()); 308 System.out.println("2、床位2:"+s[z].getStunno2()); 309 System.out.println("3、床位3:"+s[z].getStunno3()); 310 System.out.println("4、床位4:"+s[z].getStunno4()); 311 System.out.println("\t\t\t请输入宿舍卫生评价的分数:"); 312 System.out.println("**********************************************************"); 313 while(true) { 314 int b = sc.nextInt(); 315 if(b<0||b>100) { 316 System.out.println("输入错误"); 317 showTitle(); 318 System.out.println("\t\t\t宿舍卫生评价"); 319 System.out.println("***********************************************************"); 320 System.out.println("\t\t宿舍号:"+s[z].getRoomno()); 321 System.out.println("1、床位1:"+s[z].getStunno1()); 322 System.out.println("2、床位2:"+s[z].getStunno2()); 323 System.out.println("3、床位3:"+s[z].getStunno3()); 324 System.out.println("4、床位4:"+s[z].getStunno4()); 325 System.out.println("\t\t\t请输入宿舍卫生评价的分数:"); 326 System.out.println("**********************************************************"); 327 } 328 else { 329 s[z].setHygienescore(b); 330 break; 331 } 332 } 333 } 334 } 335 public static void Hygienescore() { 336 showTitle(); 337 System.out.println("\t\t\t卫生检查情况查询 "); 338 System.out.println("***********************************************************"); 339 System.out.println("\t\t\t宿舍卫生检查情况信息"); 340 for(int i=0;i<10;i++) { 341 String b=null; 342 if(s[i].getHygienescore()>=90) b="优秀"; 343 if(s[i].getHygienescore()>=80&&s[i].getHygienescore()<90) b="良好"; 344 if(s[i].getHygienescore()>=60&&s[i].getHygienescore()<80) b="合格"; 345 if(s[i].getHygienescore()<60) b="不合格"; 346 System.out.println(i+1+"、"+s[i].getRoomno()+" "+s[i].getHygienescore()+" "+b); 347 } 348 } 349 }