这份Java作业怎么写

图形计算器项目:实现一个图形计算器,程序运行后显示界面:请选择图形:1圆2矩形3三角形9退出2请输入矩形长和宽:3.52.5矩形周长是12.0,面积是8.75请选择图形:... 图形计算器项目:

实现一个图形计算器,程序运行后显示界面:
请选择图形:
1 圆 2 矩形 3 三角形 9 退出
2 请输入矩形长和宽:3.5 2.5
矩形周长是 12.0,面积是 8.75
请选择图形:
1 圆 2 矩形 3 三角形 9 退出

程序运行后,给出文本菜单,根据提示输入数字选项,计算不同图形的周长和面积并输出到界面,完成后返回主菜单。 圆输入半径,三角形输入三条边。要求分别生成圆、矩形、三角形类。
如果输入小于等于0的数,应提示“请输入正数:”,重新读取输入。
三角形计算时,先判断输入的3条边是否构成3角形,如不是,则提示“非三角形3条边,请重新输入:”。
圆周律pi定义为3.14f。
给一些思路也是可以的!
展开
 我来答 举报
文档编辑制作共享
2019-05-08
知道答主
回答量:10
采纳率:0%
帮助的人:3.6万
展开全部

所有图形的超类:提供公有属性和方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package test;
 
public abstract class Geometry {
    protected double girth;
    protected double area;
     
    public double getGirth() {
        return girth;
    }
    public double getArea() {
        return area;
    }
     
    public void shoot(){
        System.out.println("周长为:"+girth);
        System.out.println("面积为:"+area);
    }
}


1
2
3
4
5
6
7
8
9
10
package test;
 
public class Circle extends Geometry{
    public static final double pi = 3.1415926;
     
    public Circle(double radius){
        this.girth = 2*pi*radius;
        this.area = pi*(radius*radius);
    }
}

矩形

1
2
3
4
5
6
7
8
9
10
package test;
 
public class Rec extends Geometry{
 
    public Rec(double w,double h){
        this.girth = (w+h)*2;
        this.area = w*h;
    }
     
}

三角形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package test;
 
public class Triangle extends Geometry{
 
    public static boolean check(double l1,double l2,double l3){
        if(l1+l2>l3&&(l1-l2<l3||l2-l1<l3) && l3+l2>l1&&(l3-l2<l1||l2-l3<l1) && l1+l3>l2&&(l1-l3<l2||l3-l1<l2)){
            return true;
        }else{
            System.out.println("不是一个三角形!");
            return false;
        }
    }
 
    public Triangle(double l1,double l2,double l3){
        this.girth = l1+l2+l3;
        double p = (l1 + l2 + l3) / 2;
        this.area = Math.sqrt(p * (p - l1) * (p - l2) * (p - l3));
    }      
}

程序主类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package test;
 
import java.util.Scanner;
 
public class Test09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);       
        while(true){
            System.out.println("请选择图形:1 圆   2 矩形   3 三角形   9 退出");
            int i = sc.nextInt();
            Geometry g = null;
            switch(i){
            case 1:
                System.out.println("请输入半径:");
                double r = sc.nextDouble();
                while(!checkNumber(r)){
                    r = sc.nextDouble();
                }
                g = new Circle(r);
                break;
            case 2:
                System.out.println("请输入宽:");
                double w = sc.nextDouble();
                while(!checkNumber(w)){
                    w = sc.nextDouble();
                }
                System.out.println("请输入高:");
                double h = sc.nextDouble();
                while(!checkNumber(h)){
                    h = sc.nextDouble();
                }
                g = new Rec(w,h);
                break;
            case 3:
                System.out.println("请输入第一条边长:");
                double l1 = sc.nextDouble();
                while(!checkNumber(l1)){
                    l1 = sc.nextDouble();
                }
                System.out.println("请输入第二条边长:");
                double l2 = sc.nextDouble();
                while(!checkNumber(l2)){
                    l2 = sc.nextDouble();
                }
                System.out.println("请输入第三条边长:");
                double l3 = sc.nextDouble();
                while(!checkNumber(l3)){
                    l3 = sc.nextDouble();
                }
                if(Triangle.check(l1, l2, l3)){
                    g = new Triangle(l1,l2,l3);
                }
                break;
            case 9:
                System.exit(0);
                break;
            }
            if(g!=null){
                g.shoot();
            }
        }
         
    }
     
    public static boolean checkNumber(double a){
        if(a<=0){
            System.out.println("请输入整数:");
            return false;
        }else{
            return true;
        }
    }
}
脉积半破景13
2019-05-05 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:84%
帮助的人:34.8万
展开全部
用switch做菜单, Scanner接收控制台输入. 其他的计算写成通用方法,随时需要随时调用就好.
甚至都用不到面向对象.
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
Aifuday
2019-05-05 · TA获得超过408个赞
知道小有建树答主
回答量:479
采纳率:66%
帮助的人:55.1万
展开全部
50块帮你做了,若需要继续追问
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
老won
2019-05-07 · TA获得超过228个赞
知道小有建树答主
回答量:681
采纳率:31%
帮助的人:89.8万
展开全部
太长了,也没奖励
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
fly杜杜121
2019-05-05 · 超过38用户采纳过TA的回答
知道答主
回答量:304
采纳率:36%
帮助的人:38.1万
展开全部
我可以帮你写,私聊我吧
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式