代码实现
import java. util. Scanner;
public class Demo1 {
static Scanner input= new Scanner ( System. in) ;
static String[ ] number = new String [ 10 ] ;
static String[ ] companies = new String [ 10 ] ;
static int [ ] codes = new int [ 10 ] ;
static int count = 0 ;
public static void main ( String[ ] args) {
boolean flag = true ;
while ( flag) {
System. out. println ( "====欢迎使用新职课快递柜====" ) ;
System. out. println ( "请输入您的身份:1-快递员,2-用户,3-退出" ) ;
int a = input. nextInt ( ) ;
switch ( a) {
case 1 :
adminLoop ( ) ;
break ;
case 2 :
userLoop ( ) ;
break ;
case 3 :
flag = false ;
System. out. println ( "欢迎下次使用" ) ;
break ;
default :
System. out. println ( "请你重新输入" ) ;
break ;
}
}
}
private static void userLoop ( ) {
boolean flag = true ;
while ( flag) {
System. out. println ( "1-取快递,2-返回主菜单" ) ;
int a = input. nextInt ( ) ;
switch ( a) {
case 1 :
pickUpExpress ( ) ;
break ;
case 2 :
flag = false ;
break ;
default :
System. out. println ( "请你重新输入" ) ;
break ;
}
}
}
private static void pickUpExpress ( ) {
int code = inputCode ( ) ;
int index = findCodeBy ( code) ;
if ( index == - 1 ) {
System. out. println ( "没有这个快递" ) ;
} else {
deleteExpressBy ( index) ;
System. out. println ( "取件成功" ) ;
}
}
private static void deleteExpressBy ( int index) {
number[ index] = null;
companies[ index] = null;
codes[ index] = 0 ;
count-- ;
}
private static int findCodeBy ( int code) {
for ( int i= 0 ; i< codes. length; i++ ) {
if ( codes[ i] == code) {
return 1 ;
}
}
return - 1 ;
}
private static int inputCode ( ) {
System. out. println ( "请你输入取件码" ) ;
int a = input. nextInt ( ) ;
return a;
}
private static void adminLoop ( ) {
boolean flag = true ;
while ( flag) {
System. out. println ( "1-存快递,2-删除快递,3-修改快递信息,4-查看所有快递,5-返回主菜单" ) ;
int a = input. nextInt ( ) ;
switch ( a) {
case 1 :
storageExpress ( ) ;
break ;
case 2 :
deleteExpress ( ) ;
break ;
case 3 :
updateExpress ( ) ;
break ;
case 4 :
findallExpress ( ) ;
break ;
case 5 :
flag = false ;
System. out. println ( "返回主菜单" ) ;
break ;
default :
System. out. println ( "请你重新输入" ) ;
}
}
}
private static void storageExpress ( ) {
int empty = findEmpty ( ) ;
if ( empty < 0 ) {
System. out. println ( "快递柜满了" ) ;
} else {
String numbers = inputNumber ( ) ;
if ( findExpressBy ( numbers) < 0 ) {
String company = inputCompany ( ) ;
int code = initCode ( ) ;
saveExpress ( numbers, company, code, empty) ;
System. out. println ( "快递已存入,取件码是:" + code) ;
} else {
System. out. println ( "单号重复了" ) ;
}
}
}
private static void saveExpress ( String numbers, String company, int code, int empty) {
number[ empty] = numbers;
companies[ empty] = company;
codes[ empty] = code;
count++ ;
}
private static int initCode ( ) {
int code = 0 ;
do {
code = getcode ( ) ;
} while ( findCodeBy ( code) > 0 ) ;
return code;
}
private static int getcode ( ) {
int a = ( int ) ( Math. random ( ) * 900 + 100 ) ;
return a;
}
private static String inputCompany ( ) {
System. out. println ( "请输入公司名称" ) ;
String a = input. next ( ) ;
return a;
}
private static int findExpressBy ( String a) {
for ( int i= 0 ; i< number. length; i++ ) {
if ( a. equals ( number[ i] ) ) {
return i;
}
}
return - 1 ;
}
private static String inputNumber ( ) {
System. out. println ( "请输入快递单号" ) ;
String a = input. next ( ) ;
return a;
}
private static int findEmpty ( ) {
for ( int i= 0 ; i< number. length; i++ ) {
if ( number[ i] == null) {
return i;
}
}
return - 1 ;
}
private static void deleteExpress ( ) {
String a = inputNumber ( ) ;
int index = findExpressBy ( a) ;
if ( index < 0 ) {
System. out. println ( "你所要删除的快递不存在" ) ;
} else {
deleteExpressBy ( index) ;
System. out. println ( "删除成功" ) ;
}
}
private static void updateExpress ( ) {
String a = inputNumber ( ) ;
int index = findExpressBy ( a) ;
if ( index < 0 ) {
System. out. println ( "你要修改的快递不存在" ) ;
} else {
String b = inputNumber ( ) ;
String c = inputCompany ( ) ;
updateExpressBy ( b, c, index) ;
System. out. println ( "修改成功" ) ;
}
}
private static void updateExpressBy ( String b, String c, int index) {
number[ index] = b;
companies[ index] = c;
}
private static void findallExpress ( ) {
if ( count == 0 ) {
System. out. println ( "无任何快递信息!" ) ;
return ;
}
for ( int i = 0 ; i < number. length; i++ ) {
if ( number[ i] != null) {
System. out. println ( "单号:" + number[ i] + "\t公司名称:" + companies[ i] + "取件码\t" + codes[ i] ) ;
}
}
}
}