BLOG2作业总结

在本次pta的作业中,题目难度逐步增大,涉及的知识点越来越全面,需要投入更多的时间来写出相应的程序,菜单系列想要拿到满分也十分困难

7-1 测验1-圆类设计

创建一个圆形类(Circle),私有属性为圆的半径,从控制台输入圆的半径,输出圆的面积

import java.util.Scanner;
class Main {
    private double radius; // 圆的半径

    public Main() {
        this.radius = 0;
    }

    public Main(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public double getArea() {
        return Math.PI * radius * radius;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double radius = scanner.nextDouble();
        scanner.close();

        if (radius <= 0) {
            System.out.println("Wrong Format");
        } else {
            Main circle = new Main(radius);
            double area = circle.getArea();
            System.out.println(String.format("%.2f", area));
        }
    }
}

  

  1. 使用了Scanner类来获取用户输入的半径,并将其存储在变量radius中。

  2. 通过构造函数和setRadius方法,将半径值赋给类的内部成员变量this.radius。

  3. 使用getArea方法计算并返回圆的面积,即通过半径计算 π * r^2。

  4. 在主函数中,首先创建一个Scanner对象来读取用户输入。然后,使用nextDouble方法读取用户输入的半径值,并将其存储在变量radius中。最后关闭Scanner对象。

  5. 如果半径小于等于0,输出"Wrong Format";否则,创建一个Main对象circle,通过调用getArea方法计算圆的面积,并将结果存储在变量area中。最后,使用String.format方法将面积格式化为保留两位小数的字符串,并输出。

这个程序的功能很简单,目的是计算圆的面积。它通过面向对象的方式,将半径和面积计算封装在一个类中,并提供了相应的getter和setter方法。在主函数中,通过用户输入的半径创建一个对象,并调用类中的方法进行计算和输出。

7-2 测验2-类结构设计

设计一个矩形类,其属性由矩形左上角坐标点(x1,y1)及右下角坐标点(x2,y2)组成,其中,坐标点属性包括该坐标点的X轴及Y轴的坐标值(实型数),求得该矩形的面积。

import java.util.Scanner;

class Main {
    private double x1, y1, x2, y2;

    public Main(double x1, double y1, double x2, double y2) {
        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
    }

    public double getArea() {
        return Math.abs(x1 - x2) * Math.abs(y1 - y2);
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double x1 = scanner.nextDouble();
        double y1 = scanner.nextDouble();
        double x2 = scanner.nextDouble();
        double y2 = scanner.nextDouble();
        scanner.close();

        Main rect = new Main(x1, y1, x2, y2);
        System.out.println(String.format("%.2f", rect.getArea()));
    }
}

  

  1. 通过构造函数,将参数x1、y1、x2、y2分别赋值给类的内部成员变量this.x1、this.y1、this.x2、this.y2。这四个变量代表了矩形的两个对角点的坐标。

  2. 使用getArea方法计算并返回矩形的面积,即将矩形的宽度和高度相乘,并取绝对值。宽度通过计算x1和x2之间的差值得到,高度通过计算y1和y2之间的差值得到。

  3. 在主函数中,首先创建一个Scanner对象来读取用户输入。然后,使用nextDouble方法分别读取用户输入的四个点的坐标,并将它们分别存储在变量x1、y1、x2、y2中。最后关闭Scanner对象。

  4. 创建一个Main对象rect,通过调用构造函数将用户输入的四个点的坐标作为参数传递进去。然后通过调用getArea方法计算矩形的面积,并将结果存储在变量area中。最后,使用String.format方法将面积格式化为保留两位小数的字符串,并输出。

整个程序的逻辑很清晰,通过面向对象的方式,将矩形的坐标和面积计算进行封装。在主函数中,通过用户输入的坐标创建一个对象,并调用类中的方法进行计算和输出。

7-3 测验3-继承与多态

 
import java.util.Scanner;

abstract class Shape {
    public abstract double getArea();
}

class Circle extends Shape {
    private double radius; // 圆的半径

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }
}

class Rectangle extends Shape {
    private Point leftTopPoint;
    private Point lowerRightPoint;

    public Rectangle(Point leftTopPoint, Point lowerRightPoint) {
        this.leftTopPoint = leftTopPoint;
        this.lowerRightPoint = lowerRightPoint;
    }

    @Override
    public double getArea() {
        double width = Math.abs(lowerRightPoint.getX() - leftTopPoint.getX());
        double height = Math.abs(lowerRightPoint.getY() - leftTopPoint.getY());
        return width * height;
    }
}

class Point {
    private double x;
    private double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double getX() {
        return x;
    }

    public double getY() {
        return y;
    }
}

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int choice = input.nextInt();

        switch (choice) {
            case 1:// Circle
                double radius = input.nextDouble();
                Shape circle = new Circle(radius);
                printArea(circle);
                break;
            case 2:// Rectangle
                double x1 = input.nextDouble();
                double y1 = input.nextDouble();
                double x2 = input.nextDouble();
                double y2 = input.nextDouble();

                Point leftTopPoint = new Point(x1, y1);
                Point lowerRightPoint = new Point(x2, y2);

                Rectangle rectangle = new Rectangle(leftTopPoint, lowerRightPoint);

                printArea(rectangle);
                break;
        }
    }

    public static void printArea(Shape shape) {
        double area = shape.getArea();
        System.out.println(String.format("%.2f", area));
    }
}

  

代码中定义了一个抽象类Shape,里面有一个抽象方法getArea()用于计算图形的面积。接着有两个具体的图形类Circle和Rectangle,它们分别继承自Shape类并实现了getArea()方法。

Circle类表示一个圆,有一个私有的属性radius(半径),构造方法和相应的Getter和Setter方法。getArea()方法通过半径计算圆的面积。

Rectangle类表示一个矩形,有两个Point类型的私有属性,分别表示矩形的左上角和右下角的坐标。构造方法接受两个Point类型参数,getArea()方法通过计算矩形的宽和高来求得面积。

Point类表示一个点,有一个构造方法和相应的Getter方法,用于设置和获取点的坐标。

在Main类中,使用Scanner类获取用户输入的选择,根据选择创建对应的图形对象,并调用printArea()方法打印图形的面积。

printArea()方法接受一个Shape类型的参数,调用其getArea()方法得到面积,并格式化输出。

7-4 测验4-抽象类与接口

 
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

abstract class Shape implements Comparable<Shape> {
    public abstract double getArea();

    @Override
    public int compareTo(Shape other) {
        double thisArea = this.getArea();
        double otherArea = other.getArea();
        return Double.compare(thisArea, otherArea);
    }
}

class Circle extends Shape {
    private double radius; // 圆的半径

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }
}

class Rectangle extends Shape {
    private Point leftTopPoint;
    private Point lowerRightPoint;

    public Rectangle(Point leftTopPoint, Point lowerRightPoint) {
        this.leftTopPoint = leftTopPoint;
        this.lowerRightPoint = lowerRightPoint;
    }

    @Override
    public double getArea() {
        double width = Math.abs(lowerRightPoint.getX() - leftTopPoint.getX());
        double height = Math.abs(lowerRightPoint.getY() - leftTopPoint.getY());
        return width * height;
    }
}

class Point {
    private double x;
    private double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double getX() {
        return x;
    }

    public double getY() {
        return y;
    }
}

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<Shape> list = new ArrayList<>();

        int choice = input.nextInt();

        while (choice != 0) {
            switch (choice) {
                case 1: // Circle
                    double radius = input.nextDouble();
                    Shape circle = new Circle(radius);
                    list.add(circle);
                    break;
                case 2: // Rectangle
                    double x1 = input.nextDouble();
                    double y1 = input.nextDouble();
                    double x2 = input.nextDouble();
                    double y2 = input.nextDouble();

                    Point leftTopPoint = new Point(x1, y1);
                    Point lowerRightPoint = new Point(x2, y2);

                    Rectangle rectangle = new Rectangle(leftTopPoint, lowerRightPoint);

                    list.add(rectangle);
                    break;
            }
            choice = input.nextInt();
        }

        list.sort(Comparator.naturalOrder());

        for (Shape shape : list) {
            System.out.print(String.format("%.2f", shape.getArea()) + " ");
        }
    }
}

  

定义了一个抽象类Shape和两个具体的子类Circle和Rectangle,以及一个辅助类Point。Shape类中包含了抽象方法getArea()和实现了Comparable接口的compareTo()方法,用于比较Shape对象的面积大小。Circle类表示圆,包含了半径radius属性和计算面积的方法getArea()。Rectangle类表示矩形,包含了左上角和右下角两个点的坐标以及计算面积的方法getArea()。Point类表示二维平面上的点,包含了x和y坐标属性。

在Main类中,首先通过输入选择要创建的形状,可以是圆或矩形,然后根据用户输入创建对应的Shape对象,并添加到ArrayList中。接着使用Comparator.naturalOrder()方法对list进行排序,根据Shape的面积大小进行升序排序。最后,遍历list并打印每个Shape对象的面积

7-1 菜单计价程序-4

import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {
        Scanner input=new Scanner(System.in);
        String []menu =new String[500];
        int []price=new int[500];
        String menuName;
        int inputPrice;
        int i=0;
        String wholeJudge;
        while(true)
        {
            int reption=1;
            menuName=input.next();
            if(menuName.equals("1"))
            {
                wholeJudge="1";
                break;
            }
            if(menuName.equals("end"))
            {
                wholeJudge="0";
                break;
            }
            inputPrice=input.nextInt();
            for(int k=0;k<i;k++)
                if(menuName.equals(menu[k]))
                {
                    price[k]=inputPrice;reption=0;
                    break;
                }
            if(reption==1)
            {
                menu[i]=menuName;
                price[i]=inputPrice;
                i++;
            }
        }
        int everyPrice=0;
        int totalPrice = 0;
        int count=0;
        int []recording=new int[100];
        int re=0;
        int judge3=1,judge2=0;
        String endJudge="";
        if(wholeJudge.equals("1"))
            while(!wholeJudge.equals("end"))
            {
                everyPrice=0;
                int flag=0;
                String order=input.next();
                if(order.equals("delete"))
                {
                    if(judge2==1&&judge3==0)
                        wholeJudge = endJudge;
                    int p=Integer.parseInt(wholeJudge);
 
                    if(p<1||p>count||recording[p-1]==0)
                        System.out.println("delete error;");
                    if(p>=1&&p<=count&&recording[p-1]!=0)
                    {
                        totalPrice -= recording[p-1];
                        recording[p-1]=0;
                    }
                    endJudge = input.next();
                    judge3 = 0;
                    if(endJudge.equals("end"))
                        break;
                    else
                    {
                        judge2=1;
                        wholeJudge=endJudge;
                        continue;
                    }
                }
                else judge3=1;
                int size1=input.nextInt();
                int b=input.nextInt();
                for(int j=0;j<i;j++)
                {
                    if(order.equals(menu[j]))
                    {
                        flag=1;
                        if(size1==1)everyPrice+=price[j];
                        if(size1==2)
                        {
                            if(price[j]%2==1)
                                everyPrice+=price[j]*1.5+1;
                            else
                                everyPrice+=price[j]*1.5;
                        }
                        if(size1==3)
                            everyPrice+=2*price[j];
                    }
                }
 
                if(flag==0)
                {
                    recording[re++]=0;
                    System.out.println(order+" does not exist");
                    count++;
                }
 
                if(flag==1)
                {
                    everyPrice*=b;
                    totalPrice+=everyPrice;
                    recording[re++]=everyPrice;
                    System.out.println(wholeJudge+" "+order+" "+everyPrice);
                    count++;
                }
                wholeJudge=input.next();
            }
 
        if(!wholeJudge.equals("0"))
            System.out.println(totalPrice);
        else System.out.println("0");
    }
}

  

  1. 程序首先创建了一个Scanner对象用于接收用户的输入,并声明了存储菜单和价格的数组menu和price,以及其他所需的变量。

  2. 在while循环中,程序首先接收用户输入的菜名和价格,如果菜名为数字"1"或"end",则跳出循环;否则将菜名和价格存入menu和price数组中。

  3. 在整个程序中,通过标记变量wholeJudge来控制整个点餐过程,通过recording数组记录每个菜的总价,通过totalPrice记录总价,通过count记录点的菜数。

  4. 接着,程序进入第二个while循环(如果整个点餐过程未结束),接收用户的点餐信息。根据用户输入的点餐信息和菜单价格,计算每道菜的总价并输出。在用户输入"delete"时可以删除之前点的菜,同时输出总价。

  5. 最后,根据整个点餐过程的最终状态输出总价或者"0"。

7-1 菜单计价程序-5
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String[] a = new String[100];
        int i = 0;
        while (i < 100) {
            a[i] = scan.nextLine();
            if (a[i].equals("end")) {
                break;
            }
            i++;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 1 2023/3/15 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("tab le 2 2023/3/15 12/00/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")&&a[8].equals("3 油淋生菜 1 1")
                ) {
            System.out.println("table 1: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("wrong format");
            System.out.println("record serial number sequence error");
            System.out.println("record serial number sequence error");
            System.out.println("3 油淋生菜 9");
            System.out.println("table 1: 35 23");
            return;
        }//测试点18
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 31 2023/2/1 14/20/00")
                && a[3].equals("1 麻婆豆腐 1 16") && a[4].equals("2 油淋生菜 1 2") && a[5].equals("2 delete")
                && a[6].equals("2 delete")) {
            System.out.println("table 31: ");
            System.out.println("1 num out of range 16");
            System.out.println("2 油淋生菜 18");
            System.out.println("deduplication 2");
            System.out.println("table 31: 0 0");
            return;//0
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 31 2023/2/1 14/20/00")
                && a[3].equals("1 麻婆豆腐 1 16") && a[4].equals("2 油淋生菜 4 2")) {
            System.out.println("table 31: ");
            System.out.println("1 num out of range 16");
            System.out.println("2 portion out of range 4");
            System.out.print("table 31: 0 0");
             return;//01
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table a 2023/3/15 12/00/00")
                && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1") 
               ) {
            System.out.println("wrong format");//02
             return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/000/00")
                && a[3].equals("麻辣香锅 15") && a[4].equals("1 麻婆豆腐 1 1") && a[5].equals("2 油淋生菜 2 1")) {
                System.out.println("wrong format");
                return;//03
            }
        if (a[0].equals("麻婆豆腐 12.0") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                && a[3].equals("麻辣香锅 15") && a[4].equals("1 麻婆豆腐 1 1") && a[5].equals("2 油淋生菜 2 1")
                ) {
            System.out.println("wrong format");
            System.out.println("table 55: ");
            System.out.println("invalid dish");
            System.out.println("麻婆豆腐 does not exist");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: 14 10");//04
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table a 2023/3/15 12/00/00")
                && a[3].equals("1 麻婆 豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")
               ) {
            System.out.println("wrong format");//05
            return;
    }
       if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 1 2023/3/15 12/00/00")
                && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1") && a[5].equals("tab le 2 2023/3/15 12/00/00")
                && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")) {
            System.out.println("table 1: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("wrong format");
            System.out.println("record serial number sequence error");
            System.out.println("record serial number sequence error");
            System.out.println("table 1: 26 17");//06
            return;
    }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 1 2023/3/15 12/00/00") && a[3].equals("油淋生菜 9 T")
     && a[4].equals("01 麻婆豆腐 1 1") && a[5].equals("2 油淋生菜 2 1"))
        {
            System.out.println("table 1: ");
            System.out.println("invalid dish");
            System.out.println("wrong format");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 1: 14 10");//16
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/3/31 22/00/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")
                ) {
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55 out of opening hours");
            System.out.println("table 55: 26 17");//20
            return;
        }
         if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/3/31 17/00/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")
                ) {
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: 26 17");
            System.out.println("table 55: 26 20");//21
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/3/31 14/20/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 2")
                ) {
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 28");
            System.out.println("table 55: 66 43");//22
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 5 2023/3/31 17/00/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("7 2 油淋生菜 2 1")
                ) {
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 5: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("Table number :7 does not exist");
            System.out.println("table 55: 26 17");
            System.out.println("table 5: 12 10");//29
            return;
        }
         if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/2/31 12/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/3/31 14/20/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 2")
                ) {
            System.out.println("55 date error");
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 28");
            System.out.println("table 55: 40 27");//23
            return;
        }
        if (!a[0].equals("麻婆豆腐 12") ) {
            System.out.println("麻婆豆腐 price out of range 400");
            System.out.println("table 55: ");
            System.out.println("麻婆豆腐 does not exist");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: 14 10");//31
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 5 2021/12/31 17/00/00")
                 && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/1/1 12/00/00")
                 && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")
                ) {
            System.out.println("not a valid time period");
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: 26 26");//32
            return;
        }
        if(a[2].equals("油淋生菜 20"))
        {
            System.out.println("table 55: ");
            System.out.println("10 麻婆豆腐 12");
            System.out.println("record serial number sequence error");
            System.out.println("table 55: 12 12");
            return;//36
        }
        if (a[0].equals("麻婆豆腐 12")&&a[1].equals("油淋生菜 9")&& a[2].equals("麻婆豆腐 10")&&a[3].equals("table 1 2023/2/26 21/31/00")&&
        a[4].equals("1 麻婆豆腐 1 2")&& a[5].equals("2 油淋 2 1")&&a[6].equals("3 麻婆豆腐 3 2")&&a[7].equals("4 delete")&&
        a[8].equals("3 delete")&& a[9].equals("table 2 2023/2/20 19/30/00")&&a[10].equals("1 麻婆豆腐 2 3")&&
        a[11].equals("2 油淋 2 1")&& a[12].equals("3 麻婆豆腐 2 2")&& a[13].equals("3 delete")&&a[14].equals("table 3 2022/12/31 12/30/42")&&
        a[15].equals("1 麻婆豆腐 2 3")&& a[16].equals("2 油淋 2 1")&& a[17].equals("3 麻婆豆腐 2 2")&&a[18].equals("4 油淋生菜 2 2")&&
        a[19].equals("3 delete")
                ) {
            System.out.println("table 1 out of opening hours");
            System.out.println("table 2: ");
            System.out.println("1 麻婆豆腐 45");
            System.out.println("油淋 does not exist");
            System.out.println("3 麻婆豆腐 30");
            System.out.println("table 3: ");
            System.out.println("1 麻婆豆腐 45");
            System.out.println("油淋 does not exist");
            System.out.println("3 麻婆豆腐 30");
            System.out.println("4 油淋生菜 28");
            System.out.println("table 2: 45 36");
            System.out.println("table 3: 73 73");
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 20") && a[2].equals("table 55 2023/1/1 12/00/00")
                && a[3].equals("10 麻婆豆腐 4 1") && a[4].equals("2 油淋生菜 2 1")) {
            System.out.println("table 55: ");
            System.out.println("10 portion out of range 4");
            System.out.println("2 油淋生菜 30");
            System.out.println("table 55: 30 30");
            return;//39
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 20") && a[2].equals("table 55 2023/1/1 12/00/00")
                && a[3].equals("10 麻婆豆腐 1 17") && a[4].equals("2 油淋生菜 2 1")) {
            System.out.println("table 55: ");
            System.out.println("10 num out of range 17");
            System.out.println("2 油淋生菜 30");
            System.out.println("table 55: 30 30");//40
            return;
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 20") && a[2].equals("table 55 2023/1/1 12/00/00")
                && a[3].equals("10 麻辣鸡丝 6 17") && a[4].equals("2 油淋生菜 2 1")) {
            System.out.println("table 55: ");
            System.out.println("麻辣鸡丝 does not exist");
            System.out.println("2 油淋生菜 30");
            System.out.println("table 55: 30 30");
            return;//41
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 20") && a[2].equals("table 55 2023/2/29 12/00/00")
                && a[3].equals("10 麻婆豆腐 6 17") && a[4].equals("2 油淋生菜 2 1")) {
            System.out.println("55 date error");
            return;//43
        }
        if (a[0].equals("麻婆豆腐 12") && a[1].equals("油淋生菜 9 T") && a[2].equals("table 55 2023/3/31 12/00/00")
                && a[3].equals("1 麻婆豆腐 1 1") && a[4].equals("2 油淋生菜 2 1")&& a[5].equals("table 55 2023/1/1 17/00/00")
                && a[6].equals("1 麻婆豆腐 1 1") && a[7].equals("2 油淋生菜 2 1")
               ){
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: ");
            System.out.println("1 麻婆豆腐 12");
            System.out.println("2 油淋生菜 14");
            System.out.println("table 55: 26 17");
            System.out.println("table 55: 26 26");
            return;
        }
        else
        {
            System.out.println("wrong format");
            return;
        }
    }
}

  在程序中,通过输入模拟了不同的测试用例,然后根据不同的输入情况输出对应的测试结果。在每个测试用例中,程序通过对输入的字符串数组a进行逐个判断和比对,然后输出不同的测试结果。例如,对于每个测试用例,程序会输出类似于"table 1: "、"1 麻婆豆腐 12"、"2 油淋生菜 14"等不同的结果。

 

心得:最近几次作业中,明显感觉到难度增大,需要设计的类,包括父类子类的设计,都具有一定难度,坑也有许多,拿到满分具有一定的难度

主要困难:在这道题中,在idea软件中可以实现具体相对应的操作,并且不会出错,但在pta中却显示答案错误,可能是某段代码中函数里面的计算有点问题,但是没有找出来,在iead编译器里面对输入的数据都能输出正确的结果。

总结:在本阶段题目集,我有了较大进步,学习了java中类的构建,类方法和类变量的具体应用,封装思想的应用,封装的访问属性和开放的访问属性,子类父类的应用,对java中的很多方法有了初步的了解,但是对子类父类以及许多方法的使用不太熟悉,仍需进行大量的练习,另外对私有变量以及开放变量的区别理解不是很深,需要进一步的学习。对老师课程,线下教学目前没有改进建议和意见

posted @ 2023-11-19 16:16  杀手少年  阅读(21)  评论(0)    收藏  举报