功能介绍:
1. 角色切换(快递员和普通用户)
快递员功能:存快递,删除快递,修改快递,查看所有快递 普通用户功能:取快递
2. 存快递
3. 删除快递
4. 修改快递
5. 查看所有快递
6. 取快递
任务过程: 1. 切换用户界面
2. 快递信息的保存
3.各个子功能的实现
package day01_text1;
import java.util.Random;
import java.util.Scanner;
public class test_010105{
public static Scanner input =new Scanner(System.in);//调用用户输入
public static String[] danHaoArr=new String[100];//单号数组
public static String[] gongSiArr=new String[100];//公司名称数组
public static int[] quJianMaArr=new int[100];//取件码数组
public static int index=0;//快递柜中共有多少个快递
public static Random random =new Random();//生成随机数的方法
public static void main(String[] args) {
while(true) {
int id =caiDan();
if(id==3) {
return;
}
}
}
/*
* 展示菜单
*/
public static int caiDan() {
System.out.println("欢迎使用模拟快递柜");
System.out.println("请输入您的身份:1-快递员 2-用户 3-退出");
int id=0;
do {
id = input.nextInt();
if(id==1 ) {
kuaiDiYuanCaiDan();
break;
}
else if (id==2) {
yongHuCaiDan();
break;
}
else if (id==3){
System.out.println("谢谢使用");
return 3;
}
else{
System.out.print ("您输入有误,请重试");
}
}while(true);
return id;
}
/*
* 快递员菜单
*/
public static void kuaiDiYuanCaiDan() {
System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4 查看所有快递信息");
do{
int id =input.nextInt();
if(id==1) {
cunKuaiDi();
break;
}else if(id==2) {
shanChuKuaiDi();
break;
}else if(id==3) {
xiuGaiKuaiDi();
break;
}else if(id==4) {
chaKanKuaiDi();
break;
}else {
System.out.println("您输入有误,请重试");
}
}while(true);
}
/*
* 用户的菜单
*/
public static void yongHuCaiDan() {
System.out.print("请输入取件码:");
int quJianMa =input.nextInt();
int quJianMaIndex=chongFu(quJianMa);
if(quJianMaIndex==-1) {
System.out.println("未找到快递");
}else {
shanChu(quJianMaIndex);
System.out.println("取件成功,欢迎下次使用");
}
}
/*
* 存快递
*/
public static void cunKuaiDi(){
System.out.println("请输入快递单号");
String danHao=input.next();
System.out.println("请输入公司名称");
String gongSi=input.next();
danHaoArr[index]=danHao;//单号中的第index个位置=单号(存放的位置)
gongSiArr[index]=gongSi;//公司名称中的第index个位置=公司(存放的位置)
int quJianMa=0;//取件码初赋值为0
do {
quJianMa= random.nextInt(999)+100;//随机生成100~999的随机取件码
}while(chongFu(quJianMa)!=-1);//如果取件码重复了,就再生成
quJianMaArr[index]=quJianMa;//取件码中的第index个位置=取件码(存放的位置)
index++;//每存放一个快递后 总快递数+1
System.out.println("快递已存入,取件码是:"+quJianMa);
}
/*
* 判断取件码是否重复
*/
public static int chongFu(int quJianMa) {
for(int i=0;i<index;i++) {
if(quJianMaArr[i]==quJianMa) {
return i;//如果取件码数组中的某一个取件码等于已有的取件码了 就返回下标
}
}
return -1;//没有重复的 则返回-1
}
/*
* 删除快递
*/
public static void shanChuKuaiDi() {
System.out.println("请输入要删除的快递单号");
String shanChuDanHao=input.next();
int delIndex=chaZhao(shanChuDanHao);//创建一个变量用来记录要删除的单号
if(delIndex==-1) {
System.out.println("未找到快递");
}else {
shanChu(delIndex);
System.out.println("删除成功");
}
}
/*
* 删除操作
*/
public static void shanChu(int delIndex) {
if(delIndex!=danHaoArr.length-1) {
for(int i =delIndex;i<index;i++) {
danHaoArr[i]=danHaoArr[i+1];
gongSiArr[i]= gongSiArr[i+1];
quJianMaArr[i]=quJianMaArr[i+1];
}
}
index--;
}
/*
* 根据快递单号去查找是否有该单号
*/
public static int chaZhao(String shanChuDanHao){
for(int i=0;i<index;i++) {
if(danHaoArr[i].equals(shanChuDanHao)) {
return i;
}
}
return -1;
}
/*
* 修改快递信息
*/
public static void xiuGaiKuaiDi() {
System.out.println("请输入要修改的快递单号");
String xiuGai=input.next();
int updateIndex =(chaZhao(xiuGai));//updateIndex:若不等于-1,则就是找到的那个要被修改的快递
if(updateIndex==-1) {
System.out.println("未找到快递");
}else {
System.out.println("请输入新的快递单号");
String xinDanHao =input.next();
System.out.println("请输入新的公司名称");
String xinGongSi =input.next();
danHaoArr[updateIndex]=xinDanHao;
gongSiArr[updateIndex]=xinGongSi;
System.out.println("修改成功!");
}
}
/*
* 查看所有快递
*/
public static void chaKanKuaiDi() {
System.out.println("所有快递信息如下:");
System.out.println("快递单号\t公司名称\t取件码");
for(int i=0;i<index;i++) {
System.out.println(danHaoArr[i]+"\t"+gongSiArr[i]+"\t"+quJianMaArr[i]);
}
}
}