快递E栈简易版本

快递E栈简易版本

快递E栈任务分析:

使用者:快递员,用户

快递员包含功能:存快递,删快递,修改快递,查询全部快递,

用户功能:输入取件码取快递

快递属性:快递号,公司,取件码

public class ExpressEstack {

/**记录长度 默认可以存储100条记录*/

static int length = 100;

/**快递号*/

static int[] expressId = new int[length];

/**快递公司*/

static String[] expressCompany = new String[length];

/**取件码*/

static int[] expressCode = new int[length];

//用于存储快递的index

static int index = 0;

//开始界面

public static void startInterface(){

System.out.println("=====欢迎使用新职课快递柜=====");

System.out.println("请输入您的身份 1-快递员,2-用户");

Scanner scanner = new Scanner(System.in);

int role = scanner.nextInt();

switch (role){

//快递员

case 1:

expressInterface();

break;

//用户

case 2:

userInterface();

break;

default:

System.out.println("请输入正确身份");

startInterface();

}

}

//用户登录界面

private static void userInterface() {

Scanner scanner = new Scanner(System.in);

System.out.println("请选择操作:1-取快递 ");

int play2 = scanner.nextInt();

//取快递操作

switch (play2){

//快递员

case 1:

//去快递

takeExpress();

break;

default:

System.out.println("请输入正确对应数值");

userInterface();

}

}

//用户取件

private static void takeExpress() {

boolean istakeExpress = false;

Scanner scanner = new Scanner(System.in);

System.out.println("请输入取件码:");

int code = scanner.nextInt();

for (int i = 0; i < expressCode.length; i++) {

if (code == expressCode[i]){

expressId[i] = 0;

expressCompany[i] = "";

expressCode[i] = 0;

istakeExpress = true;

}

}

if (istakeExpress){

System.out.println("取件成功");

}else {

System.out.println("未找到该快递");

}

startInterface();

}

//快递员登录界面

private static void expressInterface() {

Scanner scanner = new Scanner(System.in);

System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");

int play1 = scanner.nextInt();

//选择功能

switch (play1){

//存快递,查询是否有同样快递号快递公司的件

case 1:

depositExpress();

break;

//删除快递

case 2:

deleteExpress();

break;

//修改信息

case 3:

modifyInformation();

break;

//查看所有快递

case 4:

findAll();

break;

default:

System.out.println("请输入正确对应数字");

expressInterface();

}

}

//查看所有快递

private static void findAll() {

System.out.println("所有快递信息如下:");

System.out.printf("%-9s%-9s%-9s\n", "快递单号", "公司名称", "取件码");

//System.out.println("快递单号\t快递公司\t取件码");

//下标计数

int index=0;

while (index < 100){

if (expressId[index]!=0 && expressCode[index]!=0 ){

System.out.printf("%-9d%-9s%-9d\n", expressId[index], expressCompany[index], expressCode[index]);

}

index++;

}

startInterface();

}

//修改信息

private static void modifyInformation() {

boolean isModify = false;

Scanner scanner = new Scanner(System.in);

System.out.println("请输入要修改的快递单号");

int expressid = scanner.nextInt();

for (int i = 0; i < expressId.length; i++) {

if (expressid == expressId[i]){

System.out.println("请输入新的快递单号");

int expressNewId = scanner.nextInt();

expressId[i]=expressNewId;

System.out.println("请输入新的快递公司");

String expressNewCompany = scanner.next();

expressCompany[i] = expressNewCompany;

isModify = true;

}

}

if (isModify){

System.out.println("修改成功");

}else {

System.out.println("未找到对应快递");

}

startInterface();

}

//删除快递

private static void deleteExpress() {

boolean isDelete = false;

System.out.println("请输入要删除的快递单号");

Scanner delete = new Scanner(System.in);

int deleteNumber = delete.nextInt();

for (int i = 0; i < length - 1; i++) {

if (expressId[i] == deleteNumber) {

expressId[i] = 0;

expressCompany[i] = "";

expressCode[i] = 0;

isDelete = true;

break;

}

}

if (isDelete) {

System.out.println("删除成功");

} else {

System.out.println("未找到快递");

}

expressInterface();

}

private static void depositExpress() {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入快递单号");

int expressid = scanner.nextInt();

System.out.println("请输入公司名称");

String company = scanner.next();

//将输入的存入数组中

expressId[index] = expressid;

expressCompany[index] = company;

//随机三位数生成

Random ran = new Random();

int randomNum = ran.nextInt(900)+100;

expressCode[index] = randomNum;

//三个数生成的数组下标一致

if (expressId[index] == expressid & expressCompany[index].equals(company) & expressCode[index] == randomNum){

System.out.println("快递已存入,取件码"+ randomNum);

}

index ++;

startInterface();

}

public static void main(String[] args) {

startInterface();

}

}

总结:

知识点1:取件码使用的随机数生成 int randNumber =rand.nextInt(MAX - MIN + 1) + MIN; // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数 rand.nextInt(100);这行代码将生成范围[0,100) 之间的随机数,即[0,99] 获得随机两位整数,代码写成:rand.nextInt(90) + 10; 生成随机三位数的代码为:rand.nextInt(900)+ 100;

知识点2:判断字符是否相等使用equals 使用方法:字符串.equals(比较的字符串)

知识点3:对齐输出

Java输出数据的对齐方法: 你可以把数字转换成字符串,用 String.format("% 4d", number1); 可以补充空格 有个更好的方法用printf();这个给C中的方法差不多,很方便例如这样:

System.out.printf("%-10s",“abc”); //输出10列,左对齐(-号表示左对齐) System.out.printf("%8d",23); //输出8列, 右对刘

这里就不详细讲述printf用法,可以参照以下博客: http://c.biancheng.net/view/159.html https://www.runoob.com/cprogramming/c-function-printf.html 快递E栈简易版所有功能都大同小异,通过数组循环下标一个个对比数据,再根据具体要求进行修改数据或删除数据即可

相关推荐

杜牧《七言诗·清明》原文|译文|注释|赏析
日博best365

杜牧《七言诗·清明》原文|译文|注释|赏析

2025-08-19 👁️ 4007
德国足球历任队长,你都认识吗?
日博best365

德国足球历任队长,你都认识吗?

2025-09-03 👁️ 7828
黑魔鬼(北极薄荷日版)香烟价格表
365流水不够不能提现

黑魔鬼(北极薄荷日版)香烟价格表

2025-08-21 👁️ 8514
魂斗罗归来武器核芯怎么解锁?有什么作用
365流水不够不能提现

魂斗罗归来武器核芯怎么解锁?有什么作用

2025-09-01 👁️ 3979
王者荣耀V8要充值多少钱?V8充值金额是累积的吗?
民法典所有权转移多久有效
beat365网页登录

民法典所有权转移多久有效

2025-08-09 👁️ 1380