Java如何开发一个简易的健康记录小程序
技术百科
P粉602998670
发布时间:2025-10-27
浏览: 次 答案:该健康记录小程序用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存储记录,并提供菜单交互:
import java.util.*;
public class HealthTracker {
private List 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,编译并运行即可。
后续可扩展功能:
- 数据持久化:用文件(如CSV或JSON)保存记录
- 输入校验:检查日期格式、数值范围
- 修改或删除记录
- 图形界面:使用Swing或JavaFX
# ai
# win
# js
# json
# 2025
# java
# switch
# csv
# 小程序
# 面向对象编程
# java实现
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- c++怎么处理多线程死锁_c++ lock_gua
- Win11摄像头无法使用怎么办_Win11相机隐私
- 如何在Golang中处理模块冲突_解决依赖版本不兼
- Python异步网络编程_aiohttp说明【指导
- Python性能剖析高级教程_cProfileLi
- Drupal 中 HTML 链接被双重转义导致渲染
- XML的“混合内容”是什么 怎么用DTD或XSD定
- MAC怎么在照片中添加水印_MAC自带编辑工具文字
- Windows10无法识别USB设备描述符请求失败
- Win11怎么更改系统语言为中文_Windows1
- c# 在高并发场景下,委托和接口调用的性能对比
- Win11文件夹预览图不显示怎么办_Win11缩略
- Win11怎么自动隐藏任务栏_Win11全屏显示设
- mac怎么打开终端_MAC终端Terminal使用
- 如何优化Golang Web性能_Golang H
- Win10怎么关闭自动更新错误重启 Win10策略
- Python多进程教程_multiprocessi
- php485在php5.6下能用吗_php485旧
- Win10怎么关闭自动更新错误弹窗_Win10策略
- Win11如何连接Xbox手柄 Win11蓝牙连接
- Win11怎么更改默认打开方式_Win11关联文件
- LINUX怎么查看进程_LINUX ps命令查看运
- Windows10如何彻底关闭自动更新_Win10
- Win11任务栏怎么放到顶部_Win11修改任务栏
- Windows10电脑怎么连接蓝牙设备_Win10
- c# Task.Yield 的作用是什么 它和Ta
- 如何使用 Python 合并文件夹内多个 Exce
- Win11怎么把图标拖到任务栏_Win11固定应用
- Win11怎么关闭系统透明度_Windows11个
- c++如何实现一个高性能的环形队列(Ring Bu
- Windows10如何更改开机密码_Win10登录
- Win11怎么关闭触摸键盘图标_Windows11
- PHP的Workerman对架构扩展有啥帮助_应用
- Win11怎么设置虚拟内存_Windows 11优
- php命令行怎么运行_通过CLI模式执行PHP脚本
- 如何提升Golang程序I/O性能_Golang
- 如何用正则与预处理结合精准拦截拼接式垃圾域名
- c# 服务器GC和工作站GC的区别和设置
- c++如何判断文件是否存在_c++ filesys
- Win11怎么打开注册表_Windows 11注册
- php中self::能调用子类重写的方法吗_静态绑
- VSC怎么创建PHP项目_从零开始搭建项目的步骤【
- Win11怎么设置DNS服务器_Windows11
- Python对象比较排序规则_集合使用说明【指导】
- windows如何禁用驱动程序强制签名_windo
- Golang如何测试HTTP中间件_Golang
- Win11关机界面怎么改_Win11自定义关机画面
- Drupal 中渲染节点时出现 HTML 标签嵌套
- Win11怎么关闭搜索历史_Win11清除任务栏搜
- Win11怎么设置多显示器任务栏 Win11扩展任

}
}
if (!found) {
System.out.println("未找到该日期的记录。");
}
}
public static void main(String[] args) {
new HealthTracker().start();
}
}
QQ客服