Java控制台储物柜的实现

import java.util.Random;

import java.util.Scanner;

public class 储物箱 {

private static int[] lockers = new int[24];

private static int[] pass = new int[24];

private static Random random = new Random();

private static Scanner sc=new Scanner(System.in);

public static void main(String[] args) {

initialization();// 初始化箱子

// 显示箱子状态,主菜单

displayLockers();// 显示箱子状态,主菜单

}

// 初始化箱子,所有箱子都设置为空(0)

public static void initialization() {

for (int i = 0; i < lockers.length; i++) {

lockers[i] = 0;

}

}

//储物柜显示

public static void displayLockers() {

System.out.println("欢迎进入储物箱管理系统!");

Range(0, lockers.length / 2);

Range(lockers.length / 2, lockers.length);

System.out.println();

System.out.println("1.存包\t2.取包\t0.退出");

System.out.print("请选择:");

int select=sc.nextInt();

switch (select){

case 1:

check();

break;

case 2:

pickup();

break;

default:break;

}

}

private static void Range(int start, int end) {

//打印储物柜状态

for (int i = start; i < end; i++) {

System.out.print(lockers[i] == 0 ? "□\t" : "■\t"); // Display empty/filled boxes

}

System.out.println();

//打印编号

for (int i = start; i < end; i++) {

System.out.print((i + 1) + "\t");

}

System.out.println();

}

//存包

public static void check(){

for (int i=0;i

if (lockers[i]==0){

lockers[i]=1;

pass[i]=random.nextInt(89999)+10000;

System.out.println("请使用"+(i+1)+"号箱,密码为:"+pass[i]);

System.out.println("按任意键返回...");

ret();

displayLockers();

sc.close();

break;

}

}

}

//取包

public static void pickup() {

System.out.println("请输入箱号:");

int n = sc.nextInt();

if (n > 24 || n < 1) {

System.out.println("输入有误,请重新输入!");

pickup();

} else {

if (lockers[n - 1] != 0) {

System.out.println("请输入密码:");

int p = sc.nextInt();

if (p == pass[n - 1]) {

lockers[n-1]=0;//清空储物柜

System.out.println(n + "号箱已打开...");

System.out.println("按任意键返回...");

ret();

displayLockers();

} else {

System.out.println("密码错误");

pickup();

}

} else {

System.out.println("该柜为空柜,请核对箱号是否正确!");

pickup();

}

}

}

//按任意键返回

public static void ret(){

Scanner input = new Scanner(System.in);

String s=input.nextLine();

}

}