快递E栈02(二维数组,面向对象)
具体需求如图:
代码:
Express:
1 package com.zzk.senior; 2 3 import java.util.Scanner; 4 5 public class Express { 6 //快递柜只能存100个快递,可以按需更改 7 public static ExpressQuality[][] eq = new ExpressQuality[9][9]; 8 public static void main(String[] args) { 9 hei:while(true){ 10 System.out.println("请选择身份:1.管理员 2.用户(输入1或者2) 3.退出"); 11 Scanner scanner = new Scanner(System.in); 12 try { 13 int a = scanner.nextInt(); 14 switch(a){ 15 case 1:{ 16 System.out.println("请选择功能:1.快递录入 2.删除快递 3.修改快递 4.查看所有快递"); 17 int selectFunction = scanner.nextInt(); 18 if(selectFunction == 1){ 19 Add add = new Add(); 20 add.Add(); 21 }else if(selectFunction == 2){ 22 Delete delete = new Delete(); 23 delete.Delete(); 24 }else if(selectFunction == 3){ 25 Modify modify = new Modify(); 26 modify.Modify(); 27 }else if(selectFunction == 4){ 28 Search search = new Search(); 29 search.search(); 30 }else{ 31 System.out.println("输入有误"); 32 } 33 break; 34 } 35 case 2:{ 36 TakeOut takeOut = new TakeOut(); 37 takeOut.takeOut(); 38 break; 39 } 40 case 3:{ 41 break hei; 42 } 43 default:{ 44 System.out.println("亲,只能输入1或2哦!"); 45 break; 46 } 47 } 48 }catch (RuntimeException e){ 49 System.out.println("亲,只能输入数字哦!");//查看所有快递有错误 50 } 51 } 52 } 53 }
ExpressQuality
1 package com.zzk.senior; 2 3 public class ExpressQuality { 4 private int trackingNumber; 5 private String company; 6 private int pickUpCode; 7 8 public ExpressQuality(){} 9 public ExpressQuality(int trackingNumber,String company,int pickUpCode){ 10 this.trackingNumber = trackingNumber; 11 this.company = company; 12 this.pickUpCode = pickUpCode; 13 } 14 15 public int getPickUpCode() { 16 return pickUpCode; 17 } 18 19 public void setPickUpCode(int pickUpCode) { 20 this.pickUpCode = pickUpCode; 21 } 22 23 public String getCompany() { 24 return company; 25 } 26 27 public void setCompany(String company) { 28 this.company = company; 29 } 30 31 public int getTrackingNumber() { 32 return trackingNumber; 33 } 34 35 public void setTrackingNumber(int trackingNumber) { 36 this.trackingNumber = trackingNumber; 37 } 38 }
Code
1 package com.zzk.senior; 2 3 import java.util.Random; 4 5 public class Code { 6 public int code() { 7 Random random = new Random(); 8 return random.nextInt(899999) + 100000; 9 } 10 }
Add
1 package com.zzk.senior; 2 3 import java.util.Scanner; 4 import static com.zzk.senior.Express.eq; 5 6 public class Add { 7 public void Add(){ 8 Scanner scanner = new Scanner(System.in); 9 try{ 10 System.out.println("请输入快递单号:");//未限制6位数 11 int trackingNumber = scanner.nextInt(); 12 System.out.println("请输入快递公司:"); 13 String company = scanner.next(); 14 ExpressQuality expressQuality = new ExpressQuality();//每次调用都会产生一次对象 15 expressQuality.setTrackingNumber(trackingNumber); 16 expressQuality.setCompany(company); 17 //生成取件码,并且取件码不能重复 18 Code c = new Code(); 19 int cd = c.code(); 20 hei:for(int i = 0;i<eq.length;i++){ 21 for(int j = 0;j<eq.length;j++){ 22 if(eq[i][j] == null){ 23 break hei; 24 } 25 if(eq[i][j].getPickUpCode() == cd){ 26 cd = c.code(); 27 } 28 } 29 } 30 31 expressQuality.setPickUpCode(cd); 32 33 haha:for(int i = 0;i<eq.length+1;i++){ 34 for(int j = 0;j<eq.length+1;j++){ 35 if(eq[i][j] == null){ 36 eq[i][j] = expressQuality; 37 break haha; 38 } 39 } 40 } 41 System.out.println("快递已存入,取件码是:"+cd); 42 }catch (RuntimeException e){ 43 System.out.println("亲,请输入数字快递单号!"); 44 } 45 46 } 47 48 }
Delete
1 package com.zzk.senior; 2 3 import java.util.Scanner; 4 import static com.zzk.senior.Express.eq; 5 6 public class Delete { 7 public void Delete(){ 8 Scanner scanner = new Scanner(System.in); 9 System.out.println("请输入要删除的快递单号:"); 10 try{ 11 int tracking1 = scanner.nextInt(); 12 hei:for(int i = 0;i<eq.length;i++) { 13 for(int j = 0;j<eq.length;j++){ 14 if(eq[i][j] == null) { 15 if(i == 8 || j == 8){ 16 System.out.println("未找到快递"); 17 } 18 continue; 19 }else if(eq[i][j].getTrackingNumber() == tracking1) { 20 eq[i][j] = null; 21 System.out.println("删除成功"); 22 break hei; 23 } 24 } 25 } 26 }catch (RuntimeException e){ 27 System.out.println("亲,请输入正确的快递单号!"); 28 } 29 } 30 }
Modify
1 package com.zzk.senior; 2 3 import java.util.Scanner; 4 import static com.zzk.senior.Express.eq; 5 6 public class Modify { 7 public void Modify(){ 8 Scanner scanner = new Scanner(System.in); 9 System.out.println("请输入要修改的快递单号:"); 10 try{ 11 int tracking1 = scanner.nextInt(); 12 hei:for(int i = 0;i<eq.length;i++) { 13 for(int j = 0;j<eq.length;j++){ 14 ExpressQuality expressQuality = new ExpressQuality(); 15 if(eq[i][j] == null) { 16 if(i == 8 || j == 8){ 17 System.out.println("未找到快递"); 18 } 19 continue; 20 }else if(eq[i][j].getTrackingNumber() == tracking1) { 21 System.out.println("请输入新的快递单号:"); 22 int tracking3 = scanner.nextInt(); 23 System.out.println("请输入新的公司名称:"); 24 String company1 = scanner.next(); 25 //新的取件码 26 Code c = new Code(); 27 expressQuality.setPickUpCode(c.code()); 28 expressQuality.setTrackingNumber(tracking3); 29 expressQuality.setCompany(company1); 30 eq[i][j] = expressQuality; 31 System.out.println("修改成功"); 32 break hei; 33 } 34 } 35 } 36 }catch (RuntimeException e){ 37 System.out.println("亲,请输入6位数快递单号!"); 38 } 39 40 } 41 }
Search
1 package com.zzk.senior; 2 3 import static com.zzk.senior.Express.eq; 4 5 public class Search { 6 public void search(){ 7 System.out.println("所有快递信息如下:"); 8 System.out.println("快递单号 公司名称 取件码"); 9 for(int i = 0;i<eq.length;i++){ 10 for(int j = 0;j<eq.length;j++){ 11 if (eq[i][j] != null) { 12 System.out.println(eq[i][j].getTrackingNumber() + " " + eq[i][j].getCompany() + " " + eq[i][j].getPickUpCode()); 13 }else if(eq[i][j] == null){ 14 continue; //跳出循环 15 } 16 } 17 } 18 } 19 }
TakeOut
1 package com.zzk.senior; 2 3 import java.util.Scanner; 4 import static com.zzk.senior.Express.eq; 5 6 public class TakeOut { 7 public void takeOut(){ 8 System.out.println("请输入取件码:"); 9 Scanner scanner = new Scanner(System.in); 10 try{ 11 int tracking1 = scanner.nextInt(); 12 hei:for(int i = 0;i<eq.length;i++) { 13 for(int j = 0;j<eq.length;j++){ 14 if(eq[i][j] == null) { 15 if(i == 8 || j == 8){ 16 System.out.println("未找到快递"); 17 } 18 continue; 19 }else if(eq[i][j].getPickUpCode() == tracking1) { 20 eq[i][j] = null; 21 System.out.println("取件成功"); 22 break hei; 23 } 24 } 25 } 26 }catch (RuntimeException e){ 27 System.out.println("亲,请输入6位数取件码!"); 28 } 29 } 30 }
实现效果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~