题目集1-总结Blog
前言
第一次题目集:
- 主要考察基础数据类型的使用,逻辑问题的分析,数据处理能力以及输入格式错误处理能力;
- 题量相对较大,难度较小;
第二次题目集:
- 主要考察字符串处理能力和输入格式错误处理能力;
- 题量适中,难度适中;
第三次题目集:
- 主要考察判断输入字符串格式正误,对输入坐标数据处理,以及进行各种计算和判断;
- 题量适中,难度大,代码量大,得分还难!!并且存在格式错误考虑不全面问题;
设计与分析
- 由于三次作业题目过多就只提出其中四个有参考改进意义的:
题目集2的7-2:
- SourceMonitor分析:
- 由该分析图可看出该代码并不复杂,代码量小,但是代码深度较高
- 主要用于处理字符串口问题,所以只要考问题全面,处理好奇偶校验、有效数据、结束位问题,不需要创建另外的类;
题目集3的7-1:
- SourceMonitor分析:
- 该问题主要处理输入坐标,计算坐标距离,不需要另外的类,如果实在想要创建类可以创建Point类,不过意义不大;
- 对于输入数据格式处理问题并没有做到位,测试了很久也还有一个得分点未达到;
题目集3的7-2:
- SourceMonitor分析:
- 类图:
- 对于该题的处理创建Point类以及Line类,将所有与两个类有关的方法全部写在类中,实现方法实例化(有对象才能调用该方法),个人认为代码复用性适中,但是主要是两个类耦合度比较高,不太能分开使用;
- 对于Point类中进行了equals方法重写,求斜率以及判断三点是否共线;
- 对于Line类中可以计算点线距,两线是否平行,以及求交点;
题目集3的7-3:
- SourceMonitor分析:
- 类图:
- 在我个人看来7-3是7-2的plus版本,在点线问题的基础之上添加了三角形问题,但是原理还是不变无非就是问题复杂程度变高,但是只要合理进行问题拆分,其实也可以解决;
- 由于数据输出结果的特定要求,使用了DecimalFormat类,可以进行格式化输出;
- 射线法一开始不太理解,后来个人的理解就是将要判断的点与任意一点构成直线判断该直线和三角形三边交点个数即可;
踩坑心得
作业2的7-2:
- 该作业最大的问题在于按照正确的的思路写好之后进行数据测试,开始的数据还可以完美通过,后来输入某些数据会出现程序一直持续运行,根本无法停止,于是一步一步调试,发现是因为使用了indexOf()方法;
- 我使用的是int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引,我想用它放在循环中获取有效数据起始位置但是由于了解不够引发了无限次循环问题;
- indexOf(String sint indexOf(String str, int startIndex)使用的注意事项是:如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置 索引还大,则它被当作最大的可能索引,所以一般要判断indexOf方法返回的下标会不会小于你的startIndex!!(很重要,否则可能导致程序进入死循环无法停下)
作业3的总体总结:
- 对输入数据格式处理不够全面导致所有功能实现也没有拿到全分;
- 对于Point和Line中的属性未进行封装,可能出现数据泄露问题;
- 对于作业3的7-3,其中有功能4是要进行交点计算和面积分割计算,开始没考虑到构成直线的前两点坐标会和三角形端点重合后来进行改进:
- 对于不与端点重合,且交点有两个,则先算小三角形面积,根据S(大三角形)-S(小三角形)=S(不规则图形)来计算;
- 对于端点重合,即将三角形分为两个小三角,则用小三角形底边占比计算;
改进建议
- 希望在老师编写题目时可以将提交测试时可能出现的例子大致列出,否则提交之后系统给出的错误只有casexx···答案/格式错误,修改代码不知道如何下手
总结
- 发现自己写代码时主要三个问题:
- 题意理解错误
- 代码架构错误(错误使用方法,以及对方法没有完全掌握盲目使用)
- 不小心写错(比如输出内容打字时打错,测试点一直过不了还以为是代码结构问题)
个人的题意理解和打字问题出现较多,
- 收获:
- 知道了在什么地方创建类,以何种方式,类中的属性和方法的内容;
- 基本掌握String类的方法,了解大概用途,知道了该类的重要性,如果要融会贯通还需要深入学习;
posted on 2022-04-09 11:40 Yibao_0103 阅读(56) 评论(0) 编辑 收藏 举报