JAVA-通过身高体重计算BMI判断人的体型(普通版)

代码:(给出BMI的相关注释)

abstract class People{
	int weight;
	int height;
	public People(int w, int h) {
		this.weight = w;
		this.height = h;
	}

	abstract public float stature();
	public void drawResult() {
		System.out.print("体重:"+this.weight+"(KG) 身高:"+this.height+"(cm)");
		
//		BMI 
//		float statureResult = this.stature();
//		if (statureResult<= 18.4) {
//			System.out.println("体型:偏瘦");
//		}else if (statureResult <= 23.9 && statureResult > 18.4) {
//			System.out.println("体型:正常");
//		}else if (statureResult < 23.9 && statureResult <= 27.9) {
//			System.out.println("体型:超重");
//		}else if (statureResult > 27.9) {
//			System.out.println("体型:肥胖");
//		} else {
//			System.out.println("啥,应该不会运行到这里吧?");
//		}
		float statureResult = this.weight/this.stature()-1;
		if(statureResult>=-0.1&&statureResult<=0.1) {
			System.out.println("体型:标准");
		}else if (statureResult<-0.1) {
			System.out.println("体型:偏瘦");
		}else if (statureResult>0.1) {
			System.out.println("体型:偏重");
		}else {
			System.out.println("啥,应该不会运行到这里吧?嘿嘿嘿");
		}
	};
}

class Woman extends People {
	Woman(int w, int h){
		super(w, h);
	}

	@Override
	public float stature() {

		//BMI=体重(千克)除以身高(米)的平方(kg/m2)
		//return this.weight/((this.height/100)^2);
		//	女性:(身高cm-70)×60﹪=标准体重
		return (float) ((this.height-70.0)*0.6);
	}
}
class man extends People {
	man(int w, int h){
		super(w, h);
	}

	@Override
	public float stature() {
		
		//BMI=体重(千克)除以身高(米)的平方(kg/m2)
		//return this.weight/((this.height/100)^2);
		//男性:(身高cm-80)×70﹪=标准体重
		return (float) ((this.height-80.0)*0.7);
	}
}
public class PeopleTest {
	public static void main(String[] args) {
		System.out.print("这个男士:");
		man Man = new man(100, 185);
		Man.drawResult();
	}

}

运行效果:

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
动物换位游戏是一个简单的逻辑游戏,玩家需要根据给定的规则,将动物们重新排列,以满足特定的条件。以下是一个基于Java语言的动物换位游戏的示例实现: ```java import java.util.Arrays; import java.util.Scanner; public class AnimalSwapGame { private static final int NUM_ANIMALS = 5; private static final String[] ANIMAL_NAMES = {"狮子", "老虎", "猴子", "大象", "长颈鹿"}; private static final String[] ATTRIBUTE_NAMES = {"颜色", "性别", "年龄", "体型", "国籍"}; private static final String[][] ATTRIBUTES = { {"红色", "黄色", "蓝色", "绿色", "紫色"}, {"公", "母"}, {"幼年", "成年", "老年"}, {"小", "中等", "大"}, {"中国", "美国", "英国", "法国", "俄罗斯"} }; private static final int[][] RULES = { //规则1:狮子和老虎的颜色必须相同 {0, 1, 0}, //规则2:年龄最大的动物是长颈鹿 {4, 2, 2}, //规则3:中国的动物必须是猴子或大象 {2, 4, 0}, //规则4:红色的动物必须是公的 {1, 0, 0}, //规则5:美国的动物必须比法国的动物年龄小 {3, 1, 1} }; private String[][] animals; public AnimalSwapGame() { animals = new String[NUM_ANIMALS][ATTRIBUTE_NAMES.length]; // 随机分配每个动物的属性值 for (int i = 0; i < NUM_ANIMALS; i++) { for (int j = 0; j < ATTRIBUTE_NAMES.length; j++) { animals[i][j] = ATTRIBUTES[j][(int) (Math.random() * ATTRIBUTES[j].length)]; } } } public void play() { Scanner scanner = new Scanner(System.in); printRules(); while (!isGameFinished()) { printAnimals(); System.out.print("请输入要交换位置的两个动物编号(用空格分隔):"); int animal1 = scanner.nextInt(); int animal2 = scanner.nextInt(); swapAnimals(animal1, animal2); if (!isRulesSatisfied()) { System.out.println("当前交换不符合规则,请重新交换!"); swapAnimals(animal1, animal2); } } System.out.println("恭喜你,成功完成游戏!"); } private void printRules() { System.out.println("游戏规则:"); for (int i = 0; i < RULES.length; i++) { System.out.println("规则" + (i + 1) + ":" + ANIMAL_NAMES[RULES[i][0]] + "的" + ATTRIBUTE_NAMES[RULES[i][1]] + "必须" + ATTRIBUTES[RULES[i][1]][RULES[i][2]]); } System.out.println(); } private void printAnimals() { System.out.println("当前动物列表:"); for (int i = 0; i < NUM_ANIMALS; i++) { System.out.print(i + 1 + ". " + ANIMAL_NAMES[i] + "("); for (int j = 0; j < ATTRIBUTE_NAMES.length; j++) { System.out.print(ATTRIBUTE_NAMES[j] + ":" + animals[i][j]); if (j < ATTRIBUTE_NAMES.length - 1) { System.out.print(", "); } } System.out.println(")"); } System.out.println(); } private void swapAnimals(int animal1, int animal2) { String[] temp = Arrays.copyOf(animals[animal1 - 1], ATTRIBUTE_NAMES.length); animals[animal1 - 1] = Arrays.copyOf(animals[animal2 - 1], ATTRIBUTE_NAMES.length); animals[animal2 - 1] = Arrays.copyOf(temp, ATTRIBUTE_NAMES.length); } private boolean isRulesSatisfied() { for (int[] rule : RULES) { if (!isRuleSatisfied(rule)) { return false; } } return true; } private boolean isRuleSatisfied(int[] rule) { String attrValue1 = animals[rule[0]][rule[1]]; String attrValue2 = ATTRIBUTES[rule[1]][rule[2]]; return attrValue1.equals(attrValue2); } private boolean isGameFinished() { // 如果所有动物的属性都相同,就认为游戏结束 for (int i = 1; i < NUM_ANIMALS; i++) { if (!Arrays.equals(animals[i], animals[0])) { return false; } } return true; } public static void main(String[] args) { AnimalSwapGame game = new AnimalSwapGame(); game.play(); } } ``` 在这个示例实现中,我们使用了以下数据: - `NUM_ANIMALS`:动物的数量,这里设为5。 - `ANIMAL_NAMES`:动物的名称,共5种。 - `ATTRIBUTE_NAMES`:每个动物拥有的属性名称,共5种。 - `ATTRIBUTES`:每个属性的可能取值,共5种属性,每种属性有若干个取值。 - `RULES`:游戏规则,共5条,每条规则由三个整数构成,分别表示需要比较的动物、属性和属性取值。 在游戏开始时,我们随机分配每个动物的属性值。然后,进入游戏循环,每次循环输出当前动物列表,并让玩家输入要交换位置的两个动物编号。如果交换后不符合游戏规则,就要求玩家重新输入。直到所有动物的属性都相同,游戏结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深山黑皮猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值