用java 写一个雨量监测站,要求有1.新增 2.删除.3修改4.查询 6.退出功能
时间: 2023-12-10 10:37:02 浏览: 122
以下是一个简单的雨量监测站的Java代码,包含了新增、删除、修改、查询和退出功能:
```
import java.util.ArrayList;
import java.util.Scanner;
public class RainfallMonitoringStation {
private static ArrayList<Rainfall> rainfallList = new ArrayList<>();
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 新增");
System.out.println("2. 删除");
System.out.println("3. 修改");
System.out.println("4. 查询");
System.out.println("5. 退出");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
addRainfall();
break;
case 2:
deleteRainfall();
break;
case 3:
updateRainfall();
break;
case 4:
queryRainfall();
break;
case 5:
System.exit(0);
break;
default:
System.out.println("无效的操作,请重新选择!");
}
}
}
private static void addRainfall() {
System.out.println("请输入雨量监测站名称:");
String name = scanner.nextLine();
System.out.println("请输入雨量值(mm):");
double value = scanner.nextDouble();
scanner.nextLine();
Rainfall rainfall = new Rainfall(name, value);
rainfallList.add(rainfall);
System.out.println("雨量监测站已添加!");
}
private static void deleteRainfall() {
System.out.println("请输入要删除的雨量监测站名称:");
String name = scanner.nextLine();
for (Rainfall rainfall : rainfallList) {
if (rainfall.getName().equals(name)) {
rainfallList.remove(rainfall);
System.out.println("雨量监测站已删除!");
return;
}
}
System.out.println("未找到要删除的雨量监测站!");
}
private static void updateRainfall() {
System.out.println("请输入要修改的雨量监测站名称:");
String name = scanner.nextLine();
for (Rainfall rainfall : rainfallList) {
if (rainfall.getName().equals(name)) {
System.out.println("请输入新的雨量值(mm):");
double value = scanner.nextDouble();
scanner.nextLine();
rainfall.setValue(value);
System.out.println("雨量值已更新!");
return;
}
}
System.out.println("未找到要修改的雨量监测站!");
}
private static void queryRainfall() {
System.out.println("请输入要查询的雨量监测站名称,若查询所有,请输入 all:");
String name = scanner.nextLine();
if (name.equals("all")) {
System.out.println("所有雨量监测站:");
for (Rainfall rainfall : rainfallList) {
System.out.println(rainfall.getName() + ":" + rainfall.getValue() + "mm");
}
} else {
for (Rainfall rainfall : rainfallList) {
if (rainfall.getName().equals(name)) {
System.out.println(rainfall.getName() + ":" + rainfall.getValue() + "mm");
return;
}
}
System.out.println("未找到要查询的雨量监测站!");
}
}
}
class Rainfall {
private String name;
private double value;
public Rainfall(String name, double value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
}
```
在这个程序中,我们使用了一个 `ArrayList<Rainfall>` 来保存所有的雨量监测站数据,每个雨量监测站由一个 `Rainfall` 对象来表示。程序通过不断循环接收用户的输入来实现各项功能。具体功能的实现细节如下:
- 新增功能:首先要求用户输入雨量监测站名称和雨量值,然后根据这些信息创建一个 `Rainfall` 对象,并将其添加到 `rainfallList` 中。
- 删除功能:要求用户输入要删除的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就将其从 `rainfallList` 中删除。
- 修改功能:要求用户输入要修改的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就要求用户输入新的雨量值,并将该 `Rainfall` 对象的雨量值更新为用户输入的值。
- 查询功能:要求用户输入要查询的雨量监测站名称,然后遍历 `rainfallList`,查找是否有一个名称与之匹配的 `Rainfall` 对象。如果找到了这样的对象,就输出该对象的名称和雨量值。如果用户输入了特殊的名称 `all`,则遍历 `rainfallList`,输出所有的雨量监测站的名称和雨量值。
- 退出功能:调用 `System.exit(0)` 来终止程序的运行。
注意,在本示例中,我们并没有对用户的输入进行严格的错误处理,因此如果用户输入了不合法的内容,程序可能会出现异常。在实际应用中,我们应该对用户的输入进行更为严格的验证和处理。
阅读全文