码迷,mamicode.com
首页 > 其他好文 > 详细

项目三(1)第一题

时间:2017-10-19 21:07:22      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:[]   print   system   can   java   不同   def   too   算法   

/*(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();      //模拟考试函数
        
    }

}

 

项目三(1)第一题

标签:[]   print   system   can   java   不同   def   too   算法   

原文地址:http://www.cnblogs.com/lelezuimei/p/7694702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!