您的位置:首页 > 其它

智能快递柜 小区快递管理系统 疫情期间为了减少人员接触,很多小区在快递的配送流程中,加入了快递柜

2020-07-14 06:31 531 查看

任务:
小区快递管理系统
疫情期间为了减少人员接触,很多小区在快递的配送流程中,加入了快递柜.

下面是class Kuaidi

// 父类class Kuaidi用于存储快递信息
private static String number;// 单号
private static String company;// 公司
private static int[][] nums = new int[10][10];//快递的位置
private static int code;// 取件码
public static Object[][] o = new Object[100][5];//用二维数组储存信息
private static int x;
private static int y;
public static int count = 0;
//。。。。。。。。。。。封装。。。。。。。。。。。。
public void setOskuaididanhao(String kuaididanhao) {
o[count][0] = kuaididanhao;
}
public void setOkuaidigongsi(String kuaidigongsi) {
o[count][1] = kuaidigongsi;
}
public void setOqujianma(int qujianma) {
o[count][2] = qujianma;
}
public void setOX(int X) {
o[count][3] = X;
}
public void setOY(int Y) {
o[count][4] = Y;
}
//class Admin 继承 Kuaidi
add方法用于放入快递
void add(String kuaididanhao, String kuaidigongsi) {
o[count][0] = kuaididanhao;
o[count][1] = kuaidigongsi;
Random random = new Random();
while (1 > 0) {
int x = random.nextInt(10);//生成随机柜子位置
setX(x);
int y = random.nextInt(10);
setY(y);
int[][] num1 = new int[10][10];
num1 = getNums();
if (num1[x][y] == 0) {//如果生成的柜子位置没有被使用,就赋值1
num1[x][y] = 1;
setOX(x);
setOY(y);
o[count][3] = x;
o[count][4] = y;
count++;//已存快递数量+1
break;
}
}
h: while (1 > 0) {//生成随机取件码
int code = random.nextInt(900000) + 100000;
for (int j = 0; j < count; j++) {
if (o[j][2].equals(code)) {//如果取件码重复,重新生成
break;
}
if (j == count - 1) {//扫描全部(除了自己本身)之后,没有重复就把这个取件码存到二维数组里
o[count][2] = code;
break h;
}
}
}
}
remove方法用于删除快递
并把该快递信息从二维数组中删除,他以后的信息的存储位置往前提一位
void remove(String a) {
int flag;
for (int i = 0; i < count; i++) {
if (o[count][0].equals(a)) {
flag = i;
for (int j = flag; j < 100; j++) {
o[j] = o[j + 1];
o[100] = null;
break;
}
}
}
count--;
}
//修改快递信息的方法
void xiugai(String a) {
int flag = -1;
for (int i = 0; i < count; i++) {
if (o[count][0].equals(a)) {
flag = i;
break;
}
Scanner input = new Scanner(System.in);
System.out.println("请修改快递单号");
o[flag][0] = input.nextLine();
System.out.println("请修改快递公司");
o[flag][1] = input.nextLine();
}
}

下面展示

快递员类

快递员
public class Courier extends Admin {
void inkuaidi() {
Scanner input = new Scanner(System.in);
System.out.println("请输入快递单号");
String danhao = input.nextLine();
System.out.println("请输入快递公司");
String gongsi = input.nextLine();
add(danhao, gongsi);
}
void changekuaidi() {
Scanner input = new Scanner(System.in);
System.out.println("请输入快递单号");
String danhao1 = input.nextLine();
xiugai(danhao1);
}
}

下面展示

用户类

用户
public class User extends Admin {
void outkuaidi() {
int flag;
System.out.println("请输入六位取件码");
Scanner in = new Scanner(System.in);
int a = in.nextInt();
for (int i = 0; i < count; i++) {
if (o[count][2].equals(a)) {
flag = i;
System.out.println(
"快递在第" + o[flag][3] + "行,第" + o[flag][4] + "列。快递公司:" + o[flag][1] + ",快递单号:" + o[flag][0]);
for (int j = flag; j < 100; j++) {
o[j] = o[j + 1];
o[100] = null;
}
break;
}
}
count--;
}
}

下面展示

使用界面类

使用界面
public class Interface {
public static void main(String[] args) {
User u = new User();
Courier courier = new Courier();
System.out.println("------欢迎使用智能快递柜------");
while (1 > 0) {
System.out.println("请输入:1(存快递)  2(取快递)  3(修改快递信息)");
Scanner in = new Scanner(System.in);
int i = in.nextInt();
if (i == 1) {
courier.inkuaidi();
System.out.println("请输入是否继续操作(是/否)");
Scanner in1 = new Scanner(System.in);
String judge = in1.next();
if (judge.equals("否")) {
break;
}
} else if (i == 2) {
u.outkuaidi();
System.out.println("请输入是否继续操作(是/否)");
Scanner in2 = new Scanner(System.in);
String judge = in2.next();
if (judge.equals("否")) {
break;
}
} else if (i == 3) {
courier.changekuaidi();
System.out.println("请输入是否继续操作(是/否)");
Scanner in3 = new Scanner(System.in);
String judge = in3.next();
if (judge.equals("否")) {
break;
}
} else {
System.out.println("输入错误,请重新选择");
}
}
System.out.println("欢迎下次使用!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐