ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

面向对象程序设计-前三个月小结

2022-05-10 00:02:45  阅读:230  来源: 互联网

标签:输出 题目 密码 代码 作业 面向对象 程序设计 四边形 小结


前言

  

  不知不觉已经开始学习面向对象程序设计三个月了,先发一个小吐槽:老师总是在清明,劳动节,PTA或者oop上面的实验以及作业,这让我感到有点小头疼。

  虽然说作业多,但是恰逢佳节,稍微降低了点作业难度,方便我们学生及时做完,这么一想

  老师还是挺好的,不是吗?

  学了这么久面向对象程序设计,也做了有那么几道题目,感受到:面向对象和面向过程确实有很大的区别。就拿最近的一次PTA平台上的作业来说:识蛟龙号载人深潜,立科技报国志

  说真的,这个题目不是很励志吗!!!

  在练习代码的编辑能力的同时,心系国家大事,认识到祖国的强大,岂不是两全其美,希望之后多出一些这种题出来!

  不过话说回来,难是真的挺难的

  我需要分析每行都有上面成分2,然后再逐一通过算法将需要提取出来的信息提取完成

  就好像是面向过程程序设计是把难的问题逐步分解,拆成小问题,然后解决。

  面向对象程序设计就像是把难的问题分析的很透彻,每一个类都思考清晰,然后在进行程序的编码。

  分析问题感觉是所有学生的要害,总感觉我有哪里没想到,然后程序写得稀巴烂。

话不多说,上题!

PTA大作业四

    作业四 4-1 作业分析

  读入关于蛟龙号载人潜水器探测数据的多行字符串,从给定的信息找出数字字符,输出每行的数字之和

  说真的,这道题就这一句话,但是,却让我想破了头,我该怎么编辑我的代码,把那些我想提取出来的元素、字符提取出来并相加,主体内容都清楚,随便打点东西上去就行,但是难就难在怎么弄才能把一串字符中的数字提取    

出来,按照不同的提取方式提取出来,真的是挠破了头皮。

    代码分析

  

 

 

 

看似短短三十行,但是真的想的挺久的说实话,题目中有着不同位数的数字,比如9月9日,18时xx分等等数字信息,刚开始想,我该怎么把多位数的数字提取出来,如果单纯用字符提取的话,最多也就只能做到将数字一个个提取

出来,这样获得到的答案绝对是与标答不相同的,所以,我想了一些其它的办法,如上图所示

通过扫描输入样例中字符串中的字符类型节点,从而从字符中提取出需要的信息,并通过(Integer.parseInt)将字符中的字符类型进行转换,从而计算相对值

说实话,这个新知识是之前从来没有接触过的,觉得很新颖,而且说实话很实用,比如c语言和其他一些代码编程软件中都没有

    度量分析

  本题复杂程度为6

 

 

 

啊这,没之前的一些简单题目高吗,不应该呀,个人觉得这种题目会比之前的某些题目难很多

  结果演示

 

 有一部分没有截出来,但是看到这么多其实也能说明算是做出来了吧

下一道题!

作业四 4-2 题目分析

 说实话(我也不知道这句话讲了多少遍了),这道题真的是人能做出来的吗,突破了我对题目的认知,一道题有70分,多少个测试点,给孩子人看麻了说实话,稍微分析一下

  题目还是跟之前一样,是算多边形的题目,但是测试点也太多了吧

  光任务点就有5个,我的老天

1:输入四个点坐标,判断是否是四边形、平行四边形,判断结果输出true/false,结果之间以一个英文空格符分隔。
2:输入四个点坐标,判断是否是菱形、矩形、正方形,判断结果输出true/false,结果之间以一个英文空格符分隔。 若四个点坐标无法构成四边形,输出"not a quadrilateral"
3:输入四个点坐标,判断是凹四边形(false)还是凸四边形(true),输出四边形周长、面积,结果之间以一个英文空格符分隔。 若四个点坐标无法构成四边形,输出"not a quadrilateral"
4:输入六个点坐标,前两个点构成一条直线,后四个点构成一个四边形或三角形,输出直线与四边形(也可能是三角形)相交的交点数量。如果交点有两个,再按面积从小到大输出四边形(或三角形)被直线分割成两部分的面积(不换行)。若直线与四边形或三角形的一条边线重合,输出"The line is coincide with one of the lines"。若后四个点不符合四边形或三角形的输入,输出"not a quadrilateral or triangle"。
后四个点构成三角形的情况:假设三角形一条边上两个端点分别是x、y,边线中间有一点z,另一顶点s:
1)符合要求的输入:顶点重复或者z与xy都相邻,如x x y s、x z y s、x y x s、s x y y。此时去除冗余点,保留一个x、一个y。
2) 不符合要求的输入:z 不与xy都相邻,如z x y s、x z s y、x s z y
5:输入五个点坐标,输出第一个是否在后四个点所构成的四边形(限定为凸四边形,不考虑凹四边形)或三角形(判定方法见选项4)的内部(若是四边形输出in the quadrilateral/outof the quadrilateral,若是三角形输出in the triangle/outof the triangle)。如果点在多边形的某条边上,输出"on the triangle或者on the quadrilateral"。若后四个点不符合四边形或三角形,输出"not a quadrilateral or triangle"。

代码分析

 

 

 

  

 

真的不知道何从下手,最怕这种题目了,只能通过混分的方式得到些许分

度量分析

本题复杂度为7

 

 

 

不理解为什么还能这么多,可能是测试点多,然后加了switch函数,比较复杂把(胡乱分析)

结果展示

 

 

 

 也算是有部分结果呈现出来了吧

作业四 4-3 作业分析

讲真的,这道题我竟然做出来了,很开心!

编写一个银行业务类BankBusiness

让我们做一个银行业务的代码

1)公有、静态的属性:银行名称bankName,初始值为“中国银行”。
(2)私有属性:账户名name、密码password、账户余额balance。
(3)银行对用户到来的欢迎(welcome)动作(静态、公有方法),显示“中国银行欢迎您的到来!”,其中“中国银行”自动使用bankName的值。
(4)银行对用户离开的提醒(welcomeNext)动作(静态、公有方法),显示“请收好您的证件和物品,欢迎您下次光临!”
(5)带参数的构造方法,完成开户操作。需要账户名name、密码password信息,同时让账户余额为0。
(6)用户的存款(deposit)操作(公有方法,需要密码和交易额信息),密码不对时无法存款且提示“您的密码错误!”;密码正确、完成用户存款操作后,要提示用户的账户余额,例如“您的余额有1000.0元。”。
(7)用户的取款(withdraw)操作(公有方法,需要密码和交易额信息)。密码不对时无法取款且提示“您的密码错误!”;密码正确但余额不足时提示“您的余额不足!”;密码正确且余额充足时扣除交易额并提示用户的账户余额,例如“请取走钞票,您的余额还有500.0元。”。

这不是??

这不是手把手教我们做题目吗

这不得手拿把掐!

代码分析

说真的,这道题做起来还是很不错的,能告诉我们在做题目的时候,我们该如何创建类,如何通过代码的形式完成一步又一步的过程

度量分析

本题复杂程度为17

 

 

感觉还行,毕竟是自己一手一手打出来的

题目结果演示

 

 

 perfect!!!

以上是本次pta作业四的四道题,看上去完成了两道题感觉会比上个月的总结时有些许进步,但是看细节的话,还没越过自己最大的困难,就是多边形的题目的编辑

还是容易卡壳

实验3-1: 农夫过河的继承与多态

农夫过河这个月已经不知道接触多少遍了,把农夫从河这边带过去,带只羊,狼,菜(听说后面还有兔子和胡萝卜)

前一段时间还加了一个载体船,农夫需要用船来运送这些物品,不再只是农夫的走来走去,从内容上难度就得到了很大的提升

到了这次实验,可想而知,改的不只是一部分,更多的是把代码的主要形式改出来

话不多说,步入主题

题目分析

将之前实验中的农夫过河的代码改成继承与多态形式

这道题牵扯到了最近学的继承与多态,感觉还是挺难的

代码部分分析

 

 

 

 

看起来很多,总共290行左右,这道题需要我们创建很多类,然后依次连接在一起得到我们需要的答案

度量分析

本题复杂程度为17

 

部分结果演示:

 

 达到了实验的最初目标!!!

学习总结:

              说实话,自己写出了不少的错误,主要的原因是没有进行足够严格的测试,PTA上的测试点我又不知道它测了什么,所有的测试点都是通过自己一下一下慢慢摸索出来的。通过近长达三个月个月的java课程学习,我对java

的初始运用有了更多的了解,相对于c语言来说,java给了我们更多的选择空间进行代码的编写,并且也让我们更加体会到了未来当程序员的时候,面对客户的需求,面对客户所提出的一些问题,我们该如何通过代码的方式进行解

决,并依次实现相应功能是有多么难,希望自己之后能花更多的时间在java的学习上,老师上课讲的东西很少,但是很精;java的大多数东西都是靠自学学的,我认为这也是培养能力的一种方式,这才叫主动学习,不过值得庆幸的

是,通过长达一个月的深度学习,我成功的做出了作业四的一三题和实验题,还是可喜可贺的,后面的学习道路上也会更加努力的。

               走了些弯路,花了不少时间,希望以后可以更加面向对象。

 

标签:输出,题目,密码,代码,作业,面向对象,程序设计,四边形,小结
来源: https://www.cnblogs.com/21201309-huangjingtao/p/21201309-huobao.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有