南昌航空大学-软件工程-Java-19201528-第四次作业

≯℡__Kan透↙ 提交于 2020-04-04 17:58:30

0. 前言

首先说明一下作业的情况,第一次作业得分情况是96分,第二次作业的得分情况是100分,第三次作业的得分情况是40分。完成情况很不尽人意,第一次作业第一题和第三题分别有一个测试点过不去,第三次作业由于家里有点状况一直忘记写,最后匆匆忙忙没写完。

1. 作业过程总结

①总结三次作业之间的知识迭代关系:从逻辑语句,到方法和类的运用。

1. 第一次作业主要是if-else的运用,从美国税率表到统计最大数出现次数,都主要通过if-else的逻辑运用得到结果,实现题目要求。

 

2. 第二次作业则对方法的运用有需求,从解方程到求日期都要求我们用到一些方法,不过这些方法都是静态的,和之前学的C语言有很多相似之处,当然判断年份时也要求使用大量的if-else逻辑语句。

 

3. 第三次作业需要我们去设计类,涉及一些类的知识和私有变量的运用。

 

②如何通过作业逐步从面向过程过渡到面向对象

第一次作业和第二次作业和c语言作业的区别非常小,只需要改变一些语句就可以了,结构基本是一样的。但到了了第三次作业,我就感觉有些吃力,因为它不和我之前认知的一样。但经过粗浅的认知后我发现,面向对象能让编程变得更加简单,使程序员的思维更加清晰,不需要考虑c语言里乱七八糟的指针。只需要类的引用,就能获得继承,封装,多态三大特质。类里面有属性和方法,类的外部都可以进行调用,当然类里面还可有私有变量,使程序更加稳定。

③作业过程中遇到的问题及解决方法

1. 在第一次作业中计算税率和判断三角形两道题中,刚开始一直都有很多错误。计算三角形的那一题主要是因为if-else有些地方的逻辑会直接结束或者跳过,导致结果会多输出一部分或者少输出一部分字符,我是通过细分if-else来解决这个问题的,先判读输入是否合法,再判断是不是三角形,再立两个flag判断这个三角形占了直角和等腰三角形哪几个部分,最后根据flag输出他是什么三角形,但是很遗憾一直有一个错误点过不去。第一题就是简单的switchif-else的运用但是也有一个测试点没过,浪费了很多时间。

 

2. 第二次作业写判断日期星期几时总是会出现一些由于if-else导致的输出缺失和多余的问题,我通过在判断语句后面加System.exit(0);解决这个问题。判断星期几时总是出现各种各样的错误,多一天或少一天,最后用基拉姆尔森公式解决了这个问题。

 

3. 第三次作业由于事情忘记了时间只写了前两题,第二题判断时间运用了网上计算一月之间天数的算法,但总是导致时间多了一天的问题。

 

④每次作业花费的时间比例

1. 第一次作业用了大概一天的时间,因为写税率很麻烦,在家很容易分心,修改错误没有明显提示,花费了很长时间。

 

2. 第二次作业花费了两天的时间,因为是判断年份月份日期,闰年平年每个月的日期都不一致所以写程序花了很长的时间,另外还有测试点重复测试也花费了很长时间,所有用了两天的时间。

 

3. 第三次作业用了半天的时间,因为家里事情最后才意识到作业,在截止那天下午匆忙赶作业,但很多知识点都没有掌握,所以还有相当大一部分内容写不出来。

 

⑤对编程过程的逻辑严谨性的认识及教训

If-else等基本语句不能出现逻辑错误,还有方法的返回值要注意,代码不能太啰嗦,要尽可能的简洁,不然会浪费大部分的时间,而且改动起来相当麻烦,算东西的方式不能太low,不然就会导致代码不简洁,应该在网上多学习一些简便的算法。

 

2. oo设计心得

①面向过程与面向对象的比较

面向过程是一种以过程为中心的编程思想,而面对对象是一门以对象为基本程序结构单位的程序设计语言。面向过程只需要分析解决问题所需要的步骤,然后用模块化的函数把这些步骤一步步的实现,使用的时候一个个调用这些函数就可以了,而面对对象以对象为主体,对象具有静态类型和多个可能的动态类型,在基本层次关系中的不同类中共享数据操作。

②面向对象设计的基本原则理解

目前只在网上了解了五大基本原则:模块化,抽象,信息隐藏,低耦合,高内聚。

③OO编程思维的理解

OO就是将事物都看成对象,将具有同类特征的事物看为类。通过对类与对象的继承,封装和多态的实现,通过代码解决现实问题。

3. 测试的理解与实践

①测试对于编码质量的重要性

 

如果没有详细的测试,那么代码可能有潜在的很多问题,所以代码必须要经过反复,多样的测试,才能保证代码的精确性,简便性,由此可见测试的重要性。

②假如让你设计测试用例,你会如何做

我会将每个测试点细化并且加上详细的测试点说明,方便程序的调试。

4. 课程收获

学会了一些关于Java的语法和知识,但最重要的是了解了一种面对对象的编程思想,它可以让代码更简洁,程序逻辑更简单。

5. 对课程的建议

老师讲课非常好,也非常的认真负责,每次有作业或者重要的通知都会多次提醒同学,而且解答学生的问题很有耐心。但是希望能增加一些PTA的题量,降低一些难度,并且在题目后面有详细的测试点。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!