2022-2023-1 20221402 《计算机基础与程序设计》第八周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(如2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业) |
这个作业的目标 | 1.功能设计与面向对象设计2.面向对象设计过程3.面向对象语言三要素4.汇编、编译、解释、执行 |
作业正文 | https://i.cnblogs.com/posts/edit |
教材学习内容总结
《计算机科学概论》第9章:
1.什么是面向对象设计
面向对象设计采用与结构化设计不一样的视角,他是将世界抽象成一系列具有一定职责的自由数据个体,个体之间相互协作,共同完成高级的行为.
2.面向对象语言的三要素是封装、继承、多态
3.自顶向下的设计方法重点在于把输入转换成输出的过程,面对对象设计重点是要转换的数据对象。
教材学习中的问题和解决过程
1、 设计方法各个步骤的具体操作。
(1)首先按照需求来找对象
(2)抽象每一个对象为类
(3)理清楚各对象之间的关系,使用继承、组合、扩展、分类等方法描述这些关系
(4)找出每个对象实体要做的事
(5)找出每个类在不需要有对象实体的情况下要做的事,写类方法
2、 如何进行编译和解释。
参考了CSDN文章https://blog.csdn.net/cdy1221/article/details/95199063
编译:将源代码一次性转换成目标代码的过程
类似英语中的全文翻译。
解释:将源代码逐条转换成目标代码同时逐条运行的过程。
类似英语中的同声传译。
代码调试中的问题和解决过程
对于该代码,我仍然不太理解循环内的代码含义。尚未掌握如何输出一个数字的倒数第几位数。
在选择控制结构中,我不理解的是default的用法,在老师讲解后,我将default语句理解为if else语句里的else,就是除上述情况外的其他情况。
本题我遇到最大的问题就是,在第一道题做错,第二道题也做错,但是第三道题做对的情况下,程序无法输出“Right!”,也就是我不明白如何在do while语句里嵌套一个if else语句,在这个地方我卡了很久,改了将近一个小时,最后结合教材猜数游戏的代码将其改正确。最开始,我先写了if,然后再else if里嵌套了do while语句,发现了上述问题。我尝试改成while循环,以及改变自己分类讨论的标准,最后发现都行不通,都在上述情况下无法输出“Right!”
该程序编写过程中我遇到最大的问题就是关于变量类型的理解。我定义了变量m,为单精度的浮点型变量。这样定义是因为我希望最终输出正确率时可以保留两位小数,但我在循环里却采用了m++或m+1的写法,导致最后只能输出我给m的初始赋值0.00,而后我改成m+1.00,并在输出时把“%d”改成正确的“%.nf”,在无数次调试中终于得到正确结果。
上周考试错题总结
1.Which of the following is made up of a set of nodes called vertices and a set of lines called edges (or arcs)?
A. List
B. Stack
C. Graph
D. Binary search tree
E. Linked structure
C
2.Which level provides an abstract view of data and the operations that manipulate them?
A. Implementation level
B. Logical level
C. Array level
D. Linked level
E. Application level
B
其他(感悟、思考等,可选)
本周为了完成实验二的代码,我目前只写了三个半,连写带改可以说得有四五个小时。有以下几点让我感触颇深
对课本知识的理解
例如,选择控制结构有if else和Switch,if else比较简单易懂,所以我一直使用的是if else语句,导致连书上讲的基础知识都没有掌握。
循环控制语句中,我对for比较了解,而while和do while都比较生疏,导致我在写do while语句时,连while后跟的是什么都忘了,严重降低了我打代码的速度
对细节的把控
写代码最麻烦的就是改bug,对细节把握不好会让事情变得很麻烦,比如对变量的定义。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 18/38 | |
第三周 | 500/1000 | 1/4 | 22/60 | |
第四周 | 300/1300 | 3/7 | 30/90 | |
第五周 | 300/1600 | 1/8 | 20/110 | |
第六周 | 300/1900 | 1/9 | 20/130 | |
第七周 | 300/2200 | 1/10 | 30/160 | |
第八周 | 300/2200 | 4/14 | 30/190 |