Java第二次作业
一,前言
这次我的博客很难写啊,三次的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){}
//根据序号查找一条记录
}
总结:这道题目我没有完成,需要好好反思一下为什么不会做,是不会写还是不用心。
三,踩坑心得
正则表达式的基本结构和方法需要用心记住,方法的调用等
四,改进建议
学会利用继承与多态,增加代码的可行性与实用性。
五,总结
这几次的作业我完成的不够好,为了我能够顺利毕业,能够学习真正有用的知识用到以后的工作当中去。老师说五一回来的作业难度会更大,我希望能做出改变!
君子坐而观之,少年起而行之!加油!