帅哥小C啊 发表于 2023-5-4 09:14:40

java的题

修改给定的代码。如果指定了形状的速度,您可以通过添加一个额外的三个整数(所有这些都应该在0-255范围内)来设置颜色。换句话说,一个圆可以被指定为 圆x y r 或 用圆圈,用圆圈 或 圆圈,红色,绿色,蓝色 以类似的方式指定正方形。 请注意,如果不指定速度,就不能指定颜色。如果没有指定颜色,则形状应该为黑色。 在主班上完成这个练习。主类中必须包含更多的操作: 计算文件“practical8.txt”中的正方形和圆圈的数量。在解析文件时,程序需要确认文件中每行的第一个标记是“圆”或“正方形”。如果该行不符合要求,则请忽略它。将解析结果打印到控制台。 计算所有形状的总面积。将结果打印到控制台。

practical8.txt文件如下,剩余文件在压缩包里面
Circle50 60 40 50 50 200 0 0
Circle150 160 10 30 50
Square 250 260 45-50 -50 100 20 100
Shape1 50 70 40 50 50 200 0 0

Shape2 60 50 20
Circle 120 50 20
Circle 180 50 20
Circle 240 50 20
Circle 300 50 20
Circle 360 50 20
Circle 420 50 20
Square 480 50 20
Square 540 50 20
Square 400 440 40

Shape3 10 460 5
Circle 20 460 5
Circle 30 460 5
Circle 40 460 5
Circle 50 460 5
Circle 20 470 5
Circle 30 470 5
Circle 40 470 5
Circle 50 470 5
Circle 20 480 5
Circle 30 480 5
Circle 40 480 5
Circle 50 480 5
Circle 20 490 5
Circle 30 490 5
Circle 40 490 5
Circle 50 490 5

sfqxx 发表于 2023-5-4 09:14:41

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Shape {
    private final String type;
    private final int x;
    private final int y;
    private final int size;
    private final int[] color;
    private final double area;

    public Shape(String type, int x, int y, int size) {
      this.type = type;
      this.x = x;
      this.y = y;
      this.size = size;
      this.color = new int[]{0, 0, 0};
      if (type.equals("Circle")) {
            area = Math.PI * Math.pow(size, 2);
      } else {
            area = Math.pow(size, 2);
      }
    }

    public Shape(String type, int x, int y, int size, int r, int g, int b) {
      this.type = type;
      this.x = x;
      this.y = y;
      this.size = size;
      this.color = new int[]{r, g, b};
      if (type.equals("Circle")) {
          area = Math.PI * Math.pow(size, 2);
      } else {
          area = Math.pow(size, 2);
      }
    }

    public String getType() {
      return type;
    }

    public int getX() {
      return x;
    }

    public int getY() {
      return y;
    }

    public int getSize() {
      return size;
    }

    public int[] getColor() {
      return color;
    }

    public double getArea() {
      return area;
    }

    public static void main(String[] args) {
      int circleCount = 0;
      int squareCount = 0;
      double totalArea = 0;

      try {
            File file = new File("practical8.txt");
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine().trim();
                String[] tokens = line.split("\\s+");
                if (tokens.length < 4) {
                  continue;
                }
                String type = tokens;
                int x = Integer.parseInt(tokens);
                int y = Integer.parseInt(tokens);
                intsize = integer.parseint(tokens);

                shape shape;
                if (type.equals("circle")) {
                  circlecount++;
                  if (tokens.length == 7) {
                        int r = integer.parseint(tokens);
                        int g = integer.parseint(tokens);
                        int b = integer.parseint(tokens);
                        shape = new shape(type, x, y, size, r, g, b);
                  } else {
                        shape = new shape(type, x, y, size);
                  }
                } else {
                  squarecount++;
                  if (tokens.length == 7) {
                        int r = integer.parseint(tokens);
                        int g = integer.parseint(tokens);
                        int b = integer.parseint(tokens);
                        shape = new shape(type, x, y, size, r, g, b);
                  } else {
                        shape = new shape(type, x, y, size);
                  }
                }
                system.out.println("shape type: " + shape.gettype());
                system.out.println("position: (" + shape.getx() + ", " + shape.gety() + ")");
                system.out.println("size: " + shape.getsize());
                system.out.println("color: [" + shape.getcolor() + ", " + shape.getcolor() + ", " + shape.getcolor() + "]");
                system.out.println("area: " + shape.getarea());

                totalarea += shape.getarea();
            }
            scanner.close();
      } catch (filenotfoundexception e) {
            system.out.println("file not found!");
      }

      system.out.println("number of circles: " + circlecount);
      system.out.println("number of squares: " + squarecount);
      system.out.println("total area of all shapes: " + totalarea);
   }
}

SkyBurner 发表于 2023-6-30 07:19:19

{:10_269:}这机翻
页: [1]
查看完整版本: java的题