之前都是一次輸入好幾天的血壓,但如果是正式版連續30天的話不可能每天都要重新輸入前幾天的紀錄。如果可以從檔案讀取曾經輸入過的血壓紀錄的話就會方便很多
新增程式碼:
1.叫出檔案把天數歸零後重新開始計數並顯示讀取內容
File file = new File("blood_pressure_records.txt");
Scanner reader = new Scanner(file);
dayIndex = 0;
while (reader.hasNextLine()) {
String line = reader.nextLine();
System.out.println(line);
2.從文字中讀取血壓數字
用冒號分割字串再用斜線分開紀錄收縮壓與舒張壓,字串轉整數,每成功一筆資料就把天數加一
String[] parts = line.split(": ");
if (parts.length > 1) {
String[] values = parts[1].split("/");
if (values.length == 2) {
systolic[dayIndex] = Integer.parseInt(values[0]);
diastolic[dayIndex] = Integer.parseInt(values[1]);
dayIndex++;
3.選擇
while (true) {
System.out.println("\n請選擇功能:");
System.out.println("1. 新增血壓紀錄");
System.out.println("2. 顯示所有紀錄");
System.out.println("3. 顯示平均血壓");
System.out.println("4. 儲存至檔案");
System.out.println("5. 從檔案讀取");
System.out.println("0. 離開系統");
System.out.print("輸入選項:");
int choice = input.nextInt();
input.nextLine(); // 清除換行符號
if (choice == 1) {
addRecord(input);
} else if (choice == 2) {
showRecords();
} else if (choice == 3) {
showAverage();
} else if (choice == 4) {
saveToFile();
} else if (choice == 5) {
loadFromFile();
} else if (choice == 0) {
System.out.println("系統結束,感謝使用!");
break;
} else {
System.out.println("無效選項,請重新輸入。");
}
}
執行結果:
=== 血壓追蹤紀錄系統 ===
請選擇功能:
1. 新增血壓紀錄
2. 顯示所有紀錄
3. 顯示平均血壓
4. 儲存至檔案
5. 從檔案讀取
0. 離開系統
輸入選項:1
請輸入第 1 天的收縮壓:120
請輸入第 1 天的舒張壓:80
請輸入第 1 天的脈搏:70
已新增第 1 天的血壓紀錄。
輸入選項:1
請輸入第 2 天的收縮壓:135
請輸入第 2 天的舒張壓:85
請輸入第 2 天的脈搏:75
已新增第 2 天的血壓紀錄。
輸入選項:2
=== 血壓紀錄列表 ===
第 1 天:收縮壓=120 舒張壓=80 脈搏=70
第 2 天:收縮壓=135 舒張壓=85 脈搏=75
輸入選項:3
平均收縮壓:127.5,平均舒張壓:82.5,平均脈搏:72.5
輸入選項:4
血壓紀錄已成功儲存!
(重新啟動程式)
輸入選項:5
第 1 天: 120/80 脈搏=70
第 2 天: 135/85 脈搏=75
血壓紀錄已成功讀取!