import java.util.Random;
import java.util.Scanner;
public class Task_101010008_Express {
public static Scanner input=new Scanner(System.in);
public static String[] numArr=new String[100];//快递单号
public static String[] gongsiArr=new String[100];//快递公司
public static int[] qujianArr=new int[100];//取件码
public static int index=0;//快递柜中有多少快递
public static Random random=new Random();
public static void main(String[] args) {
//菜单
while(true) {
int id=startMenu();
if(id==0)
return;
}
}
/**
* 开始菜单
*/
public static int startMenu() {
System.out.println("欢迎使用快递柜");
System.out.print("输入你的身份:1.快递员 2.用户 0.退出");
int id=0;
do {
id=input.nextInt();
if(id==1) {
kuaidiMenu();
break;
}else if(id==2) {
yhMenu();
break;
}else if(id==0){
System.out.println("谢谢使用");
return 0;
}else {
System.out.println("选择有误,请重新输入:");
}
}while(true);
return id;
}
/** 普通用户菜单
*/
public static void yhMenu() {
System.out.println("请输入取件码");
int qujian=input.nextInt();
int qujianIndex=isExist(qujian);
if(qujianIndex==-1) {
System.out.println("未找到快递");
}else {
del(qujianIndex);
System.out.println("取件成功");
}
}
/**
* 快递员菜单
*/
public static void kuaidiMenu() {
System.out.print("选择操作:1.存快递 2.删除快递 3.修改快递信息 4.查看快递");
int id=input.nextInt();
if(id==1) {
saveExpress();
}else if(id==2) {
delExpress();
}else if(id==3) {
System.out.println("输入要修改的快递单号");
String num=input.next();
int updateIndex=findByNum(num);
if(findByNum(num)==-1) {
System.out.println("未找到快递");
}else {
System.out.print("输入新的快递单号");
num=input.next();
System.out.print("输入新的公司名称");
String gongsi=input.next();
numArr[updateIndex]=num;
gongsiArr[updateIndex]=gongsi;
System.out.println("修改成功");
}
}else if(id==4) {
printAll();
}
}
/**
* 删除快递
*/
public static void delExpress() {
System.out.print("输入删除的快递单号:");
String num=input.next();
int delIndex=findByNum(num);
if(delIndex==-1) {
System.out.println("未找到快递");
}else {
//删除
System.out.println("删除成功");
}
}
public static void del(int delIndex) {
if(delIndex==numArr.length-1) {
for(int i=delIndex;i<index;i++) {
numArr[i]=numArr[i+1];
gongsiArr[i]=gongsiArr[i+1];
qujianArr[i]=qujianArr[i+1];
}
}
index--;
}
/**
* 查看所有快递
*/ public static void printAll() {
System.out.println("----所有快递信息-----");
System.out.println("快递单号\t公司名称\t取件码");
for (int i = 0;i<index;i++) {
System.out.println(numArr[i]+"\t"+gongsiArr[i]+"\t"+qujianArr[i]);
}
}
/**
* 根据快递单号
* @param num 找到下标-1===表示找到
* @return
*/
public static int findByNum(String num) {
for (int i = 0;i<index; i++){
if(numArr[i].equals(num)) {
return i;
}
}
return -1;
}
/**
* 存快递
*/
public static void saveExpress() {
System.out.print("输入快递单号:");
String num=input.next();
System.out.print("输入公司名称:");
String gongsi=input.next();
numArr[index]=num;
gongsiArr[index]=gongsi;
//自动生成
int qujian=0;
//保证不重复
do{
qujian=random.nextInt(900)+100;
}while(isExist(qujian)!=-1);
qujianArr[index]=qujian;
index++;
System.out.println("快递已存入,取件码是:"+qujian);
}
//判断取件码是否重复
public static int isExist(int qujian) {
for(int i = 0;i<index;i++) {
if(qujianArr[i]==qujian) {
return i;
}
}
return -1;
}
}