“该系统一共分为三步”
第一:先写一个Car类,定义车辆属性
package com.stx.exercise.projectone.test;
import java.util.Date;
/**
* @program: StxHomework
* @ClassName: Car
* @description: 车辆信息
* @author: LuoCheng
* @create: 2024-03-23 11:39
*/
public class Car {
/**
* 1.定义car的属性
* name,brand,price,amount,energyType
* 2.构造出有参函数和无参函数
* 3.创建set,get方法
*/
private String name;
private String brand;
private double price;
private int amount;
private String energyType;
private Date time;
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public Car(String name, String brand, double price, int amount, String energyType, Date time) {
this.name = name;
this.brand = brand;
this.price = price;
this.amount = amount;
this.energyType = energyType;
this.time = time;
}
public Car() {
}
public String getName() {
return name;
}
//重写toString方法
@Override
public String toString() {
return "Car{" +
"name='" + name + '\'' +
", brand='" + brand + '\'' +
", price=" + price +
", amount=" + amount +
", energyType='" + energyType + '\'' +
'}';
}
public void setName(String name) {
this.name = name;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public String getEnergyType() {
return energyType;
}
public void setEnergyType(String energyType) {
this.energyType = energyType;
}
}
第二:车辆系统管理(VehicleManagementSystem)
package com.stx.exercise.projectone.test;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;
/**
* @program: StxHomework
* @ClassName: VehicleManagementSystem
* @description: 车辆优购系统
* @author: LuoCheng
* @create: 2024-03-23 11:33
*/
public class VehicleManagementSystem {
//定义数组对象,设置初始化值为5
Car[] cars = new Car[5];
Scanner scanner = new Scanner(System.in);
SimpleDateFormat sdf = new SimpleDateFormat();
/**
* 创建menu()方法
* 作为主页,菜单栏
*/
public void menu() {
boolean isExit = false;
//进入菜单循环
while (!isExit) {
System.out.println("*********************************");
System.out.println("******欢迎来到《车辆优购系统》******");
System.out.println("*********************************");
System.out.println("1.新增车辆信息" + "\t" + "2.修改车辆信息" + "\t" + "3.删除车辆信息");
System.out.println("4.车辆推荐" + "\t" + "5.退出系统");
System.out.println("*********************************");
//键盘录入,进入对应的选项
int choose = scanner.nextInt();
switch (choose) {
case 1:
addVehicle();
break;
case 2:
updateVehicle();
break;
case 3:
deleteVehicle();
break;
case 4:
recommendVehicle();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("已经退出系统");
}
}
}
/**
* 创建addVehicle()方法
* 新增车辆信息
*/
public void addVehicle() {
Car car = new Car();
System.out.println("请输入车辆的名称");
car.setName(scanner.next());
System.out.println("请输入车辆的品牌");
car.setBrand(scanner.next());
//判断输入的是否是double类型或者int类型
boolean isTrueScannerDouble = false;
while(!isTrueScannerDouble){
System.out.println("请输入车辆的价格(万元)");
if(scanner.hasNextDouble()){
car.setPrice(scanner.nextDouble());
isTrueScannerDouble = true;
}else{
System.out.println("输入的不是有效数字,请重新输入");
//清楚缓冲区
scanner.next();
}
}
scanner.nextLine();
//判断输入的是否是double类型或者int类型
boolean isTrueScannerInt = false;
while(!isTrueScannerInt){
System.out.println("请输入车辆的销量");
if(scanner.hasNextInt()){
car.setAmount(scanner.nextInt());
isTrueScannerInt = true;
}else{
System.out.println("输入的不是有效数字,请重新输入");
//清楚缓冲区
scanner.next();
}
}
//判断是否是三种类型之一
boolean a = false;
while (!a) {
System.out.println("请输入车辆的能源类型(燃油车,电车,混动车)");
String carType = scanner.next();
//判断输入的能源类型,必须是燃油车、电车、混动车,否则重新录入
if (carType.equals("燃油车") || carType.equals("电车") || carType.equals("混动车")) {
a = true;
car.setEnergyType(carType);
car.setTime(new Date());
} else {
System.out.println("输入错误");
}
}
//查询车辆是否有空余的空间,添加车辆信息
for (int i = 0; i < cars.length; i++) {
if (cars[i] == null) {
cars[i] = car;
break;
}
}
//显示车辆信息
showInfo();
}
/**
* 创建updateVehicle()方法
* 修改(更新)车辆信息
*/
public void updateVehicle() {
//判断是否为空,为空就返回主页
for (int i = 0; i < cars.length; i++) {
if (cars[0] == null) {
System.out.println("系统中没有数据,返回主页");
return;
}
}
System.out.println("请输入要修改车辆信息的车辆名称");
String name1 = scanner.next();
for (int i = 0; i < cars.length; i++) {
if (cars[i].getName().equals(name1)) {
boolean a = false;
//进入循环,可以进行多次修改
while (!a) {
System.out.println("********请选择要修改的内容********");
System.out.println("1.修改车辆的名称" + "2.修改车辆的品牌" + "3.修改车辆的价格" +
"4.修改车辆的销量" + "5.修改车辆的能源类型" + "6.退出修改");
int choose = scanner.nextInt();
//选择修改的内容
switch (choose) {
case 1:
System.out.println("请输入车辆的名称");
cars[i].setName(scanner.next());
System.out.println("修改成功");
break;
case 2:
System.out.println("请输入车辆的品牌");
cars[i].setBrand(scanner.next());
break;
case 3:
System.out.println("请输入车辆的价格");
cars[i].setPrice(scanner.nextDouble());
break;
case 4:
System.out.println("请输入车辆的销量");
cars[i].setAmount(scanner.nextInt());
break;
case 5:
System.out.println("请输入车辆的能源类型");
cars[i].setEnergyType(scanner.next());
break;
case 6:
a = true;
System.out.println("退出修改");
break;
default:
System.out.println("输入错误");
}
}
} else {
System.out.println("系统中没有该车辆的信息");
}
break;
}
//显示当前的车辆信息
showInfo();
}
/**
* 创建deleteVehicle()方法
* 删除车辆信息
*/
public void deleteVehicle() {
//判断是否为空,为空就返回主页
for (int i = 0; i < cars.length; i++) {
if (cars[0] == null) {
System.out.println("系统中没有数据,返回主页");
return;
}
}
//提示输入要修改车辆信息的车辆名称
System.out.println("请输入要修改车辆信息的车辆名称");
String name2 = scanner.next();
//循环遍历,查看是否有该车辆的信息
for (int i = 0; i < cars.length; i++) {
//如果找到,就删除该信息
if (cars[i].getName().equals(name2)) {
cars[i] = null;
break;
} else {
System.out.println("系统中没有该车辆的信息");
}
}
//显示当前的车辆信息
showInfo();
}
/**
* 创建recommendVehicle()方法
* 根据车辆的销量来 推荐车辆信息
*/
public void recommendVehicle() {
//判断是否为空,为空就返回主页
for (int i = 0; i < cars.length; i++) {
if (cars[0] == null) {
System.out.println("系统中没有数据,返回主页");
return;
}
}
//定义最大销量为0
int max = 0;
Car car1 = null;
//遍历判断,如果系统中没有车辆信息,就跳出本次循环
for (int i = 0; i < cars.length; i++) {
if (cars[i] == null) {
continue;
}
//遍历查找销量最大值,赋值给max
if (max < cars[i].getAmount()) {
max = cars[i].getAmount();
}
}
//将查询到的信息的数组位置赋给 car1
for (int j = 0; j < cars.length; j++) {
//查询与max符合的数组信息
if (cars[j].getAmount() == max) {
car1 = cars[j];
break;
}
}
//将car1的数据作为推荐车辆信息展示出来
System.out.println("车辆的名称" + "\t" + "车辆的品牌" + "\t" + "车辆的价格(万元)" + "\t" +
"车辆的销量" + "\t" + "车辆的能源类型" + "\t" + "更新时间");
System.out.println(car1.getName() + " \t" + " \t" + car1.getBrand() + " \t" + " \t" + car1.getPrice() + " \t" + " \t" +
car1.getAmount() + " \t" + " \t" + car1.getEnergyType() + " \t" + " \t" + sdf.format(car1.getTime()));
}
/**
* 创建showInfo()方法
* 展示当前车辆信息
*/
public void showInfo() {
System.out.println("车辆的名称" + "\t" + "车辆的品牌" + "\t" + "车辆的价格(万元)" + "\t" +
"车辆的销量" + "\t" + "车辆的能源类型" + "\t" + "更新时间");
//对象数组进行循环遍历
for (int i = 0; i < cars.length; i++) {
//将不为null值的数据展示出来
if (cars[i] != null) {
System.out.println(cars[i].getName() + " \t" + " \t" + cars[i].getBrand() + " \t" + " \t" +
cars[i].getPrice() + " \t" + " \t" + " \t" + cars[i].getAmount() + " \t" + " \t" +
cars[i].getEnergyType() + " \t" + " \t" + sdf.format(cars[i].getTime()));
}
}
}
}
第三:测试运行(SystemDemo)
package com.stx.exercise.projectone.test;
/**
* @program: StxHomework
* @ClassName: SystemDemo
* @description: 车辆优购系统测试
* @author: LuoCheng
* @create: 2024-03-23 11:44
*/
public class SystemDemo {
public static void main(String[] args) {
//构建无参对象
VehicleManagementSystem vehicleManagementSystem = new VehicleManagementSystem();
//调用车辆优购系统的菜单栏,进入系统
vehicleManagementSystem.menu();
}
}