20182319 2019-2020-1 《数据结构与面向对象程序设计》第二、三周学习总结
@
教材学习内容总结
这两周主要学习的是对于数据的类型以及输入输出的学习和对于几个常用的类的学习。
首先是对于数据的学习,它让我们学习了一些比较基本的数据类型,其中大部分还是和c是一样的,但有一个布尔型(boolean)c中没有的,在c++中虽然有,但是却是叫bool,所以这个地方我们要注意一下,用的时候不要用错了。(记住就好,反正用错了会报错),还应该关注到的是,我们的输入中是没有nextChar这一项的。只能使用一些别的方法来实现一个是输入整型,一个是输入字符串。
然后是对一些类的使用,这个用起来还和c++差不多,没有什么太多好讲的。
教材学习中的问题和解决过程
这一次的就是比较注重实践了,所以问题也会集中在代码调试的方面,当然,在这个方面也还是有问题的。
- 问题1:在pp3.3中,它要求输出一个随机的电话号码,但我们都知道,根据random产生的随机数是不会有前置0的,而显然电话号码中可以有0,这个怎么办呢?
- 问题1解决方案: 首先,我们应该认识到的是,我们是不可以直接用xxxFormat的(至少我不会),因为它是对前置0也是不太友好的,然后,就只能想别的方法,我的想法是按照以前玩c的手法,用printf,这个家伙是可以自己定义输出格式,然后试了一下,果然成功。
方法见下:
printf("%04d",a);
代码调试中的问题和解决过程
- 问题1:第一个问题比较傻,我还问了老师,有点尬
- 问题1解决方案:我在调试的时候发现输出的时候总是给我蹦找不到
Scanner
的错误,因为也做过那么多题(也帮别人调试过一些代码)了,所以我的第一反应是是不是哪里有一个符号打错了或者是哪里漏了什么。发现没有检查出什么,没有办法只好仔细比对了一下书上的代码,然后就发现自己没有import,因为我开始记得是util是自带的,然后问了老师才想起来lang是自带的,util得自己打。 - 问题2:在计算
a=pow(2.0,3.0)
的时候,总是给我报错 - 问题2解决方案:老规矩,先仔细检查一遍,然后也是什么都没有发现,再看书,发现书上没有这个方法的用法样例,
手动笑哭然后只能上网搜,发现我没有`Math.pow(2.0,3.0)``然后给了我一个大大的教训,有些用法是不能直接看看书就以为自己会了,还是要多多实践。
代码托管
上周考试错题总结
其实,这周错的题分为三种状况,其中一种为没有提前预习,导致在考试的时候没有什么感觉,然后就错了,而在后续看书的过程中又看到了,感觉不是易错点,另一类是不小心点错或者是没有看清楚题,而且也不太难的,这两类记录下来的用处不是特别大,所以就只记录第三类,自己不太清楚,记录下来可以辅助记忆,对自己有帮助的。
- 错题1
When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从___读取每个程序指令)
A .secondary memory (storage) (辅助存储器(存储))
B .the Internet (互联网)
C .registers stored in the processor (储存在处理器中的寄存器)
D .main memory (主存储器)
E .could be any of these (可以是以上这些中的任何一个)
正确答案:D
错误原因与经验教训:这个主要是对导论的知识掌握不够熟练。只是能够先把它当做一个知识记下,以防以后再在同一个地方跌倒。 - 错题2:
Volatility is a property of (易变性是___的性质)
A .RAM (随机存储器)
B .ROM (只读存储器)
C .disk (磁盘)
D .software (软件)
E .computer networks (计算机网络)
错误原因与经验教训:很遗憾,这个问题的的确触及到了我的知识盲区。所以这个题目也没有什么好说的了,积累就完事了。 - 错误3:
The ability to directly obtain a stored item by referencing its address is known as (通过引用地址直接获得存储项的能力被称为___)
A .random access (随机存取)
B .sequential access (顺序存取)
C .read-only access (只读访问)
D .fetch access (获取访问)
E .volatility (易变性)
错误原因与经验教训:这一题和上面那个题一样,都是我不太了解的题目。 - 错误4:
Java is an example of a(n) (Java是一个___的例子)
A .machine language (机器语言)
B .assembly language (汇编语言)
C .high-level language (高级语言)
D .fourth generation language (第四代语言)
E .both C and D (C和D都是)
错误原因与经验教训:哇,这个问题一定要记下来,本来在书上是有这么一句说java是一门高级语言,但由于关于第四代语言的描述也没有提到java所以就呜呜了。 - 错误5:
Of the following types, which one cannot store a numeric value? (在下列数据类型中,哪一个不能存储一个数值型数据?)
A .int
B .byte
C .float
D .char
E .all of these can store numeric values (以上所有类型都可以存储数值型数据)
错误原因与经验教训:在我的想法里,char是可以记录ASCII码的,但它好像并不是一真正的数据,应该不可以输入并进行一系列运算,所以它并不是一个真正的可以存储数值型数据。 - 错误6:
Which of the following is true regarding the mod operator, %? (关于求余运算符%,下面哪项是正确的?)
A .It can only be performed on int values and its result is a double (它只能执行int类型的数值,其结果是double类型的数)
B .It can only be performed on int values and its result is an int (它只能执行int类型的数值,其结果也是int类型的数)
C .It can only be performed on float or double values and its result is an int (它只能执行float或者double类型的数值,其结果是int类型的数)
D .It can only be performed on float or double values and its result is a double (它只能执行float或者double类型的数值,其结果是double类型的数)
E .It can be performed on any numeric values, and the result always is numeric (它可以执行任何类型的数值,其结果始终是数值)
错误原因与经验教训:其实我对这个问题本来不是很清楚的,因为我本来报有的想法是这个应该和c中一样是只能整型和整型玩的游戏,但没想到它居然可以对所有的类型的数据都可以适用(其实老师上课好像有讲过)。 - 错误7:
Java is a strongly typed language. What is meant by "strongly typed"? (Java是一种强类型语言。“强类型”指的是什么?)
A .Every variable must have an associated type before you can use it (在使用变量之前,每个变量一定都有一个与之关联的类型)
B .Variables can be used without declaring their type (变量可以在不声明其类型的情况下使用)
C .Every variable has a single type associated with it throughout its existence in the program, and the variable can only store values of that type (在程序中,每个变量都有一个与之关联的类型,而变量只能存储该类型的值)
D .Variables are allowed to change type during their existence in the program as long as the value it currently stores is of the type it is currently declared to be (变量存在于程序中时允许改变类型,只要它当前存储的值是当前声明的类型)
E .Variables are allowed to change types during their existence in the program but only if the change is to a narrower type (变量存在于程序中时允许改变类型,但只能缩窄转换)
错误原因与经验教训:不好意思,又到盲区了,这个就有点尴尬了,对于这个我确实不太清楚,看完书后也没有感觉到太多收获,所以只好记下了。
结对及互评
评分:
- 正确使用Markdown语法(加1分):
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, +1
- 代码调试中的问题和解决过程, +2
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
评价:
- 博客中值得学习的或问题:
- 值得学习的:他的错题整理得是十分完备的,这样我们以后复习起来可以直接拿来就用,也方便知道自己到底是哪个方面比较弱,方便复习,
虽然不一定会复习同时他的代码和我的相比也有一些不同之处,他可以根据不同的情况用一些比较别出心裁的方法,而我则只会一些按部就班地硬套,虽然说不上谁优谁劣(一个简单,一个万能),其实以以前的我是绝对不会管别人的老是抱残守缺,不与人交流。 - 问题有一个错题写了两次。有些(我觉得)比较基本的问题其实是没有必要写上去的,这样可能还会影响以后的复习效果。
- 值得学习的:他的错题整理得是十分完备的,这样我们以后复习起来可以直接拿来就用,也方便知道自己到底是哪个方面比较弱,方便复习,
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 基于评分标准,我给本博客打分:12分。
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
**其实这一次的感悟应该都来自于我那些比较丢脸傻的错误,我以前是不太喜欢动手的(靠一些理论化的乱想),但这一次我也是知道了其实现实中有许多你意想不到的错误,我个人是比较喜欢先把事情都安排得完美,然后再动手,但这一次打击也不小,我“明明”已经安排得“很好”了但依旧有许多问题,这也告诉我“绝知此事要恭行”。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|
| -------- | :----------------😐:----------------😐:---------------: |:-----😐
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 62/100 | 1/1 | 30/20 | |
| 第二周 | 250/300 | 5/3 | 47/40 | |
| 第三周 | 869/600 | 6/6 | 65/60 | |