首先写一个快递类,将快递的属性和方法写写,这有手就行吧!
package homework.test4;
public class Express {
//快递单号
private int expressNum;
//快递公司名称
private String companyName;
//柜子号码
private int boxNum;
//取件码
private int getExpressNum;
//用来判断柜子是否存放了东西
boolean []tag = new boolean[25];
@Override
public String toString() {
return "Case{" +
"expressNum=" + expressNum +
", companyName='" + companyName + '\'' +
", boxNum=" + boxNum +
", getExpressNum=" + getExpressNum +
'}';
}
public Express() {
}
public Express(int expressNum, String companyName, int boxNum, int getExpressNum) {
this.expressNum = expressNum;
this.companyName = companyName;
this.boxNum = boxNum;
this.getExpressNum = getExpressNum;
}
public int getExpressNum() {
return expressNum;
}
public void setExpressNum(int expressNum) {
this.expressNum = expressNum;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public int getBoxNum() {
return boxNum;
}
public void setBoxNum(int boxNum) {
this.boxNum = boxNum;
}
public int getGetExpressNum() {
return getExpressNum;
}
public void setGetExpressNum(int getExpressNum) {
this.getExpressNum = getExpressNum;
}
}
再写一个管理员类:
package homework.test4;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Courier extends Express {
public Courier() {
}
//继承父类的数据
public Courier(int expressNum, String companyName, int getExpressNum, int boxNum) {
super(expressNum, companyName, getExpressNum, boxNum);
}
//快递的录入
public void add(ArrayList<Express> array) throws IOException {
int box=0;
int q = 0;
//系统自动生成取件码
Random r = new Random();
StringBuilder result = new StringBuilder();
for (int i=0;i<6;i++){
result.append(r.nextInt(10));
}
setGetExpressNum(Integer.parseInt(result.toString()));
//系统自动生成柜子号码
for(int i=0;i<tag.length;i++){
box = r.nextInt(25);
if(!tag[box]){
setBoxNum(box);
/*System.out.println("快递信息已录入。");
System.out.println("-------感谢使用-------");*/
tag[box] = true;
break;
}
}
String b =String.valueOf(box);
//用户输入快递单号和公司名称,写入集合
System.out.println("请输入快递单号:");
Scanner input = new Scanner(System.in);
int expressNum = input.nextInt();
for (int i=0;i<array.size();i++){
Express c = array.get(i);
if(c.getExpressNum()==expressNum){
System.out.println("输入的快递单号有重复,请检查后重新输入!");
q++;
break;
}
}
if(q==0){
System.out.println("请输入快递公司名:");
String companyName = input.next();
Express c = new Express();
c.setExpressNum(expressNum);
c.setBoxNum(box);
c.setCompanyName(companyName);
c.setGetExpressNum(getGetExpressNum());
array.add(c);
System.out.println("快递添加成功!");
System.out.println("取件码为:"+getGetExpressNum());
}
}
//管理员的删除操作
void delete(ArrayList<Express> array){
Scanner input = new Scanner(System.in);
System.out.println("请输入要删除的快递单号:");
int expressNum = input.nextInt();
for (int i=0;i<array.size();i++){
Express c = array.get(i);
if(c.getExpressNum()==expressNum){
array.remove(i);
System.out.println("删除该快递成功!");
break;
}else if(i==array.size()-1){
System.out.println("没有找到该快递,请检查快递单号的输入是否正确!");
break;
}
}
}
//管理员的快递信息修改操作
void change(ArrayList<Express> array){
Scanner input = new Scanner(System.in);
System.out.println("请输入要修改的快递单号:");
int expressNum = input.nextInt();
for (int i=0;i<array.size();i++){
Express c = array.get(i);
if(c.getExpressNum()==expressNum){
System.out.println("请输入要修改的内容");
System.out.println("1.快递单号 2.快递公司名称");
String q = input.next();
System.out.println("请输入修改后的内容:");
String date = input.next();
switch (q){
case "1":c.setExpressNum(Integer.valueOf(date));
System.out.println("修改成功!");
break;
case "2":c.setCompanyName(date);
System.out.println("修改成功!");
break;
}
}else if(i==array.size()-1){
System.out.println("没有找到该快递,请检查快递单号的输入是否正确!");
break;
}
}
}
//管理员的查看所有快递信息操作
void lookup(ArrayList<Express> array){
if(array.size()==0){
System.out.println("暂时没有快递!");
}else {
System.out.println();
for (int i=0;i<array.size();i++){
Express c = array.get(i);
System.out.println("柜子号:"+c.getBoxNum());
System.out.println("快递单号:"+c.getExpressNum());
System.out.println("公司名称:"+c.getCompanyName());
System.out.println("取件码:"+c.getGetExpressNum());
}
}
}
}
用户类:
package homework.test4;
import java.util.ArrayList;
import java.util.Scanner;
public class Uesr extends Express {
public Uesr() {
}
public Uesr(int expressNum, String companyName, int boxNum, int getExpressNum) {
super(expressNum, companyName, boxNum, getExpressNum);
}
//客户取件
public void getexpress(ArrayList<Express> array){
System.out.println("--------------");
Scanner input = new Scanner(System.in);
System.out.println("欢迎取件,请输入6位取件码");
/*String expressNum = input.next();
int ex = Integer.parseInt(expressNum);*/
int expressNum = input.nextInt();
//flag定义的是一个有25个长度的布尔类型的数组,用来标记存入柜子的类型
boolean flag = true;
for(int i=0;i<array.size();i++){
Express c = array.get(i);
if(c.getExpressNum()!=0){
if(c.getExpressNum()==expressNum){
System.out.println("您的快递单号为:"+c.getExpressNum()+",在第:"+c.getBoxNum()+"号柜,快递柜已经成功打开");
tag[i] = false;
flag = false;
System.out.println("------欢迎下次使用------");
}
}
}
if(flag){
System.out.println("未找到指定快递,请尝试重新输入或联系快递公司");
}
}
}
实现类:
package homework.test4;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws IOException {
ArrayList<Express> array = new ArrayList<Express>();
while(true){
System.out.println("请输入你的身份:1.管理员,2.用户,3.退出");
Scanner input = new Scanner(System.in);
int a = input.nextInt();
if(a==1){
Courier co = new Courier();
System.out.println("请选择管理员功能:1.快递录入,2.删除快递,3.修改快递,4.查看所有快递,5.退出");
while (true) {
int b = input.nextInt();
if (b == 1) {
co.add(array);
break;
} else if (b == 2) {
co.delete(array);
break;
} else if (b == 3) {
co.change(array);
break;
} else if (b == 4) {
co.lookup(array);
break;
}else {
break;
}
}
}else if(a==2){
Uesr cu = new Uesr();
cu.getexpress(array);
}else if(a==3){
System.out.println("再见!");
break;
}else {
System.out.println("您输入的号码有误,请重新输入!");
}
}
}
}
废话时间:
如果客官觉得食用合适可不可以给一个免费的赞!谢谢谢了!慢走客官!建议打包收藏,下次再来。店小二QQ:309021573,欢迎骚扰!