我是靠谱客的博主 机灵高跟鞋,最近开发中收集的这篇文章主要介绍JavaSE进阶399-416二维数组和酒店管理系统习题二维数组动态初始化二维数组一维数组压栈弹栈模拟数组复习简易的酒店管理系统,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
开始时间:2020-11-05
二维数组
区分一下
a.length和a[2].length
package BUPT.Test;
//二维数组可以看成特殊的一维数组
//数组中每一个元素都是一个一维数组
//每个一维数组容纳的元素数量可以不同
public class ArrayTest02 {
public static void main(String[] args) {
int[][] a = {{1, 2, 3}, {4, 5, 6}, {7, 6, 5, 4}};
System.out.println(a.length);
System.out.println(a[2].length);
}
}
遍历二维数组
package BUPT.Test;
public class ArrayTest02 {
public static void main(String[] args) {
int[][] a = {{111, 222, 333}, {44, 55, 66}, {7, 6, 5, 4}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
}
}
}
}
动态初始化二维数组
package BUPT.Test;
public class ArrayTest03 {
public static void main(String[] args) {
int[][] array1 = new int[3][4];
printArray(new int[][]{{1, 2, 3, 4}, {66, 55, 44, 33}});
}
public static void printArray(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
一维数组压栈弹栈模拟
package BUPT.Test;
public class HomeWork {
public static void main(String[] args) {
//创建栈对象
MyStack mystack = new MyStack();
//压栈
for (int i = 0; i < 10; i++) {
mystack.push(new Object());
}
//弹栈
for (int i = 0; i < 10; i++) {
mystack.pop();
}
}
}
package BUPT.Test;
public class MyStack {
private Object[] elements = new Object[10];
private int index = -1;
//创建无参构造函数,可有可无,习惯成自然的写了
/* public MyStack() {
this.elements = new Object[10];
}*/
//push方法,接受一个新对象,通过角标来判断是否满栈
public void push(Object ele) {
if (index >= elements.length - 1) {
System.out.println("栈已满");
}
index++;
elements[index] = ele;
System.out.println("压栈" + ele + "成功,栈帧指向" + index);
}
//pop方法,弹出一个对象
public void pop() {
if (index <= -1) {
System.out.println("栈已空");
}
System.out.println("弹栈" + elements[index] + "成功,栈帧指向" + index);
elements[index] = null;
index--;
}
}
数组复习
简易的酒店管理系统
房间类
package BUPT.Test;
public class MyRoom {
private int no;
private String type;
private boolean state;
public MyRoom(int no, String type, boolean state) {
this.no = no;
this.type = type;
this.state = state;
}
//重写toString
public String toString() {
if (state) return "[" + no + "," + type + "," + "空闲" + "]";
else return "[" + no + "," + type + "," + "占用" + "]";
}
//重写equals
public boolean equals(MyRoom room) {
if (this.no == room.no) return true;
return false;
}
//后面的代码没有调用,但是养成良好代码风格是必须的
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
//布尔类型的get方法是isXX,可根据习惯改为getXX
public boolean getState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
}
酒店类
package BUPT.Test;
public class MyHotel {
private MyRoom[][] rooms;
//无参构造,把房间数组创建出来
public MyHotel() {
rooms = new MyRoom[3][10];
//给MyRoom的各个元素进行赋值
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
if (i == 0) {
rooms[i][j] = new MyRoom((i + 1) * 100 + j + 1, "单人间", true);
}
if (i == 1) {
rooms[i][j] = new MyRoom((i + 1) * 100 + j + 1, "双人间", true);
}
if (i == 2) {
rooms[i][j] = new MyRoom((i + 1) * 100 + j + 1, "豪华间", true);
}
}
}
}
//预定房间,给房间号,找房间,修改房间状态为已住
public void order(int roomNo) {
MyRoom room = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
room.setState(false);
}
public void withdraw(int roomNo) {
MyRoom room = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
room.setState(true);
}
//打印输出
public void MyPrint() {
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
MyRoom room = rooms[i][j];
System.out.print(room.toString());
}
System.out.println();
}
}
}
酒店系统类
package BUPT.Test;
import java.util.Scanner;
public class MyHotelSystem {
public static void main(String[] args) {
MyHotel hotel = new MyHotel();
System.out.println("欢迎使用酒店管理系统,请认真阅读此说明");
System.out.println("对应编号:[1]查看列表,[2]订房,[3]退房,[0]退出");
Scanner s = new Scanner(System.in);
while (true) {
System.out.println("请输入对应编号:");
int i = s.nextInt();
if (i == 1) {
hotel.MyPrint();
} else if (i == 2) {
System.out.println("请输入订房编号:");
int roomNo = s.nextInt();
hotel.order(roomNo);
System.out.println(roomNo + "已订房");
} else if (i == 3) {
System.out.println("请输入退房编号:");
int roomNo = s.nextInt();
hotel.withdraw(roomNo);
System.out.println(roomNo + "已退房");
} else if (i == 0) {
System.out.println("欢迎下次再来");
return;
} else {
System.out.println("您的输入有误,请重新输入");
}
}
}
}
结束时间:2020-11-06
最后
以上就是机灵高跟鞋为你收集整理的JavaSE进阶399-416二维数组和酒店管理系统习题二维数组动态初始化二维数组一维数组压栈弹栈模拟数组复习简易的酒店管理系统的全部内容,希望文章能够帮你解决JavaSE进阶399-416二维数组和酒店管理系统习题二维数组动态初始化二维数组一维数组压栈弹栈模拟数组复习简易的酒店管理系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复