这里我认为是第一题比较重要的一段:new了两个Point后才可以进行下一步对point类的建立
改进建议
因为这道题在考试时没有太多进行思考,在考完后进行进一步的思索后,发现这道题并没有需要改进的地方。
2)实验一Java程序控制结构
设计与分析
这是我们开始学习类的建立的第一个实验题,属于一个比较常见类型的Java题目。该题是输入学生的信息在进行下一步判断,并输出该班级所有学生的平均分和最高分。学生的信息包括姓名,学号和四门科目的成绩。若是想处理的更为体现类的形式,可以将数据计算处理在一个计算类中,判断条件写在判断类中,结果输出写在一个输出类中,这样可以将题目处理的更有可读性。通过判断结果来输出。可以先判断结尾,结尾正确再去判断是否奇校验正确。形式简单,但最后还是回对bug进行不断调试。灵活运用eclipse的测试功能可以更高效的完成代码的编写。
采坑心得
确实没想到空格也要单独弄,第一遍敲完后才发现题目中还有这个要求,不过确实没什么难度,后面加上后也就解决了。倒是循环结构的用法,刚从网上看了些皮毛就开始动手,导致根本没有理解,返回的一直是自己所做的正误标记,一直报错;将二者在本题返回的题意正确与否弄反,一直过不了测试点,后发现后及时调整,完成了该题。
改进建议
通过SourceMonitor以及PowerDesigner软件测评结果可以发现,该题目测试点存在一点点问题:1.部分测试点设置的有点偏离,需要优化;2.题目简单,导致只有主类,看着也十分直白。这样可以大幅降低复杂度,代码运行的效率更高。若是想处理的更为体现类的形式,可以将数据计算处理在一个计算类中,判断条件写在判断类中,结果输出写在一个输出类中,这样可以将题目处理的更有可读性。题目要求求出农夫带一只羊,一条狼和一颗白菜过河的办法,所以依次成功返回运算结果后,需要继续运算,直至求出结果,即给出农夫的过河方案。
3)实验二 类与对象(一)(二)
设计与分析
本题的背景是著名的农夫过河问题,针对实现整个过程需要多步,不同步骤中各个事物所处位置不同的情况,可定义一个结构体来实现对四个对象狼、羊、白菜和农夫的表示。对于起始岸和目的岸,可以用0或者1来表示,以实现在程序设计中的简便性。题目要求给出四种事物的过河步骤,没有对先后顺序进行约束,这就需要给各个事物依次进行编号,然后依次试探,若试探成功,进行下一步试探。这就需要使用循环或者递归算法,避免随机盲目运算且保证每种情况均试探到。输出界面要求具有每一步中农夫所带对象及每步之后各岸的物体,需要定义不同的数组来分别存储上述内容,并使界面所示方案清晰简洁。
采坑心得
在主方法中,将m的初始值设置为2表示正在进行的情况,在while循环中如果m=0或1则直接退出显示游戏结果,在switch语句中case0,1,2,3,4分别选择过河的物体的情况,case中farmer.cross_alone()等类似的方法表示农夫和物体过河的位置以及是否成功过河的情况,is_alive()方法表示判断物体是否被吃,show()方法输出农夫、各种动物、物品的状态(生存、位置),is_win()方法判断是否成功过河。巧妙利用m的值判断是否过河成功。
改进建议
建议倒真没有,农夫过河是很经典的题。
3.总结
这是本学期Java第二阶段的学习,能看到自己获得了知识,但更多的是自己的不足,而且不足之处很明显。学习的东西虽然基础,但是掌握却需要大量联系。从最初适应Java语言变成灵活运用Java语言,再到后面运用多个类编写程序,还有很长的路需要自己去一步步践行。作为初学者,发现还有许多东西需要去掌握:
1.基础语法的巩固,在进行Java编程中,时常脱离不出C语言的习惯,导致出现语法错误,甚至不记得如何进行编写,这需要在练习中,不要只会对之前自己写的代码复制粘贴,还要留意写法。
2.多学习使用eclipse,这个编译软件很好用,功能很多,自动报错的功能对于代码的修改很有帮助,写pta不能只在那上面写代码,灵活运用eclipse对自己编写修改代码很有帮助。
3.不同类之间的关系,许多时候正是不知如何进行将类互相呼应,导致代码亢长,产生垃圾代码,这不利于学习;当能够了解,并运用类与类之间的关系,则能解决大多数问题。
向前看,面向第三阶段的学习。