项目51:简易个人健身记录工具【源代码】 --- 《跟着小王学Python·新手》

《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络爬虫、制作桌面软件等多样化项目,学习者可以深入理解并实践Python知识。每周更新1至2篇内容,旨在助力学习者成长为全栈工程师。

全栈实战项目访问:http://javapub.net.cn/

作为课程作业或者毕设参考也是不错的选择

在这里插入图片描述

目标

本项目旨在开发一个简易的个人健身记录工具,帮助用户记录和跟踪他们的健身活动。通过这个项目,新手可以学习到Python的基本语法、文件操作以及简单的数据处理技巧。

功能

  • 记录用户的健身活动(如跑步、举重等)
  • 记录每次活动的时间、日期和持续时间
  • 查看历史健身记录
  • 计算并显示总运动时间

设计

数据结构

  • 使用字典来存储每次健身活动的详细信息,包括活动类型、日期、开始时间和结束时间。
  • 使用列表来存储所有健身活动的记录。

用户界面

  • 使用命令行界面与用户交互。
  • 提供菜单选项供用户选择不同的功能.

文件存储

  • 将健身记录保存到本地文件中,以便下次使用时可以读取历史数据。
  • 使用JSON格式来存储数据,便于读写和解析。

实现步骤

  1. 设计数据结构和文件存储格式。
  2. 实现用户界面和菜单选项。
  3. 实现记录健身活动的功能。
  4. 实现查看历史记录的功能。
  5. 实现计算总运动时间的功能。
  6. 测试并调试程序。

代码实现

import json
import datetime

# 数据存储文件
DATA_FILE = 'fitness_records.json'

def load_records():
    """从文件中加载健身记录"""
    try:
        with open(DATA_FILE, 'r') as file:
            return json.load(file)
    except FileNotFoundError:
        return []

def save_records(records):
    """将健身记录保存到文件"""
    with open(DATA_FILE, 'w') as file:
        json.dump(records, file, indent=4)

def add_record(records):
    """添加新的健身记录"""
    activity = input("请输入健身活动类型(如跑步、举重等):")
    start_time = input("请输入开始时间(格式:HH:MM):")
    end_time = input("请输入结束时间(格式:HH:MM):")
    date = datetime.datetime.now().strftime("%Y-%m-%d")

    record = {
        "activity": activity,
        "date": date,
        "start_time": start_time,
        "end_time": end_time
    }
    records.append(record)
    save_records(records)
    print("记录已添加!")

def view_records(records):
    """查看历史健身记录"""
    if not records:
        print("暂无记录!")
        return
    for record in records:
        print(f"日期:{record['date']}, 活动:{record['activity']}, 开始时间:{record['start_time']}, 结束时间:{record['end_time']}")

def calculate_total_time(records):
    """计算总运动时间"""
    total_minutes = 0
    for record in records:
        start = datetime.datetime.strptime(record['start_time'], "%H:%M")
        end = datetime.datetime.strptime(record['end_time'], "%H:%M")
        total_minutes += (end - start).seconds // 60
    print(f"总运动时间:{total_minutes}分钟")

def main():
    records = load_records()
    while True:
        print("\n简易个人健身记录工具")
        print("1. 添加健身记录")
        print("2. 查看历史记录")
        print("3. 计算总运动时间")
        print("4. 退出")
        choice = input("请选择操作(1-4):")

        if choice == '1':
            add_record(records)
        elif choice == '2':
            view_records(records)
        elif choice == '3':
            calculate_total_time(records)
        elif choice == '4':
            print("感谢使用!")
            break
        else:
            print("无效的选项,请重新选择!")

if __name__ == "__main__":
    main()

测试

  • 测试添加记录功能:输入不同的健身活动和时间,检查记录是否正确保存.
  • 测试查看记录功能:查看添加的记录是否正确显示.
  • 测试计算总运动时间功能:检查计算结果是否准确.

注意事项

  • 确保输入的时间格式正确(HH:MM),否则可能会导致程序出错.
  • 在添加记录时,如果文件不存在,程序会自动创建文件并保存记录.

小结

通过本项目,新手可以学习到Python的基本语法、文件操作以及简单的数据处理技巧。同时,这个项目也展示了如何使用命令行界面与用户进行交互。希望这个项目能帮助你在Python学习的道路上更进一步!

如果你对Java编程感兴趣,可以访问JavaPub的官网 JavaPub 获取更多资源和学习资料.


《跟着小王学Python·新手》

《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络爬虫、制作桌面软件等多样化项目,学习者可以深入理解并实践Python知识。每周更新1至2篇内容,旨在助力学习者成长为全栈工程师。

全栈实战项目访问:http://javapub.net.cn/