From 0f14e46f9966fbd812ce0395dffb77b0b9d592ef Mon Sep 17 00:00:00 2001 From: myhomework Date: Wed, 1 Apr 2026 20:00:41 +0800 Subject: [PATCH] w2 --- BankAccount.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++++ DataCleaner.java | 33 +++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 BankAccount.java create mode 100644 DataCleaner.java diff --git a/BankAccount.java b/BankAccount.java new file mode 100644 index 0000000..3742f58 --- /dev/null +++ b/BankAccount.java @@ -0,0 +1,93 @@ +// 银行账户类:封装账户属性和操作 +public class BankAccount { + // 1. 定义私有属性(仅本类可访问) + private String accountNumber; // 账户号 + private String ownerName; // 户主姓名 + private double balance; // 余额 + + // 2. 构造方法:创建账户时必须传入账户号和户主姓名,初始余额为0 + public BankAccount(String accountNumber, String ownerName) { + this.accountNumber = accountNumber; + this.ownerName = ownerName; + this.balance = 0.0; // 初始余额固定为0 + } + + // 3. 封装的方法:对外提供安全的访问/操作入口 + // 获取账户号(账户号不可修改,无setter方法) + public String getAccountNumber() { + return accountNumber; + } + + // 获取户主姓名 + public String getOwnerName() { + return ownerName; + } + + // 修改户主姓名 + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + // 查询余额(仅查询,不允许直接修改) + public double getBalance() { + return balance; + } + + // 存款操作(仅允许存入正数) + public void deposit(double amount) { + if (amount > 0) { + balance += amount; + System.out.println("✅ 存款成功!当前余额:" + balance + " 元"); + } else { + System.out.println("❌ 存款失败:金额必须大于0!"); + } + } + + // 取款操作(校验金额合法性和余额充足性) + public void withdraw(double amount) { + if (amount > 0) { + if (amount <= balance) { + balance -= amount; + System.out.println("✅ 取款成功!当前余额:" + balance + " 元"); + } else { + System.out.println("❌ 取款失败:余额不足!当前余额:" + balance + " 元,取款金额:" + amount + " 元"); + } + } else { + System.out.println("❌ 取款失败:金额必须大于0!"); + } + } + + // 测试主方法:直接在本类中运行,无需额外创建测试类 + public static void main(String[] args) { + // 1. 创建一个银行账户(账户号:6228481234567890,户主:李四) + BankAccount myAccount = new BankAccount("6228481234567890", "李四"); + + // 2. 打印账户初始信息 + System.out.println("===== 账户初始信息 ====="); + System.out.println("账户号:" + myAccount.getAccountNumber()); + System.out.println("户主姓名:" + myAccount.getOwnerName()); + System.out.println("初始余额:" + myAccount.getBalance() + " 元"); + + // 3. 测试存款操作 + System.out.println("\n===== 测试存款 ====="); + myAccount.deposit(2000); // 存入2000元(合法) + myAccount.deposit(-500); // 存入负数(非法) + + // 4. 测试取款操作 + System.out.println("\n===== 测试取款 ====="); + myAccount.withdraw(800); // 取出800元(合法) + myAccount.withdraw(1500); // 取出1500元(余额不足) + myAccount.withdraw(-200); // 取出负数(非法) + + // 5. 修改户主姓名 + System.out.println("\n===== 测试修改户主姓名 ====="); + myAccount.setOwnerName("李四五"); + System.out.println("修改后的户主姓名:" + myAccount.getOwnerName()); + + // 6. 打印最终账户信息 + System.out.println("\n===== 账户最终信息 ====="); + System.out.println("账户号:" + myAccount.getAccountNumber()); + System.out.println("户主姓名:" + myAccount.getOwnerName()); + System.out.println("最终余额:" + myAccount.getBalance() + " 元"); + } +} diff --git a/DataCleaner.java b/DataCleaner.java new file mode 100644 index 0000000..8ac331b --- /dev/null +++ b/DataCleaner.java @@ -0,0 +1,33 @@ +// 注意:文件开头无任何package语句! +// 文件名:DataCleaner.java,放在C:\Users\ZRL\Desktop\SensorData\ 下 +public class DataCleaner { + public static void main(String[] args) { + int[] sensorData = {85, -5, 92, 0, 105, 999, 88, 76}; + int validSum = 0; + int validCount = 0; + + for (int data : sensorData) { + // 致命错误:传感器掉线 + if (data == 999) { + System.out.println("致命错误:传感器掉线,终止处理"); + break; + } + // 无效数据:越界值 + if (data <= 0 || data > 100) { + System.out.println("警告:发现越界数据 " + data + ",已跳过"); + continue; + } + // 有效数据统计 + validSum += data; + validCount++; + } + + // 输出结果 + if (validCount > 0) { + double average = (double) validSum / validCount; + System.out.printf("有效数据平均值:%.2f%n", average); + } else { + System.out.println("无有效数据"); + } + } +} \ No newline at end of file