JAVA程序设计(05.2)-----水池造价研究

1.先构造类

属性:半径   行为:周长 面积   昨天把大圆面积-小圆面积在构造里也算了… 不符合 那个什么六字原则啊~~

package com.lovo;
/**
 * 类:水池
 * 属性:半径
 * 行为:外圈, 面积
 * @author Abe
 *
 */

public class Pool {
	private double r;

/**
 * 构造器
 * @param r
 */
	public Pool(double r) {
		this.r = r;
	}
	
/**
 * 外围围墙周长
 */
	public double girth(){
		double length = 2 * Math.PI * r ;
		return length;	
	}
		
/**
 * 求圆面积
 */
	public double area(){
		double area = Math.PI * r * r;
		return area;
	}
}



2.程序求造价

package com.lovo;

import java.util.Scanner;

/**
 * 输入半径 求水池造价
 * 
 * @author Abe
 *
 */

public class Testpool {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double r = 0;
		final double CP = 8;
		final double SP = 10;
		do {
			System.out.printf("请输入水池的半径:");
			if (sc.hasNextDouble()) {
				r = sc.nextDouble();
				if (r > 0) {
					Pool small = new Pool(r);
					Pool big = new Pool(r + 3);
					// 其他都是扯淡,算造价就这一句……妥妥的……
					System.out
							.printf("半径为%f米的水池,围墙造价为%.2f元,过道造价为%.2f元。\n总价为%.2f元。",
									r,big.girth() * CP,	(big.area() - small.area()) * SP,
									big.girth() * CP + (big.area() - small.area()) * SP);
				} else {
					System.out.println("请输入正确的半径数字哦亲……");
					sc.nextLine(); //为啥没这句 先输入负数 在输入字符 就会循环2次?为啥负数也没被消耗掉啊???
				}
			} else {
				System.out.println("尼玛,输入的就不是数字好吧?!");
				sc.nextLine();
			}
		} while (r <= 0); 	// 如果是正数就运算出结果了 程序结束
							// r原始值是0 如果是之后又被赋予了负数 都会造成程序循环
							// 输入字符串 不会改变r 所以保持0 或者负数 继续循环
		sc.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值