- 1. 角色切换(快递员和普通用户)
- 快递员功能:存快递,删除快递,修改快递,查看所有快递
- 普通用户功能:取快递
- . 2.取件码使用的随机数生成
package demo6;
import java.util.Random;
import java.util.Scanner;
public class Express {
static Scanner sc=new Scanner(System.in);
static String[] courier=new String[50];//快递号
static String[] company=new String[50];//公司
static int[] code=new int[50]; //取件码
static int len=0;//记录数组元素个数
public static void main(String[] args) {
identify();
}
/**
* 身份识别
*/
private static void identify() {
System.out.println("=====欢迎使用新职课快递柜=======");
System.out.println("请输入您的身份:1-快递员,2-用户");
int num = sc.nextInt();
while(num>2){
System.out.println("请重新输入正确的编号");
num=sc.nextInt();
}
if (num==1){
courierOperator();
}else if(num==2){
userOperator();
}
}
/**
* 用户操作
*/
private static void userOperator() {
pickUp(); //取快递
}
/**
* 取快递
*/
private static void pickUp() {
System.out.println("请输入取件码:");
int num = sc.nextInt();
int i;
for (i = 0; i < len; i++) {
if (num==code[i]){
courier=kickOff(courier,i);//删除快递单号
company=kickOff(company,i);//删除公司
code=kickOff(code,i);//删除取件码
len--;//删除后,数组中实际元素个数减一
System.out.println("取件成功");
}
}
if (i>len) System.out.println("未找到该快递");
identify();
}
/**
* 快递员操作
*/
private static void courierOperator() {
System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");
int num = sc.nextInt();
while(num>4){
System.out.println("请重新输入正确的编号");
num=sc.nextInt();
}
switch (num){
case 1:save();break; //存快递
case 2:delete();break; //删除快递
case 3:modify();break; //修改快递
case 4:inquire();break; //查看所有信息
}
}
/**
* 修改快递
*/
private static void modify() {
System.out.println("请输入要修改的快递单号");
String num = sc.next();
System.out.println("请输入新的快递单号");
String newNum = sc.next();
System.out.println("请输入新的公司名称");
String newCompany = sc.next();
for (int i = 0; i < len; i++) {
if (courier[i].equals(num)) {
courier[i] = newNum;
company[i] = newCompany;
}
}
System.out.println("修改成功");
identify();
}
/**
* 查询所有快递
*/
private static void inquire() {
System.out.println("所有快递信息如下:");
System.out.println("快递单号"+"\t"+"公司名称"+"\t"+"取件码");
for (int i = 0; i < len; i++) {
System.out.println(courier[i]+"\t"+company[i]+"\t"+"\t"+code[i]);
}
identify();
}
/**
* 删除快递
*/
private static void delete() {
System.out.println("请输入要删除的快递单号:");
String num = sc.next();
int i;
for ( i = 0; i < len; i++) {
if (courier[i].equals(num)){
courier=kickOff(courier,i);//删除快递单号
company=kickOff(company,i);//删除公司
code=kickOff(code,i);//删除取件码
len--;//删除后,数组中实际元素个数减一
System.out.println("删除成功");
}
}
if (i>len) System.out.println("未找到快递");
identify();
}
/**
* 具体删除快递方法
* @param a
* @param index
* @return
*/
private static String[] kickOff(String[] a,int index){
String[] b=new String[a.length-1]; //新数组
System.arraycopy(a,0,b,0,index); //将数组下标index之前元素复制到b
System.arraycopy(a,index+1,b,index,a.length-1-index);//将index后面元素复制到b
return b;
}
private static int[] kickOff(int[] a,int index){
int[] b=new int[a.length-1]; //新数组
System.arraycopy(a,0,b,0,index); //将数组下标index之前元素复制到b
System.arraycopy(a,index+1,b,index,a.length-1-index);//将index后面元素复制到b
return b;
}
/**
* 存快递
*/
private static void save() {
System.out.println("请输入快递单号:");
courier[len]=sc.next();
System.out.println("请输入公司名称:");
company[len]=sc.next();
int ramdom = new Random().nextInt(1000);
code[len]=ramdom;
len++;
System.out.println("快递已存入,取件码是"+ramdom);
identify();
}
}