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

教材学习内容总结

以下是对上述知识点的概括:

一、结构体

  1. 结构体的定义
    结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起,形成一个新的复合数据类型。
  2. 结构体数组的定义和初始化
    定义:可以像定义其他数组一样定义结构体数组。
    初始化:可以在定义时进行初始化。
  3. 结构体指针定义和初始化
    定义:定义一个指向结构体的指针。
    初始化:可以将一个已有的结构体变量的地址赋给指针。
  4. 向函数传递结构体
    可以通过值传递和指针传递两种方式将结构体传递给函数。
    值传递:会创建结构体的副本,开销较大。
    二、共用体
    共用体是一种特殊的数据类型,它允许在同一内存位置存储不同的数据类型。但在同一时刻,只能存储其中一种数据类型。
    三、枚举数据类型
    枚举是一种用户定义的数据类型,它由一组命名的常量组成。
    四、动态数据类型(在 C 中通常通过指针和动态内存分配实现)
    可以使用动态内存分配函数(如malloccallocrealloc)在运行时分配内存,以适应不同的需求。
    五、单向链表
    单向链表是一种数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

教材学习中的问题和解决过程(先问 AI)

  • 问题1:如何在结构体数组中插入一个新的结构体?
  • 问题1解决方案:1. 简单顺序存储结构体数组插入简述
    思路:假设数组空间足够,要在指定位置插入新结构体,需将该位置后的所有结构体向后移一位,再插入新结构体,同时更新数组元素数量。
    过程:insertStudent函数实现插入操作。它接收结构体数组、指向元素数量的指针、插入位置和新结构体。通过循环将插入位置后的元素后移,然后插入新结构体并更新元素数量。在main`函数中创建结构体数组示例,调用插入函数并输出结果来验证插入操作。
  1. 考虑动态分配内存的结构体数组插入简述
    思路:对于动态分配内存的结构体数组,插入新结构体可能要重新分配内存。使用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))

参考资料

posted @ 2024-12-21 22:19  王思棋  阅读(3)  评论(0编辑  收藏  举报