Java练手小项目——BMI计算器

本文介绍了如何使用Java编写一个简单的BMI计算器。程序通过伪菜单界面获取用户体重和身高数据,计算BMI指数并输出结果,同时利用输入输出流保存数据。文章讨论了主类设计、输入输出流实现、接口与服务类设计以及实体类的创建。这个小项目适合作为Java初学者的练习。
摘要由CSDN通过智能技术生成

最近有一个减肥的朋友想要知道自己的BMI是多少,问我能不能给他做一个计算BMI的工具(无中生友)。于是用Java简单写了一个。一起来看看吧。

身体质量指数是BMI指数(身体质量指数,简称体质指数),是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
计算公式为:BMI=体重(千克)除以身高(米)的平方。

为了方便使用我把整个小项目整合成了一个文件,复制到记事本里可以直接运行。

import java.io.*;
/**
 * 本程序实现简单的BMI计算器。
 * 	|-实现了用户键盘输入数据;
 * 	|-实现了BMI保留一位小数点
 * 	|-实现了Java标准输出到文件
 * 	|-实现了工厂设计模式,减少耦合
 * 	|-添加了对异常的处理
 * @author chuchu
 *
 */
public class Test {
   
	public static void main(String[] args) {
   
		new Menu();
	}
}

class Menu {
   
	private Person per = null;
	private BMIService bs = null;
	private double BMI = 0.0;
	private PrintUtil out = null;

	public Menu() {
   
		this.show();
	}

	public void show() {
   
		System.out.println("***欢迎使用BMI计算器,请输入相关信息***");
		String name = InputUtil.getInfo("请输入姓名:");
		int age = Integer.parseInt(InputUtil.getInfo("请输入年龄:"));
		double height = Double.parseDouble(InputUtil.getInfo("请输入身高(米):"));
		double weight = Double.parseDouble(InputUtil.getInfo("请输入体重(kg):"));

		bs = Factory.getInstance();
		double b = bs.getBMI(height, weight);
		BMI = Math.round(b * 100) / 100;
		String Evl = bs.getEvaluate(BMI);
		per = new Person(name, age, height, weight, BMI, Evl);
		System.out.println("***信息创建成功***");
		System.out.println("您的BMI为:" + BMI);
		System.out.println("您的身体状况:" + Evl);
		System.out.println("正在将您的文件输出为文本。。。。");
		out = Factory.getPrintInstance(per);
		if (out.print())
			System.out.println("文件输出成功,地址为" + out.getPATH());
		else {
   
			System.out.println("文件输出失败!");
			show();
		}
	}
}

class Factory {
   
	private Factory() {
   
	}

	public static BMIService getInstance() {
   
		return new BMIServiceImpl();
	}

	public static PrintUtil getPrintInstance(Person per) {
   
		return new PrintUtil(per);
	}
}

interface BMIService {
   
	public double getBMI(double height, double weight);

	public String getEvaluate(double BMI);
}

class BMIServiceImpl implements BMIService {
   
	private static final String THIN = "您的体型偏瘦,请增加营养摄入,加强锻炼!";
	private static final String NORMAL = "您的体型正常,请继续保持!";
	private static final String FATTY = "您已偏胖,请改变不健康的生活习惯,加强锻炼!";
	private static final String OBESITY = "您的体型肥胖,相关疾病风险显著增加!";

	@Override
	public double getBMI(double height, double weight) {
   
		return weight / (height * height);
	}

	@Override
	public String getEvaluate(double BMI) {
   
		if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值