使用Java语言模拟超市储物箱案例

news/2024/10/17 22:13:24/

需求:有存包和取包两种操作。 系统初始化有一系列的储物格, 存包动作生一个密码, 并占用一个储物格; 取包时验证输入储物格编号以及密码,正确则清空储物格。

import java.util.Random;
import java.util.Scanner;public class SupermarketStoreBox {public static int[] boxex = new int[24];static Scanner scan = new Scanner(System.in);public static void main(String[] args) {welcome();}/*** 定义一个画箱子的方法*/public static void drawBoxex() {for (int i = 0; i < 12; i++) {// 遍历第一行的12个箱子if (boxex[i] == 0) {// 判断箱子中是否有东西System.out.print(" □ ");// 打印空箱子} else {// 箱子中有东西System.out.print(" ■ ");// 打印实心箱子}}System.out.println();for (int j = 1; j <= 12; j++) {System.out.printf("%2d ", j);// 给前12个箱子编号}System.out.println();for (int x = 12; x < boxex.length; x++) {// 打印后12个箱子if (boxex[x] == 0) {// 判断箱子中是否有东西System.out.print(" □ ");} else {// 箱子中有东西System.out.print(" ■ ");}}System.out.println();for (int y = 13; y <= 24; y++) {System.out.printf("%2d ", y);// 给后12个箱子编号}System.out.println();}/*** 存包方法:判断箱子是否已存东西,如果没有存东西,提示用户箱子可以使用 并且生成密码, * 已经存东西了,继续查找空箱子,如果没有找到空箱子,* 提示用户箱子已经满了,请稍后。*//*** 定义一个存包的方法*/public static void put() {Random rd = new Random();for (int i = 0; i <= 23; i++) {if (boxex[i] == 0) {// 箱子是空的boxex[i] = rd.nextInt(8999) + 1000;// 生成密码System.out.println((i + 1) + "号箱子可以使用");System.out.println("这是您的密码:" + boxex[i] + ",切勿告诉他人~");break;}if (i == 23) {System.out.println("箱子已经满了,请稍后!");}}}/*** 定义一个取包的方法*/public static void get() {int count = 0;//计数器,记录密码输错次数System.out.println("请输入箱号:");int i = scan.nextInt() - 1;if (i > 23) {System.out.println("不存在该储物箱子");} else {if (boxex[i] == 0) {System.out.println("该箱子中并没有东西!");} else {while (true) {System.out.println("请输入箱子密码:");int pwd = scan.nextInt();if (boxex[i] == pwd) {System.out.println((i + 1) + "号箱子打开,请取走您的贵重物品!");boxex[i] = 0;break;} else {count++;System.out.println("密码错误,请重新输入!");if (count >= 3) {System.out.println("密码输错3次,储物箱被锁定,请联系前台服务人员解决。");return;}}}}}}/*** 欢迎界面*/public static void welcome() {System.out.println("\t------------储物箱管理系统------------\n\n");System.out.println("\t  ╱╲╱╲ ╰★╮【储】╭★╯  ╱╲╱╲      \n");System.out.println("\t   ╲欢╲╱ ╰☆╮【物】╭☆╯  ╲╱欢╱      \n");System.out.println("\t   ╱╲迎╲  ╰★╮【管】╭★╯  ╱迎╱╲      \n");System.out.println("\t  ╱╲╱╲ ╰☆╮【理】╭☆╯    ╱╲╱╲   \n\n");operate();}/*** 操作方法*/public static void operate() {while (true) {drawBoxex();System.out.println("\t--------------------------------------\n");System.out.println("\t     1、存包     2、取包     0、退出");System.out.println("请选择操作:");int select = scan.nextInt();switch (select) {case 1:put();break;case 2:get();break;case 0:exit();break;default:System.out.println("输入错误");break;}}}/*** 退出方法*/public static void exit() {System.out.println("欢迎下次再来,Bye Bye!!!");System.exit(0);}}



http://www.ppmy.cn/news/533340.html

相关文章

指针与储物箱的关系

指针类型是C、Pascal等语言中比较重要的数据类型。在使用上很灵活。在C中可以使用如下的语句一个int指针类型&#xff1a; int * p; 如果要为指针变量赋值&#xff0c;可以使用如下的语句&#xff1a; int x 4 ; int * p; p & x; 对于初学者来说&#xff0c;可…

NGUI官网示例13 –Character角色装配与储物箱(三)

该部分主要是为实现装备在拖动的时候出现拖动图标的效果和当鼠标放置在装备上时提示装备的一些信息而做准备。 使用UI Tool创建一个Simple 2D UI层级结构&#xff0c;其Layer为2DGUI&#xff0c;我们通过不同的图层的设置让摄像机只显示我们设定的图层中的对象&#xff0c;有点…

Linux5.8 MySQL主从复制与读写分离

文章目录 计算机系统5G云计算第四章 LINUX MySQL主从复制与读写分离一、概述及原理1&#xff09;什么是读写分离2&#xff09;为什么要读写分离呢3&#xff09;什么时候要读写分离4&#xff09;主从复制与读写分离5&#xff09;mysql支持的复制类型6&#xff09;主从复制的工作…

西安阿里云代理商:阿里云服务器的可扩展性和弹性如何?是否支持按需付费?

西安阿里云代理商&#xff1a;阿里云服务器的可扩展性和弹性如何&#xff1f;是否支持按需付费&#xff1f;   一、阿里云服务器的可扩展性   阿里云作为业界知名的云服务提供商&#xff0c;其服务器具有极强的可扩展性。可扩展性主要体现在以下几方面&#xff1a;   1. …

行为型模式--状态模式

目录 举例 状态模式 定义 结构 代码实现 优缺点 优点&#xff1a; 缺点&#xff1a; 使用场景 举例 【例】通过按钮来控制一个电梯的状态&#xff0c;一个电梯有开门状态&#xff0c;关门状态&#xff0c;停止状态&#xff0c;运行状态。每一 种状态改变&#xff0c;都…

剑指 Offer 55 - II. 平衡二叉树 / LeetCode 110. 平衡二叉树(二叉树后序遍历)

题目&#xff1a; 链接&#xff1a;剑指 Offer 55 - II. 平衡二叉树&#xff1b;LeetCode 110. 平衡二叉树 难度&#xff1a;简单 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 …

MySQL权限控制及日志管理

MySQL权限控制及日志管理 用户权限管理 创建用户 CREATE USER 用户名IP地址 [ IDENTIFIED BY 密码 ]&#xff1b;GRANT SELECT ON *.* TO 用户名’IP地址’ IDENTIFIED BY "密码"&#xff1b;--创建一个用户名为Usr1 密码为 Usr1.mysql的用户 并授权 CREATE USER…

【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 文章目录 系列文章目录前言一、所有权(Ownership)1.1.、所有权(Ow…