快递柜


前言

这是针对基础部分的综合练习,需要了解的知识有变量、数据类型、数组。
取快递是现在大部分人都会做的事情,那么小白该怎么写出一个简单的取快递的程序呢?那么请按照以下功能条件来写出一个简单的快递柜小项目吧。


一、项目介绍

1.功能介绍

  1. 身份选择(快递员和普通用户)

2.存快递

3.删除快递

4.修改快递信息

5.查看快递信息

6.取快递

注意:因为快递柜是一个系统,那么完成每一步操作后,都会返回到欢迎界面。

2.注意点

随机数:Math.random()
1.生成从0到n的随机整数 即返回值[0,n]int number=(int)(Math.random()*(n+1);
2.生成从a到b的随机整数 即返回值[a,b]int num=a+(int)(Math.random()*(b-a+1));

二、相关代码


/*需求:身份:1 快递员 2 用户1.快递员=》功能:1.存快递 2.删除快递 3.修改快递 4.查看快递2.用户=》功能:1.取快递*/import java.util.Scanner;public class kd {public static void main(String[] args) {//欢迎界面和提示:输入角色//定义数组,存放快递信息//创建数组,存放取件码int[] code=new int[50];//存放快递单号String id[] = new String[50];//存放快递公司名称String[] company = new String[50];//进入快递E栈while (true){System.out.println("====欢迎来到快递E栈====");System.out.println("请输入你的身份:1-快递员 2-用户");Scanner input = new Scanner((System.in));int role = input.nextInt();if (role==1){System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");int num=input.nextInt();if (num==1){//存快递操作System.out.println("请输入快递单号");String sid=input.next();System.out.println("请输入公司名称");String scompany=input.next();//Math.random():产生一个随机数[0.0,1.0)//(数据类型)(Math.random()*(最大值-最小值)+最小值)int scode=(int)(Math.random()*(1000-100)+100);  //生成100~1000之间的随机数//首先判断是否快递柜存满int index=-1;//数组下标暂为-1,若快递柜没满,那么赋值给index,即需要存的快递为index(因为数组下标从0开始);for (int i=0;i<id.length;i++){if (id[i]==null){index=i;break;}}//if(index==-1){System.out.println("快递柜已满");}else {//即上述for查询中,快递柜index已改变,快递柜未满,那么就添加数据id[index]=sid;  //快递单号company[index] = scompany;  //快递公司code[index]=scode;  //取件码//添加成功之后,显示成功System.out.println("快递添加成功,"+"取件码:"+scode);}}else if (num==2){//删除快递System.out.println("请输入要删除的快递单号");String sid2 = input.next();//进行数据匹配int index=-1;for (int i=0;i<id.length;i++){//判断单号是否为空,且输入和数组中的数据是否相等if (id[i].equals(sid2) && id[i]!=null){//符合数据index=i;break;}}//进行判断操作=》是否删除if (index==-1){System.out.println("没有该快递信息");}//存在该快递信息else {//符合数据库,进行删除和移动位置操作//移位(因为需要删除该index 上的数据,且不用index占据的位置,所以id.length-1)//用后面的覆盖前面的内容for (int i=index;i<id.length-1;i++){id[i]=id[i+1];code[i]=code[i+1];company[i]=company[i+1];}//把最后的位置设置为空,因为都向前移动一位(id.length-1是因为现存数组长度比原数组长度少1,所以需要-1)id[id.length-1]=null;company[company.length-1]=null;code[code.length-1]=0;System.out.println("删除成功");}}else if (num==3){//修改快递信息System.out.println("请输入要修改的快递单号");String sid3=input.next();//循环遍历单号int index=-1;//用该变量来匹配是否有对应的快递单号for (int i=0;i<id.length;i++){//存在该单号if (id[i].equals(sid3) && id[i]!=null){index=i;break;}}//操作if (index==-1){System.out.println("没有该快递信息");}else {//存在该快递,那么就开始修改System.out.println("请输入新的快递单号");String sid4=input.next();id[index]=sid4; //赋值System.out.println("请输入新的公司名称");String scompany2=input.next();company[index]=scompany2;//取件码不变,输出显示System.out.println("修改成功!");}}else if (num==4){//查看快递//1.判断是否数组内容为空int index=-1;   //用该变量来查看数组是否为空System.out.println("所有快递信息如下:");for (int i=0;i<id.length;i++){if (id[i]!=null && company[i]!=null && code[i]!=0){//该数组不为空System.out.println("快递单号:"+id[i]+",快递公司:"+company[i]+",取件码:"+code[i]);index=i;    //赋值,并继续}else if (index==-1){System.out.println("快递柜没有快递");}}}else {System.out.println("请输入正确的编号");}}else if(role==2){System.out.println("请输入取件码");int scode2=input.nextInt();//循环遍历int index=-1;for (int i=0;i<id.length;i++){if (code[i]==scode2 && code[i]!=0){index=i;break;}}//操作if (index==-1){System.out.println("没有该快递信息");}else {//存在该快递,取件id[index]=null;code[index]=0;company[index]=null;System.out.println("取件成功");}}else {System.out.println("请输入正确的选项");}}}
}

Java综合练习小项目——快递柜相关推荐

  1. java gui 项目解密,java GUI(实例小项目--列出磁盘目录)

    //java实例小项目:列出磁盘目录. import java.awt.*; import java.awt.event.*; import java.io.File; class MyWindDem ...

  2. java学习之小项目彩票购买系统

    项目需求 双色球投注区分为红色球号码区和蓝色球号码区, 红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成. 投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注 ...

  3. [java]JavaSE基础小项目:校园多人畅聊系统

    这是一个基于JavaSE的小项目,从名字我们也能看出来这是个多人聊天系统.下面记录一下整个项目的功能,设计思想以及所用到的知识,大家有兴趣的话,也可以自己尝试练习一下,也算是对SE的复习. 项目名称: ...

  4. Java练手小项目——BMI计算器

    最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友).于是用Java简单写了一个.一起来看看吧. 身体质量指数是BMI指数(身体质量指数,简称体质指数),是 ...

  5. java面向对象的小项目_java第二季面向对象结课小项目之答答租车系统

    这个小项目是学完java面相对象的练习小项目,还有很多知识点没有用上,是因为并没有完全吸收所学的知识.粗略的完成了这个小项目希望大家指点! 创建Car父类 package com.car; publi ...

  6. Java实现 “账本“ 小项目(一) 之数据库设计(源码+注解)

    声明: 本项目为HOW2J的一个付费项目:一本糊涂账.适合java新手进行一个项目练手,下面我将分模块把该项目的源码等资源分享给大家,供大家学习. 目录 声明: 功能展示: 消费一览: 记一笔: 消费 ...

  7. java实训小项目6_实训项目

    layout: post title: 实训项目 date: 2020-12-6 author: XiaoJia849 categories: - 开发部 tags: - 后端 - springboo ...

  8. Java记账本小项目一(图解超详细)

    首先展示一个这个项目的原型: 有这些各种各样的功能. 首先第一步是创建对应的数据库: 启动mysql 服务,然后连接Navicat 数据库的名字叫做hutubill 再创建三个表: 配置表信息 con ...

  9. JAVA之实现小项目——斗地主(随机发牌)

    斗地主逻辑分析 1.准备牌: 准备牌54张,存储到一个集合中[特殊牌大王.小王], 定义一个数组List colors = List.of( "♠", "♥", ...

最新文章

  1. linux efi启动,可启动USB Linux的EFI/ UEFI
  2. QQ web api
  3. [JLOI2012]时间流逝
  4. 打工人的一把辛酸泪,网站提现为啥多于800要扣20%的税?我想这些东西你需要明白
  5. 百度搜索结果 转换_如何让图片出现在百度搜索结果里出现?
  6. boost::statechart模块实现状态迭代测试
  7. java中使用lua操作redis
  8. 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式
  9. 巴洛克式和哥特式的区别
  10. 数据结构基础学习(一)数组
  11. 精读《手写 SQL 编译器 - 回溯》 1
  12. xposed+JustTrustMe抓包SSLping
  13. python自动输入支付密码_python接入支付宝的实例操作
  14. 对称矩阵特征向量正交的推导
  15. 面试官问:MySQL锁与事物隔离级别你知道吗?
  16. Word操作技巧大全1(转)
  17. CSS入门系列(一)概述和html结合的方式
  18. swustOJ 1378 Best Grass
  19. Stanford Corenlp中文分词自定义词典(扩展词典)
  20. redis/ae总结

热门文章

  1. 2022-2028全球及中国弹性体行业研究及十四五规划分析报告
  2. Python 二次开发 SAP2000 定义
  3. 华为云服务器使用教程
  4. 噩梦射手(SurvivalShooter)教程(八)
  5. OpenCV项目运行提示错误:can‘t open camera by index
  6. 计算机二级的Word知识点,计算机二级word知识点
  7. Cannot obtain block length for LocatedBlock
  8. 产品体验报告:百度贴吧
  9. 深度学习实战(十):使用 PyTorch 进行 3D 医学图像分割
  10. 总体设计--《软件工程导论》