2024-2025-1 20241407《计算机基础与程序设计》第十四周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第十四周作业 |
这个作业的目标 | 学习二进制文件和文本文件,文件的打开和关闭,顺序读写与随机读写,标准输入和输出及其重定向 |
作业正文 | 本博客 |
教材学习内容总结
《C语言程序设计》第五版第十三章的学习内容总结如下:
-
文件的打开和关闭:
- 文件操作的基本概念,包括文本文件和二进制文件的区别。
- 如何使用
fopen
函数打开文件,以及fclose
函数关闭文件。 - 错误处理,例如使用
perror
函数来输出错误信息。
-
顺序读写:
- 使用
fgetc
和fputc
函数进行单个字符的读取和写入。 - 使用
fgets
和fputs
函数进行字符串的读取和写入。 - 使用
fscanf
和fprintf
函数进行格式化的输入输出。
- 使用
-
随机读写:
- 使用
fseek
函数进行文件指针的移动,支持三种定位方式:SEEK_SET
(文件开头)、SEEK_CUR
(当前位置)、SEEK_END
(文件末尾)。 - 使用
ftell
函数获取当前文件指针的位置。 - 使用
rewind
函数将文件指针重置到文件开头。
- 使用
-
标准输入和输出及其重定向:
- 了解标准输入(stdin)和标准输出(stdout)的概念。
- 学习如何使用
<<
和>>
运算符进行输入输出的重定向。
-
文件读写的实际操作:
- 通过实例代码学习如何将数据写入文件,以及如何从文件中读取数据。
- 学习如何将一个文件的内容复制到另一个文件中。
- 掌握如何判断文件读取是否结束,使用
feof
和ferror
函数。
-
文件操作的注意事项:
- 理解文件缓冲区的概念以及如何管理文件缓冲区。
- 学习文件操作中常见的错误和异常处理方法。
这些内容涵盖了C语言中文件操作的基本知识点,包括文件的打开与关闭、顺序读写、随机读写以及标准输入输出的重定向等,是C语言程序设计中处理文件数据的重要技能。
《C语言程序设计》第五版第十四章的学习内容总结如下:
-
动画的基本原理:介绍了动画的基本概念和实现方法,帮助读者理解如何在C语言程序中实现动画效果。
-
迷宫游戏:通过迷宫游戏的设计和实现,讲解了如何使用C语言开发简单的游戏,包括游戏逻辑、数据结构和用户交互。
-
Flappy bird游戏:介绍了Flappy bird游戏的设计与实现,涉及游戏的核心机制、碰撞检测、分数计算等关键技术点。
-
本章知识点小结:总结了本章的核心知识点,帮助读者回顾和巩固学习内容。
-
本章常见错误小结:指出了在游戏设计过程中可能遇到的问题和常见的编程错误,以及如何避免这些错误。
-
习题14:提供了相关的练习题,以加深对本章内容的理解和应用。
第十四章的内容聚焦于简单的游戏设计,通过具体的游戏案例,让我们学习如何将C语言应用于实际的游戏开发中,同时也锻炼了编程思维和问题解决能力。
教材学习中的问题和解决过程
问题一:二进制文件和文本文件有哪些区别?分别能使用哪些函数?
解决方式:AI答:二进制文件和文本文件是计算机中两种常见的文件类型,它们的主要区别在于存储数据的方式和读写操作的处理。
二进制文件和文本文件的区别:
-
存储内容:
- 文本文件:存储的是字符数据,通常以ASCII码或Unicode编码形式存储。
- 二进制文件:存储的是二进制数据,可以包括任何类型的数据,如图片、音频、视频等。
-
换行符处理:
- 文本文件:在不同的操作系统中,换行符可能不同(如Windows中是
\r\n
,而在Unix/Linux中是\n
)。文本文件的读写操作通常会自动处理这些换行符。 - 二进制文件:不处理换行符,直接按二进制数据读写,不会自动转换。
- 文本文件:在不同的操作系统中,换行符可能不同(如Windows中是
-
可读性:
- 文本文件:可以用文本编辑器直接打开和查看内容。
- 二进制文件:通常需要专门的软件或工具来查看和编辑。
-
文件大小:
- 文本文件:通常比二进制文件小,因为文本文件只包含字符数据。
- 二进制文件:可能包含大量的二进制数据,因此文件大小通常更大。
使用的函数:
文本文件:
- 打开文件:
fopen
函数,使用 "r"、"w"、"a" 等模式。 - 读取字符:
fgetc
或getc
。 - 写入字符:
fputc
或putc
。 - 读取字符串:
fgets
。 - 写入字符串:
fputs
。 - 格式化输入输出:
fscanf
和fprintf
。 - 关闭文件:
fclose
。
二进制文件:
- 打开文件:
fopen
函数,使用 "rb"、"wb"、"ab" 等模式。 - 读取数据:
fread
。 - 写入数据:
fwrite
。 - 移动文件指针:
fseek
和rewind
。 - 获取文件指针位置:
ftell
。 - 检测文件结束:
feof
。 - 检测错误:
ferror
。 - 关闭文件:
fclose
。
在C语言中,无论是文本文件还是二进制文件,都是通过fopen
函数打开,并通过fclose
函数关闭。主要的区别在于打开文件时使用的模式字符串,以及读写数据时使用的函数。文本文件读写时使用的是字符和字符串处理函数,而二进制文件读写时使用的是块数据处理函数。
问题二:动画的基本原理是啥?
解决方式:AI答:动画的基本原理是通过连续展示一系列静态图像(帧)来创造动态效果,这种效果被称为“视觉暂留”或“视觉持久”。以下是动画的一些基本组成部分和原理:
-
视觉暂留:
- 人眼在观察物体后,即使物体消失,图像也会在视网膜上保留短暂的时间。这个现象使得连续快速展示静态图像时,人眼会感觉到连续的动态效果。
-
帧率(Frame Rate):
- 帧率是指每秒钟展示的静态图像(帧)的数量。帧率越高,动画看起来越流畅。常见的帧率有24帧/秒(电影)、30帧/秒(电视)、60帧/秒(高清电视和电子游戏)等。
-
关键帧(Keyframes):
- 在动画制作中,关键帧是指动画序列中定义了主要动作或变化的帧。通过在关键帧之间插入中间帧(插值),可以创建平滑的动画过渡。
-
插值(Interpolation):
- 插值是在两个关键帧之间创建中间帧的过程,使得动画看起来平滑。有线性插值、贝塞尔曲线插值等多种方法。
-
时间控制(Timing):
- 时间控制是指动画中各个动作的持续时间和节奏。良好的时间控制可以使动画更加自然和有趣。
-
空间控制(Spacing):
- 空间控制是指动画中物体移动的距离和速度。合理的空间控制可以使动画看起来更加真实。
-
缓入缓出(Ease In and Ease Out):
- 缓入缓出是指动画开始和结束时速度逐渐增加或减少,这样可以避免动画显得过于机械。
-
动画的12原则:
- 由迪士尼动画师Ollie Johnston和Frank Thomas提出的12个动画制作原则,包括挤压和拉伸、预期、舞台布局、直线动作和姿势、跟随动作和重叠动作、慢入慢出、弧形运动、次要动作、时机、夸张、固体绘图和吸引力。
-
3D动画中的3D建模和渲染:
- 在3D动画中,需要先创建3D模型,然后通过计算机图形技术进行渲染,生成每一帧的图像。
-
计算机动画技术:
- 现代动画制作中,计算机技术被广泛使用,包括2D矢量动画、3D建模、骨骼动画、粒子系统等。
动画制作是一个复杂的过程,涉及到艺术、技术、创意和故事叙述等多个方面。通过不断学习和实践,可以掌握动画制作的技巧,创造出吸引人的动画作品。
基于AI的学习
代码调试中的问题和解决过程
问题1:在进行缓冲区溢出攻击实验时,安装一些用于编译32位 C 程序的软件包的时候,终端提示could not安装。
解决过程:因为实验楼中没有Python的软件包,所以安装了gdb,输入如下命令:sudo apt-get install -y gdb,最终成功安装。
问题2:在进行缓冲区溢出攻击实验时,编写完stack.c程序时,不知道怎么退出插入模式并返回到vim里。
解决过程:询问AI,才知道按esc键可以退出插入模式,输入:wq可以保存文件并退出。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 200/200 | 2/2 | 20/20 |
第二周 | 200/400 | 1/3 | 18/38 |
第三周 | 300/700 | 1/4 | 20/58 |
第四周 | 400/1100 | 1/5 | 22/80 |
第五周 | 300/1400 | 1/6 | 22/102 |
第六周 | 400/1800 | 1/7 | 25/127 |
第七周 | 400/2200 | 1/8 | 30/157 |
第八周 | 500/2700 | 1/9 | 35/192 |
第九周 | 500/3200 | 1/10 | 28/220 |
第十周 | 400/3600 | 1/11 | 30/250 |
第十一周 | 500/4100 | 1/12 | 30/280 |
第十二周 | 400/4500 | 1/13 | 30/310 |
第十三周 | 500/5000 | 1/14 | 30/340 |
第十三周 | 400/5400 | 1/15 | 30/370 |