快递e站_控制台简易版

  1. 角色切换(快递员和普通用户)
    .

快递员功能:存快递,删除快递,修改快递,查看所有快递

普通用户功能:取快递
2. 存快递

3 删除快递

  1. 修改快递

  2. 查看所有快递

  3. 取快递

    任务过程:
    1 切换用户界面
    2 快递信息的保存
    3 各个子功能的实现
    可能遇到的问题:
    1 取件码使用的随机数生成
    2 字符串比较使用 equals()

java语言实现,代码如下


import java.util.Random;
import java.util.Scanner;public class 快递e站 {public static Random random = new Random();public static Scanner input = new Scanner(System.in);public static String[] numberArr = new String[100];//快递单号数组public static String[] companyArr = new String[100];//公司名数组public static int[] codeArr = new int[100];//取件码数组public static int index = 0; //快递柜中共几个快递public static void main(String[] args) {//展示菜单while (true) {int id = startMenu();if (id == 0)return;}}public static int startMenu() { //展示菜单System.out.println("=======欢迎来到快递柜==========");System.out.println("请输入身份:1-快递员 2-用户 0-退出");int id = 0;do {id = input.nextInt();if (id == 0) {System.out.println("退出系统,谢谢使用");return 0;} else if (id == 1) {deliverymanMenu();break;} else if (id == 2) {userMenu();break;} else {System.out.println("重新输入");}} while (true);return id;}public static void userMenu() { //用户菜单(id为2)System.out.println("请输入取件码");int code = input.nextInt();int codeIndex = isExist(code);if (codeIndex == -1) {System.out.println("未找到快递");} else {del(codeIndex);System.out.println("取件成功");}}public static void deliverymanMenu() { //快递员菜单(id为1)System.out.println("请选择操作:1存快递 2删除快递 3修改快递 4查看所有快递");int id = input.nextInt();if (id == 1) {saveExpress();} else if (id == 2) {delExpress();} else if (id == 3) {update();} else if (id == 4) {printAll();}}/*** 存快递*/public static void saveExpress() {System.out.println("输入快递单号:");String number = input.next();System.out.println("输入公司名称:");String company = input.next();//自动生成取件码 100-900int code = 0;numberArr[index] = number;companyArr[index] = company;do { //取件码随机生成,不能重复code = random.nextInt(900) + 100;} while (isExist(code) != -1);codeArr[index] = code;index++;System.out.println("快递已存入,取件码是" + code);}//判断取件码是否重复(返回下标不是true)[存和改快递用,写改方法时此代码改成返回下标而非true]public static int isExist(int code) {for (int i = 0; i < index; i++) {if (codeArr[i] == code) {return i;}}return -1;}// 根据快递单号查找快递,-1表示未找到 (删除,修改用)public static int findByNumber(String number) {for (int i = 0; i < index; i++) {if (numberArr[i].equals(number)) {return i;}}return -1;}//删除快递public static void delExpress() {System.out.println("输入要删除的快递单号");String number = input.next();int deleteIndex = findByNumber(number);if (deleteIndex == -1) {System.out.println("未找到快递");} else {del(deleteIndex);System.out.println("删除成功");}}public static void del(int deleteIndex) { //删除if (deleteIndex != numberArr.length - 1) {for (int i = deleteIndex; i < index; i++) {//同一个i表示同1个物品numberArr[i] = numberArr[i + 1];companyArr[i] = companyArr[i + 1];codeArr[i] = codeArr[i + 1];}}index--;}//修改快递public static void update() {System.out.println("输入要修改的快递单号");String number = input.next();int updateIndex = findByNumber(number);if (updateIndex == -1) {System.out.println("未找到快递");} else {System.out.println("输入新的快递单号");number = input.next();System.out.println("输入新的公司名称");String company = input.next();numberArr[updateIndex] = number;companyArr[updateIndex] = company;System.out.println("修改成功");}}//查看所有快递public static void printAll() {System.out.println("--------所有快递----------");System.out.println("快递单号\t公司名称\t取件码");for (int i = 0; i < index; i++) {System.out.println(numberArr[i] + "\t" + companyArr[i] + "\t" + codeArr[i]);}}
}

快递e站_控制台简易版_java相关推荐

  1. 快递 E 栈系统(控制台简易版)

    目录 一.前言 1.1.功能介绍: 1.2.项目分析: 二.角色切换 2.1.主界面 2.2.choice()方法 2.3.findPackage()方法 三.快递员功能实现 3.1.存快递 addP ...

  2. unity制作滚动的天空简易版(在b站学的,此处总结,供学习)

    学习于:程序员咖啡吧(B站up) 程序员咖啡吧的个人空间_哔哩哔哩_bilibili unity不是中文版没关系一样的. 欢迎大佬指教,我要复习去了 话不多说先了解游戏分为几个部分: 人物,摄像头,环 ...

  3. javascript实现图片轮播_手撸一个简易版轮播图(上)

    手撸一个简易版轮播图 实现原理,通过控制 swiper-warpper 容器的定位来达到切换图片的效果. 页面布局 简易版轮播图 < > 页面样式 .container{width: 60 ...

  4. js计算器代码加减乘除_如何用jQuery做一个简易版计算器

    经过几个小时地敲敲打打,终于把这一部分的代码完成了. 这类问题的难点不在于布局,而是如何恰当地使用jQuery达成计算.交互的目的,比如储存.显示数值,数据类型的转换等. 在听老师讲课之前的我,思路是 ...

  5. 5 拦截器拦截请求路由_手写简易版axios拦截器,实现微信小程序wx.request的封装与拦截...

    前言: axios是一个功能强大的网络请求库,其中拦截器又是axios的精髓.在小程序的开发或者需要手动实现ajax的时候,没有实现对请求的拦截,开发的时候非常不方便,因此手写一个简易版的axios拦 ...

  6. indesign照片放入太大_猪肚鸡做法复杂,量太大,那来个简易版,用上大厨教的妙招更香了...

    [猪肚鸡做法复杂,量太大,那来个简易版,用上大厨教的妙招更香了]天气越来越冷了,今天准备炖鸡汤,正好老妈给了小半个已经处理好的猪肚,所以决定炖个简易版胡椒猪肚鸡.说实话外面的胡椒猪肚鸡做法是比较复杂的 ...

  7. scala mysql连接池_Java与Scala的两种简易版连接池

    Java版简易版连接池: import java.sql.Connection; import java.sql.DriverManager; import java.util.LinkedList; ...

  8. java课设 简单九宫格_[Java教程]简易版九宫格相加数值相等

    [Java教程]简易版九宫格相加数值相等 0 2016-02-24 00:00:10 九宫格的样子以及游戏想大家接触过,想当年也是玩了好多九宫格游戏,其中最经典的就是1-9这九个数字填进格子,横竖向. ...

  9. java美图秀秀_[Java教程]简易版美图秀秀_星空网

    简易版美图秀秀 2016-10-30 0 简易板美图秀秀灰度 黑白 底片 模糊 马赛克 简单的实现了 灰度,黑白,底片,模糊,马赛克(代码比较简单,通过canvas实现的) 感觉挺有意思的,上面解释很 ...

最新文章

  1. solidworks api二次开发实例详解_Solidworks开发语言对比及分析
  2. android gradle 给所有的buildFlavor 的versionName 增加一个后缀
  3. [云炬python3玩转机器学习笔记] 3-6Numpy数组和矩阵的合并和分割
  4. 我的青春谁做主的经典语录
  5. ipad iphone开发_如何将iPhone或iPad置于恢复模式
  6. 欢乐纪中某B组赛【2018.12.22】
  7. 觉得WaitGroup不好用?试试ErrorGroup吧!
  8. python学习_Python学习 基础篇完结
  9. PickerView 使用
  10. web打印的最佳方案
  11. 帆软大数据自定义分页
  12. 1微秒等于多少皮秒_秒的换算:皮秒、纳秒、微秒、毫秒
  13. 华为AX3Pro路由器配置成交换机使用
  14. web前端全套教程,入门必备
  15. 八、【中级篇】数码管驱动(74HC138,74HC595)
  16. 王小草【深度学习】笔记第七弹--RNN与应用案例:注意力模型与机器翻译
  17. 乐行天下激光雷达SDK介绍
  18. 大厂林立,思必驰推可定制开发语音交互技术!
  19. 带你了解EMC——什么是EMC?
  20. howland 电流源

热门文章

  1. subversion代码管理器安装配置
  2. error C2440: ’static_cast’ : cannot convert from ‘UINT (__thiscall CStaticLink::* )(CPoint)’ to ‘LRE
  3. 爱奇艺自动播放代码制作
  4. 【数据分析师求职面试指南】必备编程技能整理之Hive SQL必备用法
  5. 设置 easyUi的linkbutton按钮生效 失效
  6. Linux运维之(七)邮件服务器安装与配置squirrelmail-webmail
  7. 光谱实验反射、透射光谱测量
  8. 【Verilog基础】定点小数的乘法运算
  9. C语言内存讲解-详说内存分布和heap空间
  10. 轻轻挥别2014,悄悄迎来2015