BLOG2作业总结
在本次pta的作业中,题目难度逐步增大,涉及的知识点越来越全面,需要投入更多的时间来写出相应的程序,菜单系列想要拿到满分也十分困难
创建一个圆形类(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));
}
}
}
-
使用了Scanner类来获取用户输入的半径,并将其存储在变量radius中。
-
通过构造函数和setRadius方法,将半径值赋给类的内部成员变量this.radius。
-
使用getArea方法计算并返回圆的面积,即通过半径计算 π * r^2。
-
在主函数中,首先创建一个Scanner对象来读取用户输入。然后,使用nextDouble方法读取用户输入的半径值,并将其存储在变量radius中。最后关闭Scanner对象。
-
如果半径小于等于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()));
}
}
-
通过构造函数,将参数x1、y1、x2、y2分别赋值给类的内部成员变量this.x1、this.y1、this.x2、this.y2。这四个变量代表了矩形的两个对角点的坐标。
-
使用getArea方法计算并返回矩形的面积,即将矩形的宽度和高度相乘,并取绝对值。宽度通过计算x1和x2之间的差值得到,高度通过计算y1和y2之间的差值得到。
-
在主函数中,首先创建一个Scanner对象来读取用户输入。然后,使用nextDouble方法分别读取用户输入的四个点的坐标,并将它们分别存储在变量x1、y1、x2、y2中。最后关闭Scanner对象。
-
创建一个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");
}
}
-
程序首先创建了一个Scanner对象用于接收用户的输入,并声明了存储菜单和价格的数组menu和price,以及其他所需的变量。
-
在while循环中,程序首先接收用户输入的菜名和价格,如果菜名为数字"1"或"end",则跳出循环;否则将菜名和价格存入menu和price数组中。
-
在整个程序中,通过标记变量wholeJudge来控制整个点餐过程,通过recording数组记录每个菜的总价,通过totalPrice记录总价,通过count记录点的菜数。
-
接着,程序进入第二个while循环(如果整个点餐过程未结束),接收用户的点餐信息。根据用户输入的点餐信息和菜单价格,计算每道菜的总价并输出。在用户输入"delete"时可以删除之前点的菜,同时输出总价。
-
最后,根据整个点餐过程的最终状态输出总价或者"0"。
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中的很多方法有了初步的了解,但是对子类父类以及许多方法的使用不太熟悉,仍需进行大量的练习,另外对私有变量以及开放变量的区别理解不是很深,需要进一步的学习。对老师课程,线下教学目前没有改进建议和意见

浙公网安备 33010602011771号