任务概述

  1. 角色切换(快递员和普通用户)
    快递员功能:存快递,删除快递,修改快递,查看所有快递
    普通用户功能:取快递

  2. 存快递

  3. 删除快递
    新职课教研教学中心

  4. 修改快递

  5. 查看所有快递

  6. 取快递

代码实现

import javax.sound.midi.Soundbank;
import java.util.Scanner;
public class Main {static Scanner sc = new Scanner(System.in);static String[] numbers = new String[10]; //单号static String[] companies = new String[10];//公司名称static int[] codes = new int[10];//取件码static int count = 0;//总数量:public static void main(String[] args) {//流程:while+switch 嵌套方式boolean flag = true;while (flag) {System.out.println("请选择用户:1.快递员,2.用户,3.退出");String key = sc.next();switch (key) {case "1":adminLoop();break;case "2":userLoop();break;case "3":flag = false;System.out.println("再见!");break;default:System.out.println("输入错误,请检查!");break;}}}/*** 用户*/private static void userLoop() {boolean flag = true;while (flag) {System.out.println("请选择 1.取件 2.返回主菜单!");String key = sc.next();switch (key) {case "1":pickExpress();break;case "2":flag = false;System.out.println("返回主菜单!");break;default:System.out.println("输入错误,请检查!");break;}}}/*** 取件*/private static void pickExpress() {int code=inputCode();int index = findCodeBy(code);if (index==-1){System.out.println("无此快递!");}else{removeByIndex(index);System.out.println("取件成功!");}}private static int inputCode() {System.out.println("请输入取件码:");return sc.nextInt();}/*** 快递员*/private static void adminLoop() {boolean flag = true;while (flag) {System.out.println("请选择:1.增加快递,2.删除快递 3.修改快递 4.查看所有 5.返回主菜单!");String key = sc.next();switch (key) {case "1":addExpress();break;case "2":removeExpress();break;case "3":modifyExpress();break;case "4":showAllExpresses();break;case "5":flag = false;System.out.println("返回主菜单!");break;default:System.out.println("输入错误,请检查!");break;}}}/*** 添加快递*/private static void addExpress() {//1.找一个空位置:int empty = findEmpty();//2.准备快递信息if (empty < 0) {System.out.println("快递柜已满,没有空位可以存储!");} else {String number = inputNumber();if (findExpressByNumber(number) < 0) {String company = inputCompany();int code = initCode();saveExpress(number, company, code, empty);System.out.println("存储快递成功,取件码为:" + code);} else {System.out.println("单号重复,无法添加!");}}//单号查重//取件码查重//3.填进去}private static void saveExpress(String number, String company, int code, int index) {numbers[index] = number;companies[index] = company;codes[index] = code;count++;}/*** 生成不重复的取件码:** @return*/private static int initCode() {int code = 0;//先生成一个,然后去判断有没有,没有,则可以用,有,则重复生成do {code = getCode();} while (findCodeBy(code) > 0);return code;}/*** 查重** @param code* @return*/private static int findCodeBy(int code) {for (int i = 0; i < codes.length; i++) {if (codes[i] == code) {return i;}}return -1;}/*** 随机一个指定范围的取件码:* random的范围【0,1)的浮点数** @return*/private static int getCode() {return (int) (Math.random() * 900 + 100);}/*** 通过单号找快递** @param number* @return*/private static int findExpressByNumber(String number) {for (int i = 0; i < numbers.length; i++) {if (number.equals(numbers[i])) {return i;}}return -1;}private static String inputCompany() {System.out.println("请输入公司名称:");return sc.next();}private static String inputNumber() {System.out.println("请输入快递单号:");return sc.next();}/*** 查找一个空位,用来存储快递** @return 如果是-1 证明没有空位*/private static int findEmpty() {for (int i = 0; i < numbers.length; i++) {if (numbers[i] == null) {return i;}}return -1;}private static void removeExpress() {//按照单号删除的String number = inputNumber();int index = findExpressByNumber(number);if (index == -1) {System.out.println("查无此单号,删除失败!");} else {System.out.println("是否确认删除?输入y删除,其他取消操作:");if (sc.next().equals("y")) {removeByIndex(index);System.out.println("删除成功!");} else {System.out.println("用户取消操作!返回菜单!");}}}/*** 把指定的下标下的三个数组的对应值置为默认值** @param index*/private static void removeByIndex(int index) {numbers[index] = null;companies[index] = null;codes[index] = 0;count--;}private static void modifyExpress() {String number=inputNumber();int index = findExpressByNumber(number);if (index>=0){//旧的移除removeByIndex(index);String newNumber=inputNewNumber();if (findExpressByNumber(newNumber)<0){String newCompany=inputNewCompany();int newCode = initCode();saveExpress(newNumber,newCompany,newCode,index);System.out.println("修改快递信息成功!");}else{System.out.println("新单号重复,不能使用!");}}else{System.out.println("查无此单号,修改失败!");}}private static String inputNewNumber() {System.out.println("请输入新的快递单号:");return sc.next();}private static String inputNewCompany() {System.out.println("请输入新的快递公司名称:");return sc.next();}/*** 查询所有*/private static void showAllExpresses() {if (count == 0) {System.out.println("无任何快递信息!");return;}for (int i = 0; i < numbers.length; i++) {if (numbers[i] != null) {System.out.println("单号:" + numbers[i] + "\t公司名称:" + companies[i] + "取件码\t" + codes[i]);}}}
}

运行结果

请选择用户:1.快递员,2.用户,3.退出
注意下面的功能演示---------略

快递信息系统 (简易)相关推荐

  1. 计算机毕业设计 SSM+Vue校园快递管理系统 校园代取系统 校园快递信息系统Java Vue MySQL数据库 远程调试 代码讲解

  2. 解密顺丰:内部360度监控,创始人王卫穿破牛仔裤见PE

    今天看到的一篇好文章,原文地址:http://new.iheima.com/detail/2013/1202/56776.html. 顺丰20年融资破冰 今年10月,记者曾以快递员的身份,来到了坐落于 ...

  3. 解密:顺丰是一家什么样的公司

    顺丰是当下最热门的公司之一.虽然它是一家快递公司,但谁也没把它仅仅看做快递公司. 这是一家什么样的公司--快递公司?物流公司?金融支付公司?大数据公司? 理财周报记者历经数周采访调查,甚至访遍了深圳市 ...

  4. 解密:顺丰是一家什么样的公司?

    顺丰是当下最热门的公司之一.虽然它是一家快递公司,但谁也没把它仅仅看做快递公司. 这是一家什么样的公司--快递公司?物流公司?金融支付公司?大数据公司? 记者历经数周采访调查,甚至访遍了深圳市福田区新 ...

  5. VC++开发简易输电线路管理信息系统

    准备开发简易输电线路管理信息系统:方便起见:下一个源码来改: 1 下的源码运行截图如下: 2 拷贝一份,改名,打开: 3 用mdb操作工具修改该源码自带的mdb数据库: mdb操作工具见此 http: ...

  6. [附源码]java毕业设计哈金院快递驿站管理信息系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. c# + ArcGIS Engine = 简易桌面端地理信息系统

    C# + ArcGIS Engine二次开发 GIS的资源真的好难找,无论是数据还是代码 QAQ 学弟学妹们冲鸭! 程序的压缩包已经上传在CSDN的资源库中,欢迎各位学习地理信息系统的同学们.伙伴们下 ...

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

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

  9. 一只刚学java的菜鸡一次练手练习——简易的快递信息管理系统

    一只刚学java的菜鸡一次练手练习--简易的快递信息管理系统 由于是新手第一次写练手项目并且是自学,例如存储查询数据的方式并没有选择最合适的集合,GUI也写的比较丑,见谅哈哈哈 以下是正文: 首先是快 ...

最新文章

  1. 准备战争“软测试”之DB基础知识
  2. 一维数组的求平均成绩 Day06
  3. python可以干嘛知乎-一行Python代码能做什么?
  4. etcd v3 集群——简单配置
  5. json_encode ajaxReturn getJSON
  6. [渝粤教育] 中国地质大学 婚姻与家庭法 复习题
  7. 扫盲:php session缓存至memcached中的方法
  8. Verilog实现AXI4-Lite源代码
  9. 设计模式之享元(flyweight)模式
  10. 左右法则 来解析指针问题
  11. php之将用户信息写入数据库
  12. ConurrentHashMap和Hashtable的区别
  13. vdbench测试过程中遇到的小问题
  14. Struts2的面试问题(一)
  15. premiere小tips(参考于干的教程)
  16. 涉密计算机用户密码操作规程,涉密计算机管理设置密码
  17. 华为OD机考分享精华帖
  18. Beaglebone Black——开机自动运行程序
  19. 学计算机用苹果电脑号码,怎么用苹果电脑进行公众号排版
  20. HTML——表格、表格嵌套、表格布局

热门文章

  1. 好嗨游戏:夏季赛常规赛结束,一文看懂S赛名额形势||附赛程
  2. BH1750程序测试
  3. 运用大数据技术揪出的犯罪分子居然是某知名电台女主持人
  4. Linux 批量修改图片大小
  5. cent os装 php,Cent OS 配置 LAMP笔记
  6. 《自拍教程38》Python adb一键截屏
  7. validationEngine验证
  8. 基于C语言的十进制转二十六进制
  9. mysql主从同步时间设置_MySQL主从同步的配置
  10. node.js项目的Cannot find module ‘xxx’问题