阶段性总结(三)
阶段性总结(三)
这是面向对象程序设计这门课程这个学期最后的一次总结,这段时间主要学习了几种的设计模式,比如状态模式等,PTA主要是电信计费的三次迭代性作业,以及关于宾馆客房订房系统的课堂作业,这段时间的学习,对设计代码以及读懂类图,编码能力上感觉都有明显的提升。
PTA习题
这段时间的习题就是三次的电信计费作业,由于在题目中已经给出了类图,所以这一系列的难度是有所下降的,同样因此,看懂类图并能过通过代码实现成为了这次作业的难点,因为是迭代作业,最重要的便是第一次的设计也就是7-1 电信计费系列1-座机计费,这一次的设计非常重要,这次的的代码如果设计的好,扩展性强的话,后面几次的作业将变得简单许多。
7-1 电信计费系列1-座机计费

经过自己阅读类图,经过自行编码后,生成类图如下:

解题分析:
这次的设计最最主要的第一点便是通过给出类图捋清楚类与类之间的关系,捋清楚类图后便开始着手将每个类中需要的方法通过代码去实现,实现完方法后便开始编写代码的测试类Main类,这部分的代码是此次习题最大的难点,第一步要弄清楚的便是,如何去处理输入的数据,区分输入的数据类型,以及要判断,输入的数据是否符合格式,为了解决这个问题,于是便想到了,通过正则表达式来判断,如果输入的信息符合开户的格式,则进入处理开户的模块,通过字符串的截取来将用户的信息储存在集合容器中。如果输入的数据符合通话记录的格式,那第一要判断的便是判断通话记录中的号码是否已经本地开户,如果开户在对其进行进一步处理,在处理计费时,首先便要获取的就是打电话的时间,为了计算出这个时间,通过使用SimpleDateFormat这个类将输入信息中的时间部分字符转化为Data对象,再通过类里面的getTime()方法获取时间,计算通话时间也便容易了,再而就是储存通话记录,通话记录分为拨打记录与接听记录,在存储时需要进行区分。
心得体会
当这道题目成功通过所有测试点得到满分的时候,内心会有一种十足的成就感,但为了解决这道题也是花了不少的功夫,因为在第一次编码完成提交后,仍存在许多的测试点通不过的情况,于是自己便想着法子去使用各种类型的数据去进行测试,一个一个bug的去找,找到后便通过对代码进行调试去对代码进行修改从而完善。但在这个过程中发现了自己的一个问题,就是由于在写代码的过程中没能沉下心,导致了出现低级错误的情况。
7-1 电信计费系列2-手机+座机计费

第二次是在第一次的基础上新增一个手机计费,与座机不同的是,手机计费增加了漫游记费规则,只需要在上次代码的基础上增加修改即可。
7-1 电信计费系列3-短信计费

第三次也是最简单的一次,就是新加入短信功能,代码新加量也比较小,前面设计的好的话耗时不超过一个小时就能完成。
总结:
这个学期的面向对象程序设计的学习也就到此而止,但是我们的学习还没有结束,在java这门语言里还有许多的东西我们都还没有学到,为了成为一名出色的程序员,要养成每天学习的习惯,这个学期的学习,是我从大一写C语言的几十行的代码量提升到了这个学期的几百行,进步还是挺明显的,接下来,希望自己能有更大的进步。

浙公网安备 33010602011771号