第一次作业周期,第一阶段作业(三次)总结
1.作业总结
①总结知识迭代关系
第一次作业:主要是输入和输出,计算以及一些判断数据的方法,以及对于pta上java代码的输入形式的熟悉
输入:
import java.util.Scanner;//使用Scanner类;
Scanner s=new Scanner(System.in);//定义
int a = s.nextInt();//使用s的方法输入整型数;
float b = s.nextFloat();//使用s的方法输入浮点型;
String a = s.nextLine();//使用s的方法输入字符串;
输出:
System.out.println("");//换行输入
System.out.printf("%d",a);
将数字以字符串形式输入,将字符串转换为数字计算:
Integer.parseInt(字符串)//得到对应数字
注:pta上的作业使用Main为主函数名;并且记得删去在eclipse上用来提示的输出,例如“输入”等提示。
第二次作业:主要是设计算法,以及多种情况和一些特殊情况的讨论。
第三次作业:开始面向对象,进行分类操作,以及对类里方法和属性的调用;
对于分类:
(1)同一类型的东西,拥有相同属性,可以用一个类进行概括。
(2)对于一个类,应当拥有他所相关一系列数据,以及对于这些数据的计算方法,和数据的输出方法。
②(面向过程到面向对象)
一二次作业,逐步熟悉java对于数据的处理,以及输入输出等等,主要是编写代码用于一个步骤一个步骤解决问题;而到第三次作业,
逐渐偏向于对于分类操作的熟悉,和类与类之间的关系,调用等等,对于问题的解决感觉类似对于一个功能一个功能的解决,一个类
一个类的完善,并且,通过分类操作,将代码简化,调用和定义时也更加清晰明确。
③(作业过程遇到的问题)
一些对于特殊值的处理
题目:输入三角形三边,判断三角形类型(a,b,c为三边)

错误:测试点存在对于类似于根号2的值的测试,如果执着于a*a+b*b-c*c<0,则对于这个数据答案错误
解决:修改判断a*a+b*b-c*c<1e-6;(即十的负六次方)
日期函数输出以及日期计算
题目:输入数据,实现对日期的一系列计算

错误:
(1)对于两个日期的相差天数的比较,对于this.的操作不熟悉,导致两日期最后是相同日期的比较相差0天。
(2)对于前n天,后n天的计算,始终对于一些数据存在差一天的错误。
解决:
(1)明确this.年月日和传参的年月日属性,避免存在相同年月日属性自我赋值。
(2)存在2月这个特殊月份的天数,对于是否超过2月的讨论。
④(作业花费时间比例)
目前这几次作业花费的时间,起初是多在对于编译错误的修改,之后是在于
一些较为复杂的例如日期计算等的算法分析和类的互相调用的报错处理。
⑤(严谨性认识)
以三角形题为例,没想到会输入根号二这种数据进行测试,导致测试点没能通过。
再以日期输入合法性判断函数为例,因为将年月日各自单独分类,并且,在对于天数的判断上,
使用了每个月天数的数组,当汇总时,若是将判断天数的方法放在判断月数的方法前,则存在当月输入13时报错,数组越界。
2.设计心得
①(面向过程和面向对象的比较)
面向过程在解决问题的过程中,注重于解决方法的步骤。而面向对象,更注重于类和对象的建立,
通过将类和类建立联系来解决问题。
②(面向对象的基本原则的设计理解)
对于类,一个类实现只对一个东西进行改变,类和类之间相互联系,但又互不干扰。
③(编程思维的理解)
对于日期,通过作业将同种功能的程序进行不同的编程思维,通过将年月日单独分类,层层包含,
使得在主程序编写上更加清晰,在编译错误的处理上也更加方便。
3.测试的理解与实践
①测试的重要性,以日期题为例,起初在计算前后n天没有对于2月的讨论,但是也侥幸过了第二题的测试点,
当将此计算方法运用于第三题时,发现存在测试点过不了,之后寻找发现,存在差一天的bug,进一步测试,
发现错误。所以,测试对于代码十分重要。
②若是进行测试,首先对于基础,较为普通,小型的数据进行测试,第二,大型数据和极限值的测试,第三,特殊值例如三角形题的根号值,日期的2月特殊月份等。
4.课程收获(在某一方面的教训和收获)
日期算法花费了大量时间,并且差点保留了存在瑕疵的代码。并且通过作业,对数据范围的处理,对日期算法都更加熟悉。
且对于分类的操作,在作业中得到了示范和启示。

5.对课程的建议
适应课程的教学方法,建议在课后作业的布置上可以较为深入。
6.学习计划
①复习“随机”的操作。
②学会对于一些复杂的代码的测试操作。
③熟悉Math、toStrng等等一些自带的方法

浙公网安备 33010602011771号