听老师讲了一些ArrayBasic的一些知识,让制作一个酒店管理系统,要求:显示酒店所有房间列表,预订房间....
经过老师的指导写了一个代码,如下:
import java.util.Scanner;
public class a1{
public static void main(String[] args){
Scanner s = new Scanner(System.in);//接受客户键盘输入,在命令行中,回车结束
System.out.println( "酒店管理系统" );
Hotel h = new Hotel();
System.out.println( h );
h.print();
while (true){
System.out.println( "请输入房间编号" );
//声明变量,用于接受控制台输入数据
String no = s.next(); //预订房间
h.order(no);
h.print();
}
}
}
class Room{
//房间号
private String no;
//房间类型
private String type;
//是否被占用
private boolean isUse;
public Room(){//默认调用
super();
}
public Room(String no,String type,boolean isUse){
super();
this.no = no;
this.type = type;
this.isUse = isUse;
}
public String getNo(){
return no;
}
public void setNo(String no){
this.no = no;
}
public String getType(){
return type;
}
public void setType(String type){
this.type = type;
}
public boolean isUse(){
return isUse;
}
public void setUse(boolean isUse){
this.isUse = isUse;
}
public String toString(){ //声明输出结果格式
return "[" + no + "," + type + "," + (isUse?"占用":"空闲") + "]";
}
}
class Hotel{
Room rooms[][];
public Hotel(){
rooms = new Room[][];//旅馆有五层,每层四个房间
for(int i=; i < rooms.length; ++i){//外层for循环是循环层,内存循环是循环的每层的房间
for(int j=; j < rooms[i].length; ++j){
if (i == || i == ) {
//后面加个空字符串,是自动数据类型转换,这样前面的数字会自动变成数字型字符串;
rooms[i][j] = new Room((i+)*+j+ +"" , "标准间",false);
} if (i == || i == ) {
rooms[i][j] = new Room((i+)*+j+ +"" , "双人间",false);
} if (i == ) {
rooms[i][j] = new Room((i+)*+j+ +"" , "豪华间",false);
} } }
}
//对外提供房间列表的打印方式
public void print(){
for(int i=; i < rooms.length; ++i){
for(int j=; j < rooms[i].length; ++j){
System.out.print( rooms[i][j] + " " );
}
//换行
System.out.println( );
}
}
//提供旅馆对外预定方式
public void order(String no){
for(int i=; i < rooms.length; ++i){
for(int j=; j < rooms[i].length; ++j){
if (rooms[i][j].getNo().equals(no)) {
//把对象的成员数据封装,通过成员方法访问
//1 成员变量的访问方式rooms[i][j].no;
//2 成员方法的访问方式
rooms[i][j].setUse(true);
return;
}
}
}
}
}
效果:
因需要支持外部预定,用户输入房间号,选择五楼包场,效果如下:
以上就是所有代码,请大家斧正!