2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第8周学习总结
作业信息
这个作业属于哪个课程 | (https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP) |
---|---|
这个作业要求在哪里 | (https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08)) |
这个作业的目标 | 自学教材《计算机科学概论》第9章《C语言程序设计》第7章 |
作业正文 | (https://www.cnblogs.com/ljq2005/p/17842285.html) |
教材学习内容总结
《计算机科学概论》
1.面对对象分解的4个阶段:头脑风暴、过滤、场景、责任算法。
2.汇编器可以把汇编语言转化为机器语言,编译器可以把高级语言和汇编语言转化为机器语言,解释器不仅翻译指令,还会立即执行。
3.面对对象的程序用以下结构刻画:封装、继承、多态。
《C语言程序设计》
1.函数的调用:如果被调函数在后面,要提前写好函数申明。
2.函数的递归调用和递归函数:分为一般情况和基线情况。
3.变量分为全局变量和局部变量,根据储存类型分又分为自动变量、静态变量、外部变量、寄存器变量。
4.模快化程序设计:自顶向下、逐步求精。
教材学习中的问题和解决过程
- 问题1:我看了这一段文字“场景阶段输出的是一套分配了责任的类,可能写在CRC卡上。卡上列出了每个类的责任以及每个责任需要协作的类”,我想问CRC卡是什么?
- 问题1解决方案:问chatgpt:
CRC卡是一种面向对象方法中常用的需求分析工具,它代表了“类、责任和协作”的缩写。CRC卡是一种简单而直观的工具,用于描述系统中的类、类的职责和与其他类的协作关系。
每张CRC卡通常代表一个类,卡上会写上类的名称和职责描述。在卡的背面,可以列出与其他类的协作关系,例如其他卡的名称和职责。通过在团队中交流和讨论这些卡片,可以帮助团队成员更好地理解系统的需求,识别出类之间的关系,并制定出系统的设计方案。
CRC卡是一种非正式的工具,适用于需求分析和初步设计阶段。它可以帮助团队成员一起思考问题,激发创意,并促进团队协作。
基于AI的学习
代码调试中的问题和解决过程
- 问题1:被调函数在后面时,提前忘了申明。
- 问题1解决方案:修改并申明。
- 问题2:全局变量和局部变量混淆。
- 问题2解决方案:提前定义全局变量。
上周考试错题总结
1.判断题
The effect of the following queue operations will be to print “HI”: Enque(myQueue,’I’), Enque(myQueue,’H’), Dequeue(myQueue,value), Write value, Dequeue(myQueue, value), Write value.
正确答案: 错误
你的作答: 正确
翻译:以下队列操作的效果将是打印出“HI”:Enque(myQueue,'I'),Enque(myQueue,'H'),Dequeue(myQueue,value),写入value,Dequeue(myQueue, value),写入value。
解析:
- Enque(myQueue,'I'):将元素'I'入队到myQueue队列中。此时队列中的元素顺序为:'I'。
- Enque(myQueue,'H'):将元素'H'入队到myQueue队列中。此时队列中的元素顺序为:'I','H'。
- Dequeue(myQueue,value):出队一个元素,并将其存储到value变量中。由于队列是先进先出的数据结构,'I'将被出队。此时队列中的元素顺序为:'H'。value的值为'I'。
- 写入value:打印出存储在value变量中的值。在这种情况下,将会打印出"I"。
- Dequeue(myQueue, value):再次出队一个元素,并将其存储到value变量中。由于队列中只剩下一个元素,即'H',它将被出队。此时队列为空。value的值为'H'。
- 写入value:再次打印出存储在value变量中的值。在这种情况下,将会打印出"H"。
因此,按照给定的队列操作,最终会打印出“HI”。
2.判断题
The properties of an abstract data type are tightly related to the implementation of that data type.
翻译:抽象数据类型的属性与该数据类型的实现紧密相关。
解析:
抽象数据类型 (Abstract Data Type, ADT) 是一种用来描述数据类型的数学模型,它定义了数据类型的行为和操作,而不关注具体的实现细节。ADT 的属性是指它所具有的特性和行为,例如数据的组织方式、访问方法、操作规则等。
然而,ADT 的实现方法取决于具体的编程语言、算法和数据结构等因素。不同的实现可能使用不同的数据结构和算法来达到相同的抽象数据类型的行为。因此,抽象数据类型的属性与其具体的实现方式是紧密相关的。
换句话说,ADT 的属性和实现是相互关联的。对于同一个抽象数据类型,不同的实现方式可能会导致不同的性能、复杂度和使用方式。因此,在设计和选择抽象数据类型时,需要仔细考虑其属性和与之相关的实现细节。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/20 | 1/1 | 10/10 | |
第二周 | 80/100 | 1/2 | 10/20 | |
第三周 | 100/200 | 1/3 | 20/40 | |
第四周 | 300/500 | 1/4 | 20/60 | |
第五周 | 200/700 | 1/5 | 20/80 | |
第六周 | 200/900 | 1/6 | 20/100 | |
第七周 | 100/1000 | 1/7 | 20/120 | |
第八周 | 200/1200 | 1/8 | 18/138 |
-
计划学习时间:20小时
-
实际学习时间:18小时