package 快递E栈;
用面向过程写的快递E栈,(可以很好的练习方法的调用)
针对Java新手,注释很详细!
package 快递E栈;
import java.util.Random;
import java.util.Scanner;
public class demo1 {
static int length = 100; //定义长度
static int[] expressId = new int[length]; //快递单号
static String[] company = new String[length]; //快递公司
static int[] expressCode = new int[length]; //取件码
static int index = 0;
static Scanner sc = new Scanner(System.in);
//进入页面
public static void startInterface() {
System.out.println("=====欢迎使用新职课快递柜=====");
System.out.println("请输入您的身份 1-快递员,2-用户 (输入-1退出)");
int role = sc.nextInt();
switch(role){
case 1:
expressInterface(); //调用快递员页面的方法
break;
case 2:
userInterface(); //调用用户页面的方法
break;
case -1:
System.out.println("=====新职课快递柜感谢您的使用=====");
break;
default:
System.out.println("请输入正确的数字");
startInterface(); //再次调用此次循环
break;
}
}
//用户登录界面
private static void userInterface() {
System.out.println("请输入取件码");
int code = sc.nextInt();
boolean flag = true;
for(int i=0;i<expressCode.length;i++) {
if(code == expressCode[i]) {
System.out.println("取件成功");
expressId[i] = 0; //则Id等信息全部赋值为0
expressCode[i] = 0;
company[i] = null;
flag = false; //若找到则flag为false
}
}
if(flag) //若上面if没找到,则flag依旧为,所以执行
System.out.println("未找到该快递");
startInterface();
}
//快递员登录界面
private static void expressInterface() {
System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递 (输入-1退出)");
int num = sc.nextInt();
switch(num) {
case 1:
storageExpress(); //调用存快递的方法
break;
case 2:
deleteExpress(); //调用删除快递的方法
break;
case 3:
alterExpress(); //调用修改快递信息的方法
break;
case 4:
examineExpress(); //调用查看快递的方法
break;
case -1:startInterface();
}
}
//存储快递的方法
private static void storageExpress() {
System.out.println("请输入快递单号"); //提醒用户输入快递单号
int Id = sc.nextInt(); //接收用户输入的快递单号
expressId[index] = Id; //将接收的Id存入数组expressId中
System.out.println("请输入公司名称");
String names = sc.next();
company[index] = names;
Random ran = new Random(); //随机生成四位数取件码
int randomNum = ran.nextInt(9999)+1000;
expressCode[index] = randomNum; //将随机生成的取件码存入expressCode数组中
if(expressId[index]==Id && company[index].equals(names) && expressCode[index]==randomNum) {
System.out.println("快递已存入,取件码为"+randomNum);
}
index++;
startInterface();
}
//删除快递的方法
private static void deleteExpress() {
System.out.println("请输入要删除的快递单号"); //提醒用户输入
int deleteNum = sc.nextInt(); //接收用户输入
for(int i=0;i<length-1;i++) { //判断所输入的是否在expressId数组中
if(expressId[i] == deleteNum) { //若在
expressId[i] = 0; //则Id等信息全部赋值为0
expressCode[i] = 0;
company[i] = null; //下面也都是写方法,具体解释就参考以上!
System.out.println("删除成功");
break;
}
else
System.out.println("未找到快递");
break;
}
startInterface();
}
//修改快递信息的方法
private static void alterExpress() {
System.out.println("请输入要修改的快递单号:");
int Id = sc.nextInt();
for(int i=0;i<length-1;i++) {
if(expressId[i]==Id) {
System.out.println("请输入新的快递单号:");
int newId =sc.nextInt();
expressId[i] = newId;
System.out.println("请输入新的快递公司");
String newCompany = sc.next();
company[i] = newCompany;
System.out.println("修改成功");
break;
}
else {
System.out.println("未找到快递");
break;
}
}
startInterface();
}
//查看所有快递的方法
private static void examineExpress() {
System.out.println("所有快递信息如下:");
System.out.println("快递单号\t\t公司名称\t\t取件码");
for(int i=0;i<length;i++){
if(expressId[i]!=0 && expressCode[i]!=0) {
System.out.printf("%d\t\t%s\t\t%d",expressId[i],company[i],expressCode[i]);
System.out.println();
}
}
startInterface();
}
public static void main(String[] args) {
startInterface();
}
}