2024-2025-1 20241411王思棋《计算机基础与程序设计》第十三周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP |
---|---|
这个作业要求在哪里 | <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13 |
这个作业的目标 | 结构体的定义 结构体数组的定义和初始化 结构体指针定义和初始化 向函数传递结构体 共用体 枚举数据类型 动态数据类型 单向链表 |
作业正文 | ... 本博客链接 https://www.cnblogs.com/wangsiqi828828/p/18621472 |
教材学习内容总结
以下是对上述知识点的概括:
一、结构体
- 结构体的定义
结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起,形成一个新的复合数据类型。 - 结构体数组的定义和初始化
定义:可以像定义其他数组一样定义结构体数组。
初始化:可以在定义时进行初始化。 - 结构体指针定义和初始化
定义:定义一个指向结构体的指针。
初始化:可以将一个已有的结构体变量的地址赋给指针。 - 向函数传递结构体
可以通过值传递和指针传递两种方式将结构体传递给函数。
值传递:会创建结构体的副本,开销较大。
二、共用体
共用体是一种特殊的数据类型,它允许在同一内存位置存储不同的数据类型。但在同一时刻,只能存储其中一种数据类型。
三、枚举数据类型
枚举是一种用户定义的数据类型,它由一组命名的常量组成。
四、动态数据类型(在 C 中通常通过指针和动态内存分配实现)
可以使用动态内存分配函数(如malloc
、calloc
和realloc
)在运行时分配内存,以适应不同的需求。
五、单向链表
单向链表是一种数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
教材学习中的问题和解决过程(先问 AI)
- 问题1:如何在结构体数组中插入一个新的结构体?
- 问题1解决方案:1. 简单顺序存储结构体数组插入简述
思路:假设数组空间足够,要在指定位置插入新结构体,需将该位置后的所有结构体向后移一位,再插入新结构体,同时更新数组元素数量。
过程:insertStudent函数实现插入操作。它接收结构体数组、指向元素数量的指针、插入位置和新结构体。通过循环将插入位置后的元素后移,然后插入新结构体并更新元素数量。在
main`函数中创建结构体数组示例,调用插入函数并输出结果来验证插入操作。
- 考虑动态分配内存的结构体数组插入简述
思路:对于动态分配内存的结构体数组,插入新结构体可能要重新分配内存。使用realloc
函数来增加数组内存空间,以容纳新元素。
过程:insertStudent函数接受指向结构体数组指针的指针、元素数量指针、插入位置和新结构体。先使用
realloc重新分配内存,若成功则更新数组指针,再将元素后移并插入新结构体,最后更新元素数量。在
main`函数中,动态分配初始数组内存,插入新结构体后输出结果,最后释放内存。
基于AI的学习
代码调试中的问题和解决过程
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
其他(感悟、思考等,可选)
xxx
xxx
学习进度条
|
| 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长
|
|
-------- | :----------------😐:----------------😐:---------------: |:-----😐
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,[软件工程 估计方法](http://www.cnblogs.com/xinz/archive/2011/04/06/2007294
.html)
-
计划学习时间
:XX
小时 -
实际学习时间
:XX
小时 -
改进情况:
(有空多看看[现代软件工程 课件
软件工程师能力自我评价表](
http://www.cnblogs.com/xinz/p/3852177
.html))
参考资料
- 《计算机科学概论(第七版)》
- ...