iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0

讓系統能自動輸出一份「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

上一篇
含統計分析的文字報告
下一篇
讀取報告檔案
系列文
30 天完成:血壓健康追蹤系統28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言