Java综合练习小项目——快递柜
快递柜
前言
这是针对基础部分的综合练习,需要了解的知识有变量、数据类型、数组。
取快递是现在大部分人都会做的事情,那么小白该怎么写出一个简单的取快递的程序呢?那么请按照以下功能条件来写出一个简单的快递柜小项目吧。
一、项目介绍
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综合练习小项目——快递柜相关推荐
- java gui 项目解密,java GUI(实例小项目--列出磁盘目录)
//java实例小项目:列出磁盘目录. import java.awt.*; import java.awt.event.*; import java.io.File; class MyWindDem ...
- java学习之小项目彩票购买系统
项目需求 双色球投注区分为红色球号码区和蓝色球号码区, 红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成. 投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注 ...
- [java]JavaSE基础小项目:校园多人畅聊系统
这是一个基于JavaSE的小项目,从名字我们也能看出来这是个多人聊天系统.下面记录一下整个项目的功能,设计思想以及所用到的知识,大家有兴趣的话,也可以自己尝试练习一下,也算是对SE的复习. 项目名称: ...
- Java练手小项目——BMI计算器
最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友).于是用Java简单写了一个.一起来看看吧. 身体质量指数是BMI指数(身体质量指数,简称体质指数),是 ...
- java面向对象的小项目_java第二季面向对象结课小项目之答答租车系统
这个小项目是学完java面相对象的练习小项目,还有很多知识点没有用上,是因为并没有完全吸收所学的知识.粗略的完成了这个小项目希望大家指点! 创建Car父类 package com.car; publi ...
- Java实现 “账本“ 小项目(一) 之数据库设计(源码+注解)
声明: 本项目为HOW2J的一个付费项目:一本糊涂账.适合java新手进行一个项目练手,下面我将分模块把该项目的源码等资源分享给大家,供大家学习. 目录 声明: 功能展示: 消费一览: 记一笔: 消费 ...
- java实训小项目6_实训项目
layout: post title: 实训项目 date: 2020-12-6 author: XiaoJia849 categories: - 开发部 tags: - 后端 - springboo ...
- Java记账本小项目一(图解超详细)
首先展示一个这个项目的原型: 有这些各种各样的功能. 首先第一步是创建对应的数据库: 启动mysql 服务,然后连接Navicat 数据库的名字叫做hutubill 再创建三个表: 配置表信息 con ...
- JAVA之实现小项目——斗地主(随机发牌)
斗地主逻辑分析 1.准备牌: 准备牌54张,存储到一个集合中[特殊牌大王.小王], 定义一个数组List colors = List.of( "♠", "♥", ...
最新文章
- linux efi启动,可启动USB Linux的EFI/ UEFI
- QQ web api
- [JLOI2012]时间流逝
- 打工人的一把辛酸泪,网站提现为啥多于800要扣20%的税?我想这些东西你需要明白
- 百度搜索结果 转换_如何让图片出现在百度搜索结果里出现?
- boost::statechart模块实现状态迭代测试
- java中使用lua操作redis
- 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式
- 巴洛克式和哥特式的区别
- 数据结构基础学习(一)数组
- 精读《手写 SQL 编译器 - 回溯》 1
- xposed+JustTrustMe抓包SSLping
- python自动输入支付密码_python接入支付宝的实例操作
- 对称矩阵特征向量正交的推导
- 面试官问:MySQL锁与事物隔离级别你知道吗?
- Word操作技巧大全1(转)
- CSS入门系列(一)概述和html结合的方式
- swustOJ 1378 Best Grass
- Stanford Corenlp中文分词自定义词典(扩展词典)
- redis/ae总结