第二阶段学习总结

(1)前言

题目集04、题目集06中第二题难度较高而且是同一类问题的迭代问题,我认为对逻辑、程序设计上有较大考验,图形类设计问题中使用了Arraylist、抽象类,最主要的是方法的设计、类中方法之间相互调用的关系。对于我难度较大。

 

期中考试,难度较低,前两题粗心编写代码出错将输入的数值赋值给同一个变量中。

链表我只是实现部分功能并没有完全弄懂

(2)设计分析

期中试题

 

 

 

 

 

 

 

三角形计算

 

 

银行类设计

 

 

 

 

 

单向链表

 

 

(3)踩坑心得

题目集04中我并没有对题进行完整的了解,就开始写代码;没有深入思考所需方法的功能、类也没有具体设计过。因此导致写出的代码关系混乱,有的地方很复杂

 

 

一些主方法里的代码过长,应该做出相应类的方法,然后在主函数中调用,因此写代码前类的设计、程序的设计很重要。

 

 

 

 

从类图中我们可以看到题目集04中的第三题,一共有8个类,方法更是很多,儿测试点绿油油一片就是没有对程序进行设计的后果!

题目集04

7-1

 

 

计算两点之间距离,

 

 

 

我采用了split方法将输入的字符串分割成几段,在用for循环遍历整个字符数组来比对输入字符串的合法性,但结果不尽人意。

 

 

以及后来的几道题都使用了这种方法

 

 

 

光使用这种判断方法并不能有效判断所有的合法与否的情况

 

 

将所有判断的点放在另一个类中,就会方便许多

题目集05

7--5

 

 

判断银行卡号输入格式是否正确,我将输入的银行卡号字符串转化成长型Long.parseInt

也就导致当银行卡号多输入一位就会越界

 

 

期中考试试题分析

 

 

 

 

 

 

在主方法中调用l.setpoint方法时由于相似所以调用的代码是复制粘贴上去的,就导致在第一次时调用了两次同一个函数,输入的数值也赋值给同一个方法中的对象,导致距离始终无法得出正确结果。

 

 

第二题是在第一题的基础上加上了一个父类Element让Line与Point继承display共同的地方,此外还计入一个新的类Plane专门set、print line的颜色。

7-3第三题

 

 

在第二题的基础上加上了一个容器类GeometryOblect

class GeometryObject{

private ArrayList<Element> list = new ArrayList<>();

 

public GeometryObject() {

 

}

 

public void add(Element element) {

list.add(element);

}

 

public void remove(int index) {

if(index < 1 || index > list.size()) {

return;

}

 

list.remove(index - 1);

}

 

public ArrayList<Element> getList(){

return this.list;

}

}

 

 

(1)改进建议

对于for循环遍历比对

“,”前后分开,调用split方法只按照空格分开

题目集04

7-3

import java.util.ArrayList;

 

public class PointInputError {

//判断从字符串中解析出的点的数量是否合格。

public static void wrongNumberOfPoints(ArrayList ps, int num) {

if (ps.size() != num) {

System.out.println("wrong number of points");

System.exit(0);

}

}

//判断输入的字符串中点的坐标部分格式是否合格。若不符合,报错并退出程序

public static void wrongPointFormat(String s) {

if (!s.matches("[+-]?([1-9]\\d*|0)(\\.\\d+)?,[+-]?([1-9]\\d*|0)(\\.\\d+)?")) {

System.out.println("Wrong Format");

System.exit(0);

}

}

 

// 输入字符串是否是"选项:字符串"格式,选项部分是否是1~5其中之一

public static void wrongChoice(String s) {

if (!s.matches("[1-5]:.+")) {

System.out.println("Wrong Format");

System.exit(0);

}

}

 

}

创建类中方法来判断输入合法性,既严谨又不会有遗漏而且逻辑清晰简洁。

题目集05

7-5

不必将字符串转为长型判断,只需注意字符串中的空格,改用equals方法进行比对即可

5)阶段总结

1.学习内容接口、集合、数组、maptreesettreemaplinksetlinkmaplambda表达式、正则表达式

2.不足

关于setmaplambda表达式没有熟练掌握

  1. 学习方向

加强mook上的学习,加强课前学习效果,对于学过的知识在下课后立即抽出15分钟的的时间进行练习强化

  1. 课堂建议

希望能听到一些结合代码实例(比如功能实现、项目实现等方面的代码)的讲解

 

posted @ 2022-05-01 20:39  南昌第二深情  阅读(70)  评论(0)    收藏  举报