Java第二次作业

rfyyysq / 2023-05-03 / 原文

一,前言

这次我的博客很难写啊,三次的pta作业让我痛不欲生,让我充分意识到了自己能力的不足。

这几次的作业主要练习了类与对象以及方法的运用,还包括正则表达式的学习和训练等等。我受益匪浅!

最后一次的作业,光构思就耗费了我打几个小时,最后实在无从下手,说根到底还是我心性不够,菜是一方面,不够下苦功夫更是一方面。

二,设计与分析

第一次作业

(1)判断两个日期的先后,计算间隔天数、周数

题目:

代码:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-M-d");
        String dateString1 = scanner.next();
        String dateString2 = scanner.next();
        LocalDate date1 = LocalDate.parse(dateString1, formatter);
        LocalDate date2 = LocalDate.parse(dateString2, formatter);
        long days = ChronoUnit.DAYS.between(date1, date2); 
        long weeks = ChronoUnit.WEEKS.between(date1, date2);
        if (date1.isBefore(date2)) {
        System.out.println("第一个日期比第二个日期更早");
       } else if (date1.isAfter(date2)) {
        System.out.println("第一个日期比第二个日期更晚");
       } else {
        System.out.println("同一天");
       }
        
        System.out.println("两个日期间隔" + Math.abs(days) + "天");
        System.out.print("两个日期间隔" + Math.abs(weeks) + "周");
    
        
    }
}

解析:运用import java.time.LocalDate的例子进行时间的运算,省时省力

总结:

第二次作业:正则表达式训练-学号校验

代码:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner myscanner = new Scanner(System.in);
        String str = myscanner.next();
        if(str.matches("^2020(61|1[1-7]|7[1-3]|8[1-2])([1-3][0-9]|40|0[1-9])$")){
            System.out.print("正确");
}
        else{
            System.out.print("错误");
        }
    }
}

解析:运用了正则表达式的基本运算和格式

 总结:

 

第三次作业:7-1 菜单计价程序-4

 代码:

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);


}
}
public class Dish {

}
public class Menu {
Dish[] dishs ;//菜品数组,保存所有菜品信息

Dish searthDish(String dishName){

}//根据菜名在菜谱中查找菜品信息,返回Dish对象。

Dish addDish(String dishName,int unit_price){}
//添加一道菜品信息

}
public class Record {
int orderNum;//序号

Dish d;//菜品\\

int portion;//份额(1/2/3代表小/中/大份)

int getPrice(){//计价,计算本条记录的价格

}

}
public class Order {
Record[] records;//保存订单上每一道的记录

public Order(Menu menu) {
// TODO 自动生成的构造函数存根
}

int getTotalPrice(){//计算订单的总价

}

Record addARecord(int orderNum,String dishName,int portion,int num){}
//添加一条菜品信息到订单中。

delARecordByOrderNum(int orderNum){}
//根据序号删除一条记录

findRecordByNum(int orderNum){}
//根据序号查找一条记录

}

总结:这道题目我没有完成,需要好好反思一下为什么不会做,是不会写还是不用心。

三,踩坑心得

正则表达式的基本结构和方法需要用心记住,方法的调用等

四,改进建议

学会利用继承与多态,增加代码的可行性与实用性。

五,总结

这几次的作业我完成的不够好,为了我能够顺利毕业,能够学习真正有用的知识用到以后的工作当中去。老师说五一回来的作业难度会更大,我希望能做出改变!

君子坐而观之,少年起而行之!加油!