答案:该健康记录小程序用Java实现,包含添加、查看、按日期查询记录功能。通过HealthRecord类封装数据,HealthTracker类管理记录和菜单交互,使用ArrayList存储,支持控制台输入输出,适合初学者练习面向对象编程和基础数据管理。

开发一个简易的健康记录小程序可以用java实现控制台版本,适合初学者练习面向对象编程和基础数据管理。下面是一个简单的实现思路和代码示例。
1. 明确功能需求
这个健康记录小程序包含以下基本功能:
- 添加健康记录(如体重、血压、心率)
- 查看所有记录
- 按日期查询记录
- 退出程序
2. 设计数据模型类 HealthRecord
创建一个HealthRecord类来封装每条记录的信息:
public class HealthRecord { private String date; // 记录日期 private double weight; // 体重(kg) private int systolic; // 收缩压(高压) private int diastolic; // 舒张压(低压) private int heartRate; // 心率(次/分钟) public HealthRecord(String date, double weight, int systolic, int diastolic, int heartRate) { this.date = date; this.weight = weight; this.systolic = systolic; this.diastolic = diastolic; this.heartRate = heartRate; } // Getter 方法 public String getDate() { return date; } public double getWeight() { return weight; } public int getSystolic() { return systolic; } public int getDiastolic() { return diastolic; } public int getHeartRate() { return heartRate; } @Override public String toString() { return "日期: " + date + " | 体重: " + weight + "kg" + " | 血压: " + systolic + "/" + diastolic + " | 心率: " + heartRate + "bpm"; } }
3. 主程序 HealthTracker 类
使用ArrayList存储记录,并提供菜单交互:
立即学习“Java免费学习笔记(深入)”;
import java.util.*; public class HealthTracker { private List<HealthRecord> records; private Scanner scanner; public HealthTracker() { records = new ArrayList<>(); scanner = new Scanner(System.in); } public void start() { while (true) { showMenu(); int choice = scanner.nextInt(); scanner.nextLine(); // 消费换行符 switch (choice) { case 1: addRecord(); break; case 2: viewAllRecords(); break; case 3: searchByDate(); break; case 4: System.out.println("退出程序。"); return; default: System.out.println("无效选择,请重试。"); } } } private void showMenu() { System.out.println("n=== 健康记录小程序 ==="); System.out.println("1. 添加健康记录"); System.out.println("2. 查看所有记录"); System.out.println("3. 按日期查询"); System.out.println("4. 退出"); System.out.print("请选择操作:"); } private void addRecord() { System.out.print("输入日期 (如 2025-04-05): "); String date = scanner.nextLine(); System.out.print("体重 (kg): "); double weight = scanner.nextDouble(); System.out.print("收缩压 (高压): "); int sys = scanner.nextInt(); System.out.print("舒张压 (低压): "); int dia = scanner.nextInt(); System.out.print("心率 (bpm): "); int hr = scanner.nextInt(); scanner.nextLine(); // 消费换行符 records.add(new HealthRecord(date, weight, sys, dia, hr)); System.out.println("记录已添加!"); } private void viewAllRecords() { if (records.isEmpty()) { System.out.println("暂无记录。"); } else { for (HealthRecord r : records) { System.out.println(r); } } } private void searchByDate() { System.out.print("输入要查询的日期: "); String date = scanner.nextLine(); boolean found = false; for (HealthRecord r : records) { if (r.getDate().equals(date)) { System.out.println(r); found = true; } } if (!found) { System.out.println("未找到该日期的记录。"); } } public static void main(String[] args) { new HealthTracker().start(); } }
4. 运行与扩展建议
将两个类保存为HealthRecord.java和HealthTracker.java,编译并运行即可。
后续可扩展功能:
基本上就这些,不复杂但容易忽略细节比如输入缓冲处理。掌握这个结构后可以逐步升级功能。


