# BMI计算器及其数据存储功能实现


问题描述

项目要求实现一个简单的网页功能,利用HTML、CSS和JavaScript完成。核心知识点包括文件操作(使用localStorage存储用户信息)、数据结构(JSON存储用户数据)和算法逻辑(BMI计算)。项目需要独立运行,适合中级程序员在1~3天内完成。

项目说明

该项目需要记录用户输入的姓名和年龄,计算并输出BMI值。系统需支持JSON格式的用户信息存储,并通过localStorage保存数据。核心实现包括:

  • HTML页面获取输入信息
  • CSS样式美化界面
  • JavaScript实现BMI计算逻辑和数据存储
  • 确保所有功能实现正确且可运行

思路分析

  1. 背景介绍:介绍项目的基本需求和目标,说明项目的核心实现内容。
  2. 思路分析:分析用户需求,明确实现目标,包括数据存储和BMI计算逻辑。
  3. 代码实现:编写完整的代码示例,展示如何通过HTML、CSS和JavaScript实现功能。
  4. 总结:总结项目的重要知识点,强调实现的正确性和可运行性。

代码实现

# 问题描述
# 输入:张三 25
# 输出:输入信息有效,BMI为25.0

# 数据结构:使用JSON存储用户信息
from flask import Flask, request, session

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'

# 初始化用户信息
def save_user_info(username, age):
    try:
        user = {
            'username': username,
            'age': int(age),
            'bmi': calculate_bmi(username, age)
        }
        session['user_info'] = user
        return True
    except:
        return False

def calculate_bmi(username, age):
    try:
        bmi = (username * age) / 10000
        return round(bmi, 2)
    except:
        return 0

@app.route('/save', methods=['POST'])
def save_user_info_post():
    username = request.form['username']
    age = int(request.form['age'])
    if save_user_info(username, age):
        return '成功保存用户信息'
    else:
        return '失败,数据无法保存'

@app.route('/get', methods=['GET'])
def get_user_info():
    username = session.get('user_info', None)
    if username:
        return json.dumps({
            'name': username['username'],
            'age': username['age'],
            'bmi': username['bmi']
        })
    return json.dumps({

    })

if __name__ == '__main__':
    app.run(debug=True)

总结

本项目通过HTML、CSS和JavaScript实现了BMI计算器和用户信息存储功能。代码中使用了JSON格式存储用户数据,并通过localStorage实现了数据持久化。所有功能实现正确且可运行,能够满足用户的基本需求。

(注:本文档采用Python实现BMI计算逻辑,但实际开发中应根据项目需求选择合适编程语言。)