项目三第一题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目三第一题相关的知识,希望对你有一定的参考价值。
/*(1)为用户提供几个常见的几何体面积和体积的算法(如球的体积和表面积,圆柱体的体积和表面积,圆锥体的体积和表面积) (2)设计一个测试类,给出几个不同的圆柱体,圆锥体,球体的尺寸,用计算工具类分别求它们体积的累加和与表面积的累加和。 (3)设计一个测试类,随机产生球,圆柱、圆锥体的尺寸,模拟考试,要求用户回答它们的体积和面积,并判断用户的回答是否正确。*/ import java.util.Scanner; class Tool{ private static double PI=Math.PI; public static double area(int r) //球的表面积 { double a=4*PI*r*r; return a; } public static double area(int r,int h) //圆柱的表面积 { double a=PI*r*r+2*PI*r*h; return a; } public static double area(int r,int h,double l) //圆锥的表面积 { double a=PI*r*r+PI*r*l; return a; } public static double bulk(int r) //球的体积 { double b=4.0/3*PI*r*r*r; return b; } public static double bulk(int r,int h) //圆柱的体积 { double b=PI*r*r*h; return b; } public static double bulk(int r,int h,double l) //圆锥的体积 { double b=1.0/3*PI*r*r*h; return b; } }; public class PrimaryDemo01{ public static void sum() { Scanner sc=new Scanner(System.in); double s[]=new double[3]; double b[]=new double[3]; int i=0; System.out.print("请给出一个圆半径:"); int r=sc.nextInt(); s[i]=Tool.area(r); b[i]=Tool.bulk(r); System.out.println("表面积为:"+s[i]+"体积为:"+b[i]); i++; System.out.print("请给出一个圆柱的半径和高:"); r=sc.nextInt(); int h=sc.nextInt(); s[i]=Tool.area(r,h); b[i]=Tool.bulk(r,h); System.out.println("表面积为:"+s[i]+"体积为:"+b[i]); i++; System.out.print("请给出一个圆锥的半径和高:"); r=sc.nextInt(); h=sc.nextInt(); s[i]=Tool.area(r,h,Math.sqrt(r*r+h*h)); b[i]=Tool.bulk(r,h,Math.sqrt(r*r+h*h)); System.out.println("表面积为:"+s[i]+"体积为:"+b[i]); double sums=0,sumb=0; for(i=0;i<3;i++) { sums+=s[i]; sumb+=b[i]; } System.out.println("表面积累积和:"+sumb+"体积累加和:"+sums); } public static int printrandom() //产生随机数 { int x=(int)(Math.random()*10); //产生0-10的随机整数 return x; } public static void testTool() { Scanner sc=new Scanner(System.in); System.out.println("1.球类\n2.圆柱\n3.圆锥"); while(true) { int flag=sc.nextInt(); switch(flag) { case 1: { int r=printrandom(); System.out.println("球的半径为"+r+"请输入表面积和体积:"); double answers1=sc.nextDouble(); double answerb1=sc.nextDouble(); if(answers1==Tool.area(r)&&answerb1==Tool.bulk(r)) { System.out.println("回答正确!!"); } else { System.out.println("回答错误!!"); } break; } case 2: { int r=printrandom(); int h=printrandom(); System.out.println("圆柱的半径为"+r+"高为:"+h+"请输入表面积和体积:"); double answers2=sc.nextDouble(); double answerb2=sc.nextDouble(); if(answers2==Tool.area(r,h)&&answerb2==Tool.bulk(r,h)) { System.out.println("回答正确!!"); } else { System.out.println("回答错误!!"); } break; } case 3: { int r=printrandom(); int h=printrandom(); System.out.println("圆锥的半径为"+r+"高为:"+h+"请输入表面积和体积:"); double answers2=sc.nextDouble(); double answerb2=sc.nextDouble(); if(answers2==Tool.area(r,h,Math.sqrt(r*r+h*h))&&answerb2==Tool.bulk(r,h,Math.sqrt(r*r+h*h))) { System.out.println("回答正确!!"); } else { System.out.println("回答错误!!"); } break; } default: { System.out.println("未知操作!"); break; } } } } public static void main(String[] args) { System.out.println("半径为2 球的表面积为:"+Tool.area(2)+"体积:"+Tool.bulk(2)); System.out.println("半径为2高为2 圆柱的表面积为:"+Tool.area(2,2)+"体积:"+Tool.bulk(2,2)); System.out.println("半径为2,高为2 圆柱的表面积为:"+Tool.area(2,2,Math.sqrt(2*2+2*2))+"体积:"+Tool.bulk(2,2,Math.sqrt(2*2+2*2))); sum(); //计算累加和 testTool(); //模拟考试函数 } }
以上是关于项目三第一题的主要内容,如果未能解决你的问题,请参考以下文章