项目一火箭管理系统
项目一
写一个火箭系统,实现增删查改内容
题目如下
欢迎进入导弹管理系统*
*请输入相应编号选择功能
1.新增导弹信息
2.导弹信息展示
3.导弹入库
4.导弹出库
5.废弃过时导弹
6.退出系统
实现思路:
写三个类,火箭类、火箭系统,火箭测试类
一、火箭类
设置导弹类型,导弹名,导弹生产国家,导弹射程,导弹数量,(补充导弹添加时间)
将上述对象进行私有封装,用set,get进行调取,无参一个?构造函数(设定date值)
public class Missile {
private String missileModel;
private String missileName;
private String missileCountries;
private int missileRange;
private int missileNum;
private Date date;
public Missile() {
}
public Missile(String missileModel, String missileName, String missileCountries, int missileRange, int missileNum, Date date) {
this.missileModel = missileModel;
this.missileName = missileName;
this.missileCountries = missileCountries;
this.missileRange = missileRange;
this.missileNum = missileNum;
this.date = new Date();
}
public String getMissileModel() {
return missileModel;
}
public void setMissileModel(String missileModel) {
this.missileModel = missileModel;
}
public String getMissileName() {
return missileName;
}
public void setMissileName(String missileName) {
this.missileName = missileName;
}
public String getMissileCountries() {
return missileCountries;
}
public void setMissileCountries(String missileCountries) {
this.missileCountries = missileCountries;
}
public int getMissileRange() {
return missileRange;
}
public void setMissileRange(int missileRange) {
this.missileRange = missileRange;
}
public int getMissileNum() {
return missileNum;
}
public void setMissileNum(int missileNum) {
this.missileNum = missileNum;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
火箭系统类
创建一个火箭数组
封装一下
设置键盘输入值
date值(还没看懂)
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh-MM-ss");
写一个新增火箭方法
新增火箭set将数据存入missile
但是在新增火箭时要查看数组是否是空的,如果是空的,就把missile的对象全部放进数组。
public void addMissile() {
Missile missile = new Missile();
System.out.println("请输入导弹型号");
missile.setMissileModel(scanner.next());
System.out.println("请输入导弹名称");
missile.setMissileName(scanner.next());
System.out.println("请输入导弹生产国家");
missile.setMissileCountries(scanner.next());
System.out.println("请输入导弹射程");
missile.setMissileRange(scanner.nextInt());
System.out.println("请输入导弹初始入库数量");
missile.setMissileNum(scanner.nextInt());
missile.setDate(new Date());
/**
* 遍历导弹库查看有没有空的导弹
*/
for (int i = 0; i < missiles.length; i++) {
if (missiles[i] == null) {
missiles[i] = missile;
System.out.println("添加成功");
return;
}
}
System.out.println("没有火箭了");
}
火箭入库方法
设定型号和数量
循环将数组的火箭类型和键盘输入做对比
相同的话输入键盘的值。,这个值为火箭库的值和输入num的和
public void storage() {
Missile missile = new Missile();
System.out.println("请输入要入库型号");
String type = scanner.next();
System.out.println("请输入入库数量");
int num = scanner.nextInt();
for (int i = 0; i < missiles.length; i++) {
if (missiles[i].getMissileModel().equals(type)) {
missiles[i].setMissileNum(missiles[i].getMissileNum() + num);
System.out.println("导弹型号为" + missiles[i].getMissileModel() + "入库成功,入库数量为" + num + sdf.format(date));
return;
}
}
System.out.println("输入失败");
}
火箭出库方法
初始化一个属性
设定一个键盘输入
循环条件,将数组火箭类型和键盘输入类型进行对比,如果相等&&数组的数量大于键盘输入的值
number等于火箭库的数量减去输入的数量,就把这个值set赋给number
else 将火箭库num赋为0,输出剩余所有导弹。意思是如果要求出库,但是库存数量少于要求数量,继续输出所有库存。
public void outMissile() {
Missile missile = new Missile();
System.out.println("请输入要出库型号");
String type = scanner.next();
System.out.println("请输入出库数量");
int num = scanner.nextInt();
int number = 0;
for (int i = 0; i < missiles.length; i++) {
if (missiles[i].getMissileModel().equals(type) && missiles[i].getMissileNum() > num) {
number = missiles[i].getMissileNum() - num;
missiles[i].setMissileNum(number);
System.out.println("导弹型号为" + missiles[i].getMissileModel() + "出库成功,出库数量为" + num + ",更新时间为" + sdf.format(date));
return;
} else {
missiles[i].setMissileNum(0);
System.out.println("导弹型号为" + missiles[i].getMissileModel() + "剩余数量不足,出库数量为" + missiles[i].getMissileNum()+",更新时间为"+sdf.format(date));
}
menu();
}
System.out.println("输入失败");
}
删除火箭方法
如果数组不为空键盘输入等于火箭库存的值
判断是否确认废弃,如果值不为空且输入相等火箭库类型
yes执行数组火箭清空
public void deleteMissile() {
System.out.println("请输入火箭编号");
String missileNo = scanner.next();
for (int i = 0; i < missiles.length; i++) {
if (missiles[i] != null && missiles[i].getMissileModel().equals(missileNo)) {
System.out.println("确定要废弃吗当前导弹是" + missiles[i].getMissileCountries() + "射程为" + missiles[i].getMissileRange() + "且库里余量还有" + missiles[i].getMissileNum() + "\t" + "输入yes继续,输入其他返回主界面");
String missileYes = scanner.next();
if (missileYes.equals("yes")) {
missiles[i] = null;
System.out.println("废弃" + missileNo + "成功");
}
menu();
return;
}
}
System.out.println("火箭输入错误");
}
火箭信息展示
如果数组不为空,则展示
public void showInfo() {
System.out.println("型号" + "\t\t\t" + "名称" + "\t\t\t\t\t" + "生产国家" + "\t\t" + "射程(km)" + "\t\t" + "初始入库数量" + "\t\t" + "最新更改时间");
for (int i = 0; i < missiles.length; i++) {
if (missiles[i] != null) {
System.out.println(missiles[i].getMissileModel() + "\t\t" + missiles[i].getMissileName() + "\t\t" + missiles[i].getMissileCountries() + "\t\t\t\t" + missiles[i].getMissileNum() + "\t\t" + missiles[i].getMissileRange() + "\t\t\t" + sdf.format(missiles[i].getDate()));
}
}
}
火箭菜单
菜单类方法调用
public void menu() {
boolean isExit = false;
while (!isExit) {
System.out.println("*********************************");
System.out.println("************欢迎进入导弹系统********");
System.out.println("1.新增导弹信息");
System.out.println("2.导弹信息展示");
System.out.println("3.导弹入库");
System.out.println("4.导弹出库");
System.out.println("5.放弃过时导弹");
System.out.println("6.退出系统");
int choose = scanner.nextInt();
switch (choose) {
case 1: {
addMissile();
break;
}
case 2: {
showInfo();
break;
}
case 3: {
storage();
break;
}
case 4: {
outMissile();
break;
}
case 5: {
deleteMissile();
break;
}
case 6: {
isExit = true;
break;
}
default: {
System.out.println("输入有误!");
}
}
}
火箭测试类
设定数组容量
数组对象
调用missileManangeSystem.menu();
public class MissileManangeSystemDemo {
public static void main(String[] args) {
Missile[] missiles = new Missile[100];
MissileManangeSystem missileManangeSystem = new MissileManangeSystem(missiles);
missileManangeSystem.menu();
}
}

浙公网安备 33010602011771号