10.基础语法-课程安排
10 课程安排
10.1 案例
三种内容:角色、指示、输出说明
你扮演一个经验丰富的Java培训老师。
我正在学习Java基础语法,我需要实现一个控制台小程序,可以根据用户提供的基本信息计算用户身体指标,判断用户体型。然后计算每日热量消耗。并给出每日摄入热量建议,每日摄入的蛋白质、碳水、脂肪的具体值。
帮我分析该如何实现,如果涉及到计算的,请给出具体的计算公式和解释。
HealthCalculator.java
package com.itheima.ai; import java.util.Scanner; public class HealthCalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("================================="); System.out.println(" 欢迎使用健康指标计算器"); System.out.println("================================="); // 获取用户基本信息 System.out.print("请输入您的性别 (M-男性/F-女性): "); char gender = scanner.next().charAt(0); System.out.print("请输入您的年龄: "); int age = scanner.nextInt(); System.out.print("请输入您的身高 (cm): "); double height = scanner.nextDouble(); System.out.print("请输入您的体重 (kg): "); double weight = scanner.nextDouble(); System.out.println("\n请选择您的活动水平:"); System.out.println("1. 久坐 (几乎不运动)"); System.out.println("2. 轻度活动 (每周1-3天运动)"); System.out.println("3. 中度活动 (每周3-5天运动)"); System.out.println("4. 高度活动 (每周6-7天运动)"); System.out.println("5. 极高活动 (体力劳动/每天训练)"); System.out.print("请选择 (1-5): "); int activityChoice = scanner.nextInt(); // 计算BMI double bmi = calculateBMI(weight, height); String bodyType = determineBodyType(bmi); // 计算BMR double bmr = calculateBMR(gender, age, height, weight); // 获取活动系数 double activityFactor = getActivityFactor(activityChoice); // 计算TDEE double tdee = calculateTDEE(bmr, activityFactor); // 计算营养素建议 double[] nutrients = calculateNutrients(tdee); // 输出结果 displayResults(bmi, bodyType, bmr, tdee, nutrients); scanner.close(); } /** * 计算BMI * @param weight 体重(kg) * @param height 身高(cm) * @return BMI值 */ public static double calculateBMI(double weight, double height) { double heightInMeters = height / 100.0; // 转换为米 return weight / (heightInMeters * heightInMeters); } /** * 判断体型 * @param bmi BMI值 * @return 体型描述 */ public static String determineBodyType(double bmi) { if (bmi < 18.5) { return "偏瘦"; } else if (bmi < 24.9) { return "正常"; } else if (bmi < 29.9) { return "超重"; } else { return "肥胖"; } } /** * 计算基础代谢率(BMR) * @param gender 性别('M'或'F') * @param age 年龄 * @param height 身高(cm) * @param weight 体重(kg) * @return BMR值 */ public static double calculateBMR(char gender, int age, double height, double weight) { if (gender == 'M' || gender == 'm') { // 男性BMR公式 return 10 * weight + 6.25 * height - 5 * age + 5; } else { // 女性BMR公式 return 10 * weight + 6.25 * height - 5 * age - 161; } } /** * 根据选择获取活动系数 * @param choice 活动等级选择(1-5) * @return 活动系数 */ public static double getActivityFactor(int choice) { switch (choice) { case 1: return 1.2; // 久坐 case 2: return 1.375; // 轻度活动 case 3: return 1.55; // 中度活动 case 4: return 1.725; // 高度活动 case 5: return 1.9; // 极高活动 default: return 1.2; // 默认久坐 } } /** * 计算总日常能量消耗(TDEE) * @param bmr 基础代谢率 * @param activityFactor 活动系数 * @return TDEE值 */ public static double calculateTDEE(double bmr, double activityFactor) { return bmr * activityFactor; } /** * 计算三大营养素建议摄入量 * @param totalCalories 总热量 * @return 包含蛋白质、碳水化合物、脂肪克数的数组 */ public static double[] calculateNutrients(double totalCalories) { double[] nutrients = new double[3]; // 分配比例:蛋白质25%,碳水化合物50%,脂肪25% double proteinCalories = totalCalories * 0.25; // 蛋白质热量 double carbCalories = totalCalories * 0.50; // 碳水化合物热量 double fatCalories = totalCalories * 0.25; // 脂肪热量 // 转换为克数 (蛋白质和碳水化合物每克4千卡,脂肪每克9千卡) nutrients[0] = proteinCalories / 4; // 蛋白质克数 nutrients[1] = carbCalories / 4; // 碳水化合物克数 nutrients[2] = fatCalories / 9; // 脂肪克数 return nutrients; } /** * 显示计算结果 * @param bmi BMI值 * @param bodyType 体型 * @param bmr 基础代谢率 * @param tdee 每日总消耗 * @param nutrients 营养素数组 */ public static void displayResults(double bmi, String bodyType, double bmr, double tdee, double[] nutrients) { System.out.println("\n================================="); System.out.println(" 健康分析报告"); System.out.println("================================="); System.out.printf("BMI指数: %.2f\n", bmi); System.out.println("体型判断: " + bodyType); System.out.printf("基础代谢率(BMR): %.0f 千卡/天\n", bmr); System.out.printf("每日总能量消耗(TDEE): %.0f 千卡/天\n", tdee); System.out.printf("建议每日摄入热量: %.0f 千卡\n", tdee); System.out.println("\n建议每日营养素摄入量:"); System.out.printf(" 蛋白质: %.1f 克\n", nutrients[0]); System.out.printf(" 碳水化合物: %.1f 克\n", nutrients[1]); System.out.printf(" 脂肪: %.1f 克\n", nutrients[2]); System.out.println("================================="); } }
10.2 课程安排
1.注释
2.变量和常量
3.数据存储原理
4.数据类型
5.算术运算
6.流程控制
7.方法
8.数组
———————————————————————————————————————————————————————————————————————————
无敌小马爱学习
浙公网安备 33010602011771号