首页 > 编程语言 > 详细

快递E栈02(二维数组,面向对象)

时间:2021-02-10 00:42:16      阅读:43      评论:0      收藏:0      [点我收藏+]

具体需求如图:

技术分享图片

 

 

 代码:

Express:

 1 import java.util.Scanner;
 2 
 3 public class Express {
 4     //快递柜只能存100个快递,可以按需更改
 5     public static ExpressQuality[][] eq = new ExpressQuality[9][9];
 6     public static void main(String[] args) {
 7         hei:while(true){
 8             System.out.println("请选择身份:1.管理员    2.用户(输入1或者2)   3.退出");
 9             Scanner scanner = new Scanner(System.in);
10             try {
11                 int a = scanner.nextInt();
12                 switch(a){
13                     case 1:{
14                         System.out.println("请选择功能:1.快递录入  2.删除快递  3.修改快递  4.查看所有快递");
15                         int selectFunction = scanner.nextInt();
16                         if(selectFunction == 1){
17                             Add add = new Add();
18                             add.Add();
19                         }else if(selectFunction == 2){
20                             Delete delete = new Delete();
21                             delete.Delete();
22                         }else if(selectFunction == 3){
23                             Modify modify = new Modify();
24                             modify.Modify();
25                         }else if(selectFunction == 4){
26                             Search search = new Search();
27                             search.search();
28                         }else{
29                             System.out.println("输入有误");
30                         }
31                         break;
32                     }
33                     case 2:{
34                         TakeOut takeOut = new TakeOut();
35                         takeOut.takeOut();
36                         break;
37                     }
38                     case 3:{
39                         break hei;
40                     }
41                     default:{
42                         System.out.println("亲,只能输入1或2哦!");
43                         break;
44                     }
45                 }
46             }catch (RuntimeException e){
47                 System.out.println("亲,只能输入数字哦!");//查看所有快递有错误
48             }
49         }
50     }
51 }

ExpressQuality

 1 public class ExpressQuality {
 2     private int trackingNumber;
 3     private String company;
 4     private int pickUpCode;
 5 
 6     public ExpressQuality(){}
 7     public ExpressQuality(int trackingNumber,String company,int pickUpCode){
 8         this.trackingNumber = trackingNumber;
 9         this.company = company;
10         this.pickUpCode = pickUpCode;
11     }
12 
13     public int getPickUpCode() {
14         return pickUpCode;
15     }
16 
17     public void setPickUpCode(int pickUpCode) {
18         this.pickUpCode = pickUpCode;
19     }
20 
21     public String getCompany() {
22         return company;
23     }
24 
25     public void setCompany(String company) {
26         this.company = company;
27     }
28 
29     public int getTrackingNumber() {
30         return trackingNumber;
31     }
32 
33     public void setTrackingNumber(int trackingNumber) {
34         this.trackingNumber = trackingNumber;
35     }
36 }

Code

1 import java.util.Random;
2 
3 public class Code {
4     public int code() {
5         Random random = new Random();
6         return random.nextInt(899999) + 100000;
7     }
8 }

Add

 1 import java.util.Scanner;
 2 import static com.zzk.senior.Express.eq;
 3 
 4 public class Add {
 5     public void Add(){
 6         Scanner scanner = new Scanner(System.in);
 7         try{
 8             System.out.println("请输入快递单号:");
 9             int trackingNumber = scanner.nextInt();
10             System.out.println("请输入快递公司:");
11             String company = scanner.next();
12             ExpressQuality expressQuality = new ExpressQuality();//每次调用都会产生一次对象
13             expressQuality.setTrackingNumber(trackingNumber);
14             expressQuality.setCompany(company);
15             //生成取件码,并且取件码不能重复
16             Code c = new Code();
17             int cd = c.code();
18             hei:for(int i = 1;i<eq.length+1;i++){
19                 for(int j = 0;j<eq.length+1;j++){
20                     if(eq[i][j] == null){
21                         break hei;
22                     }
23                     if(eq[i][j].getPickUpCode() == cd){
24                         cd = c.code();
25                     }
26                 }
27             }
28 
29             expressQuality.setPickUpCode(cd);
30 
31             haha:for(int i = 0;i<eq.length+1;i++){
32                 for(int j = 0;j<eq.length+1;j++){
33                     if(eq[i][j] == null){
34                         eq[i][j] = expressQuality;
35                         break haha;
36                     }
37                 }
38             }
39             System.out.println("快递已存入,取件码是:"+cd);
40         }catch (RuntimeException e){
41             System.out.println("亲,请输入数字快递单号!");
42         }
43 
44     }
45 
46 }

Delete

 1 import java.util.Scanner;
 2 import static com.zzk.senior.Express.eq;
 3 
 4 public class Delete {
 5     public void Delete(){
 6         Scanner scanner = new Scanner(System.in);
 7         System.out.println("请输入要删除的快递单号:");
 8         try{
 9             int tracking1 = scanner.nextInt();
10             hei:for(int i = 0;i<eq.length+1;i++) {
11                 for(int j = 0;j<eq.length+1;j++){
12                     if(eq[i][j] == null) {
13                         System.out.println("未找到快递");
14                         break hei;
15                     }else if(eq[i][j].getTrackingNumber() == tracking1) {
16                         eq[i][j] = null;
17                         System.out.println("删除成功");
18                         break hei;
19                     }
20                 }
21             }
22         }catch (RuntimeException e){
23             System.out.println("亲,请输入6位数快递单号!");
24         }
25     }
26 }

Modify

 1 import java.util.Scanner;
 2 import static com.zzk.senior.Express.eq;
 3 
 4 public class Modify {
 5     public void Modify(){
 6         Scanner scanner = new Scanner(System.in);
 7         System.out.println("请输入要修改的快递单号:");
 8         try{
 9             int tracking1 = scanner.nextInt();
10             hei:for(int i = 0;i<eq.length+1;i++) {
11                 for(int j = 0;j<eq.length+1;j++){
12                     ExpressQuality expressQuality = new ExpressQuality();
13                     if(eq[i][j] == null) {
14                         System.out.println("未找到快递");
15                         break hei;
16                     }else if(eq[i][j].getTrackingNumber() == tracking1) {
17                         System.out.println("请输入新的快递单号:");
18                         int tracking3 = scanner.nextInt();
19                         System.out.println("请输入新的公司名称:");
20                         String company1 = scanner.next();
21                         //新的取件码
22                         Code c = new Code();
23                         expressQuality.setPickUpCode(c.code());
24                         expressQuality.setTrackingNumber(tracking3);
25                         expressQuality.setCompany(company1);
26                         eq[i][j] = expressQuality;
27                         System.out.println("修改成功");
28                         break hei;
29                     }
30                 }
31             }
32         }catch (RuntimeException e){
33             System.out.println("亲,请输入6位数快递单号!");
34         }
35 
36     }
37 }

Search

 1 import static com.zzk.senior.Express.eq;
 2 
 3 public class Search {
 4     public void search(){
 5         System.out.println("所有快递信息如下:");
 6         System.out.println("快递单号    公司名称    取件码");
 7         hei:for (int i = 0; i<eq.length+1;i++) {
 8             for(int j = 0;j<eq.length+1;j++){
 9                 if (eq[i][j] != null) {
10                     System.out.println(eq[i][j].getTrackingNumber() + "         " + eq[i][j].getCompany() + "         " + eq[i][j].getPickUpCode());
11                 }else if(eq[i][j] == null){
12                     break hei;  //跳出循环
13                 }
14             }
15         }
16     }
17 }

TakeOut

 1 import java.util.Scanner;
 2 import static com.zzk.senior.Express.eq;
 3 
 4 public class TakeOut {
 5     public void takeOut(){
 6         System.out.println("请输入取件码:");
 7         Scanner scanner = new Scanner(System.in);
 8         int tracking1 = scanner.nextInt();
 9         hei:for(int i = 0;i<eq.length+1;i++) {
10             for(int j = 0;j<eq.length+1;j++){
11                 if(eq[i][j] == null) {
12                     System.out.println("未找到快递");
13                     break hei;
14                 }else if(eq[i][j].getPickUpCode() == tracking1) {
15                     eq[i][j] = null;
16                     System.out.println("取件成功");
17                     break hei;
18                 }
19             }
20         }
21     }
22 }

实现效果:

技术分享图片

 

快递E栈02(二维数组,面向对象)

原文:https://www.cnblogs.com/zhangzhongkun/p/14394674.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!