话不多说,直接上一波项目导图~
参考代码
package com.water.javaSE;
import java.util.Scanner;
public class Goods {
//定义容量为11(含表头,实际为10)的三个字符串数组存储快递信息:快递编号、公司名称、取件码
private static final int TOTAL = 11;
//记录快递柜可用数量
private static int store = 10;
//快递编号
private static final String[] NUM = new String[TOTAL];
//公司名称
private static final String[] COMPANY = new String[TOTAL];
//取件码
private static final String[] CODE = new String[TOTAL];
//用户交互,获取输入值
private static final Scanner INPUT = new Scanner(System.in);
//初始化表头信息
static {
NUM[0]="快递编号";
COMPANY[0]="公司名称";
CODE[0]="取件码";
}
/**
* 主程序入口
* @param args
*/
public static void main(String[] args) {
//快栈e递测试
controller();
}
/**
* 1、主界面控制
* 角色:快递员-1,用户-2
* 快递员功能:
* 1、存快递(新建)
* 2、删除快递
* 3、修改快递信息
* 4、查看所有快递
*
* 用户功能:1、取快递
*/
public static void controller(){
System.out.println();
System.out.println("===============欢迎来到”waterking“快递柜===============");
System.out.println(" ==============可用柜子【"+store+"】个============== ");
System.out.println();
System.out.println("请输入您的角色:1-快递员,2-用户");
int a=0;
while(true){
if (INPUT.hasNextInt()){
a= INPUT.nextInt();
if (a==1||a==2)
break;
}
System.out.println("输入无效,请重新输入1或者2");
}
switch (a){
case 1:
System.out.println("请输入操作:1-存快递,2-删除快递,3-修改快递信息,4-查看所有快递");
while(true){
if (INPUT.hasNextInt()){
a= INPUT.nextInt();
if (a==1||a==2||a==3||a==4)
break;
}
System.out.println("输入无效,请重新输入1~4");
}
if (a==1)
add();
else if (a==2)
delete();
else if (a==3)
update();
else
selectAll();
break;
case 2:
System.out.println("请输入操作:1-取快递");
while(true){
if (INPUT.hasNextInt()){
a= INPUT.nextInt();
if (a==1)
break;
}
System.out.println("输入无效,请重新输入1");
}
get();
break;
}
}
/**
* 取快递
*/
private static void get() {
System.out.println("请输入快递单号:");
String strNum = INPUT.next();
System.out.println("请输入取件码!");
String strCode = INPUT.next();
//忽略表头,从索引1开始遍历
for (int i = 1; i < TOTAL; i++) {
if (strNum.equals(NUM[i])&&strCode.equals(CODE[i])){
System.out.println("取件成功!");
//取件成功,清空该条记录,表示可用数量+1
NUM[i]=null;
COMPANY[i]=null;
CODE[i]=null;
store--;
break;
}
if (i==TOTAL-1){
System.out.println("未找到快递!");
}
}
//功能跳转
System.out.println("请选择你的操作:1-重复当前操作,其他输入-返回主界面");
String str = INPUT.next();
if (str.equals("1")) {
get();
} else {
controller();
}
}
/**
* 查看所有快递
*/
private static void selectAll() {
System.out.println("所有快递信息如下:");
for (int i = 0; i < TOTAL; i++) {
if (NUM[i]==null){
//跳转语句,跳过该次循环,不展示null的记录
continue;
}
System.out.print(NUM[i]+"\t\t"+ COMPANY[i]+"\t\t"+ CODE[i]);
System.out.println();
}
//功能跳转
System.out.println("请选择你的操作:1-重复当前操作,其他输入-返回主界面");
String str = INPUT.next();
if (str.equals("1")) {
selectAll();
} else {
controller();
}
}
/**
* 修改快递信息
*/
private static void update() {
System.out.println("请输入要修改的快递单号:");
String strNum = INPUT.next();
for (int i = 1; i < TOTAL; i++) {
if (strNum.equals(NUM[i])){
System.out.println("请输入新的快递单号:");
NUM[i]= INPUT.next();
System.out.println("请输入新的公司名称:");
COMPANY[i]= INPUT.next();
System.out.println("修改成功!");
break;
}
if (i==TOTAL-1){
System.out.println("未找到快递!");
}
}
//功能跳转
System.out.println("请选择你的操作:1-重复当前操作,其他输入-返回主界面");
String str = INPUT.next();
if (str.equals("1")) {
update();
} else {
controller();
}
}
/**
* 删掉快递
*/
private static void delete() {
System.out.println("请输入要删除的快递单号:");
String strNum = INPUT.next();
for (int i = 1; i < TOTAL; i++) {
if (strNum.equals(NUM[i])){
//删除,表示清空记录,可用数量+1
System.out.println("删除成功!");
NUM[i]=null;
COMPANY[i]=null;
CODE[i]=null;
store++;
break;
}
if (i==TOTAL-1){
System.out.println("未找到快递!");
}
}
//功能跳转
System.out.println("请选择你的操作:1-重复当前操作,其他输入-返回主界面");
String str = INPUT.next();
if (str.equals("1")) {
delete();
} else {
controller();
}
}
/**
* 存快递
*/
private static void add() {
System.out.println("请输入快递单号:");
String strNum = INPUT.next();
System.out.println("请输入公司名称:");
String strCompany = INPUT.next();
//生成1000以内的随机码,1-999
String strCode = Math.round(Math.random()*1000)+"";
//添加前,先判断可用数量是否为0
if (store!=0){
for (int i = 1; i < TOTAL; i++) {
if (NUM[i]==null){
NUM[i]=strNum;
COMPANY[i]=strCompany;
CODE[i]=strCode;
//添加成功,表示可用数量-1
store--;
System.out.println("存储成功!取件码为:"+strCode);
break;
}
}
}else {
//可用数量为0,表示快递柜已满,需要更改初始容量!
System.out.println("快递柜已满!");
}
//功能跳转
System.out.println("请选择你的操作:1-重复当前操作,其他输入-返回主界面");
String str = INPUT.next();
if (str.equals("1")) {
add();
} else {
controller();
}
}
}
代码要多敲才有感觉,看懂了不代表真的会,会的也不一定熟练。
唯有多敲多思考多总结,才能夯实基础,体会编程带来的快乐~
有态度的结尾:
“编程之光是谁?你大爷还是你大爷……”
“下回再指教~”