讓系統能自動輸出一份「30天血壓紀錄報告」文字檔方便使用者列印或保存。目標是要用FileWriter與PrintWriter來輸出檔案,把之前儲存的血壓資料寫進.txt檔中
新增程式碼:
1.加在原本的BloodPressureTracker類別裡
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public void exportReport(String fileName) {
try (PrintWriter writer = new PrintWriter(new FileWriter(fileName))) {
writer.println("=== 30天血壓紀錄報告 ===");
writer.println();
for (int i = 0; i < dayIndex; i++) {
int sys = systolic[i];
int dia = diastolic[i];
int pul = pulse[i];
String status = analyze(sys, dia);
writer.printf("第 %d 天: 收縮壓=%d, 舒張壓=%d, 脈搏=%d, 狀態=%s%n",
i + 1, sys, dia, pul, status);
}
writer.println();
writer.println("=== 平均值 ===");
writer.printf("平均收縮壓: %.1f%n", calcAverage(systolic));
writer.printf("平均舒張壓: %.1f%n", calcAverage(diastolic));
writer.printf("平均脈搏: %.1f%n", calcAverage(pulse));
System.out.println("報告已成功輸出到檔案:" + fileName);
} catch (IOException e) {
System.out.println("寫入報告時發生錯誤:" + e.getMessage());
}
}
%d整數,%s字串,%n換行
2.在Main裡的switch裡新增case
case 4:
tracker.exportReport("BloodPressureReport.txt");
break;
3.更新選單的顯示
System.out.println("4. 輸出報告檔案");
執行結果:
請選擇功能:
1. 輸入今日血壓
2. 顯示所有紀錄
3. 顯示平均值
4. 輸出報告檔案
5. 離開
選擇:4
報告已成功輸出到檔案:BloodPressureReport.txt
報告時的結果:
=== 30天血壓紀錄報告 ===
第 1 天: 收縮壓=120, 舒張壓=80, 脈搏=70, 狀態=正常
第 2 天: 收縮壓=135, 舒張壓=85, 脈搏=72, 狀態=偏高
...
=== 平均值 ===
平均收縮壓: 126.5
平均舒張壓: 82.3
平均脈搏: 71.0