package 植物管理系统;
import java.util.Scanner;
class Plant {
//文物实体类
//文物三个属性
private String name;
private String species;
private int age;
//全参数构造器实现植物信息初始化
public Plant(String name, String species, int age) {
this.name = name;
this.species = species;
this.age = age;
}
public String getName() {
return name;
}
//定义每一个属性的ge t和se t方法
public String getSpecies() {
return species;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setSpecies(String species) {
this.species = species;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "植物名称:" + name + "\n植物种类:" + species + "\n植物年龄:" + age;
}
}
class PlantManagementSystem {
private static final int MAX_PLANTS = 100; //数组最大值
private final Plant[] plants; //数组存放文物信息
private int plantCount; //文物数量索引 从0开始
public PlantManagementSystem() {
plants = new Plant[MAX_PLANTS]; //初始化数组
plantCount = 0; //当前数组索引
}
//添加方法
public void addPlant(Plant plant) {
//判断如果数组索引小于数组最大长度,将新的文物对象加入到数组中,数组索引下标加一
if (plantCount < MAX_PLANTS) {
plants[plantCount] = plant;
plantCount++;
System.out.println("成功添加植物:" + plant.getName());
} else {
System.out.println("植物数量已达上限,无法添加更多植物!");
}
}
//删除方法,给定数组下标,如果数组下标大于等于0,并且数组的下标,并且数组的下标小于索引的时候删除数组中的对应数据数据向前移动一下,标减1
public void removePlant(int index) {
if (index >= 0 && index < plantCount) {
Plant plant = plants[index];
for (int i = index; i < plantCount - 1; i++) {
plants[i] = plants[i + 1];
}
plants[plantCount - 1] = null;
plantCount--;
System.out.println("成功删除植物:" + plant.getName());
} else {
System.out.println("索引超出范围,请重新输入!");
}
}
//修改方法给定要,修改的数字、下标以及文物名字文物描述和文物价格,通过下标判断文物是否存在,然后通过set方法修改具体信息
public void updatePlant(int index, String name, String species, int age) {
if (index >= 0 && index < plantCount) {
Plant plant = plants[index];
plant.setName(name);
plant.setSpecies(species);
plant.setAge(age);
System.out.println("成功更新植物信息:" + plant.getName());
} else {
System.out.println("索引超出范围,请重新输入!");
}
}
//查找方法。通过文物名字,通过for循环来循环for获得循环中每一个文物的名字并与输入的文物名字相比较,如果相等的时候,或者包含的时候打印输出结果,否则提示未找到符合条件的文物
public void searchPlant(String keyword) {
boolean found = false;
for (int i = 0; i < plantCount; i++) {
Plant plant = plants[i];
if (plant.getName().contains(keyword) || plant.getSpecies().contains(keyword)) {
System.out.println("搜索结果:" + plant.toString() + "\n");
found = true;
}
}
if (!found) {
System.out.println("未找到符合条件的植物!");
}
}
//获得文物列表方法。通过for循环来循环打印数组中的每一个文物信息
public void displayPlants() {
if (plantCount == 0) {
System.out.println("植物列表为空!");
} else {
System.out.println("植物列表:");
for (int i = 0; i < plantCount; i++) {
Plant plant = plants[i];
System.out.println(plant.toString() + "\n");
}
}
}
}
public class Main9 {
public static void main(String[] args) {
PlantManagementSystem system = new PlantManagementSystem();
Scanner scanner = new Scanner(System.in);
int choice = -1;
//通过 while循环来实现主菜单循环
while (choice != 0) {
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("0. 退出");
choice = scanner.nextInt();
scanner.nextLine();
//设置choice参数来接收收入输入的信息,然后通过输入的信息判断执行哪一个方法
switch (choice) {
case 1:
System.out.println("请输入植物名称:");
String name = scanner.nextLine();
System.out.println("请输入植物种类:");
String species = scanner.nextLine();
System.out.println("请输入植物年龄:");
int age = scanner.nextInt();
scanner.nextLine();
system.addPlant(new Plant(name, species, age));
break;
case 2:
System.out.println("请输入要删除的植物索引:");
int removeIndex = scanner.nextInt();
scanner.nextLine();
system.removePlant(removeIndex);
break;
case 3:
System.out.println("请输入要更新的植物索引:");
int updateIndex = scanner.nextInt();
scanner.nextLine();
System.out.println("请输入新的植物名称:");
String newName = scanner.nextLine();
System.out.println("请输入新的植物种类:");
String newSpecies = scanner.nextLine();
System.out.println("请输入新的植物年龄:");
int newAge = scanner.nextInt();
scanner.nextLine();
system.updatePlant(updateIndex, newName, newSpecies, newAge);
break;
case 4:
System.out.println("请输入搜索关键字:");
String keyword = scanner.nextLine();
system.searchPlant(keyword);
break;
case 5:
system.displayPlants();
break;
case 0:
System.out.println("已退出植物管理系统!");
break;
default:
System.out.println("无效的选择,请重新输入!");
break;
}
}
scanner.close();
}
}
植物管理系统
最新推荐文章于 2024-09-20 15:32:13 发布