作业信息

这个作业属于那个班级: https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
作业要求: https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13
作业目标 :学习《C语言程序设计》第12章

正文:2022-2023-1 20221307《计算机基础与程序设计》第十三周学习总结 – 20221307 – 博客园 (cnblogs.com)

 

教材学习内容总结

本周《c语言程序设计》学习了结构体指针,枚举,从基本数据类型(整型,浮点型,指针)等,延伸到抽象数据类型,利用typedef定义结构体别名,利用枚举完成星期几问题的编程,利用结构体嵌套完成个人信息的录入;此外,在进一步学习指针的过程中,我强化了对二维数组行指针,列指针,以及函数指针的理解。其中,函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数。在学校平台刷题的过程中,编写矩阵的转置程序

 

 利用二维数组行列指针编程

以及利用数组做函数参数编程,对我进一步学习指针有了很大帮助

教材学习中的问题和解决过程

什么是文件操作,怎样理解,怎么利用该知识实现真正的学生成绩管理系统?

1.FILE为C语言提供的文件类型,它是一个结构体类型,用于存放文件的相关信息。FILE*即为文件指针类型,通过该指针,我们可以对其相关联的文件进行一系列操作。

2.为了打开文件,文件名是不可缺少的。如果要打开当前目录下的文件,可只用输入文件名,否则应该输入文件的绝对路径,如:c:\code\test.txt

3.mode为打开文件的几种方式,常见的有”r”(只读),”w”(只写),”a”(文件末尾追加),”rb”(二进制件打开,只读),”wb”(二进制件打开,只读),”ab”(二进制件打开,追加)等。

用”r”方式打开文件,若文件不存在,则返回一个空指针表示错误。若用”w”或”a”打开文件,则若文件不存在,都会创建一个新文件,即使文件存在,写入时也会把原有内容先进行覆盖

4.在对文件进行相关操作后应该及时使用fclose函数进行关闭,以便及时释放资源

5.若fopen函数打开失败,则返回空指针,且设置全局变量 errno 来标识错误,因此打开文件后应该做必要的判断。对于flose函数,如果成功返回值为零。如果失败,则返回 EOF。
6.可利用文件操作在控制台中输入的结果导入到指定地址的.txt文件中

怎样加强程序的健壮性?

1.合理布局函数返回值,保证函数返回值一致
之前很多时候写函数往往很随性,返回值类型可以能代表函数执行成功或者失败的Bool型,也会有代表实际结果的Str或者Int等类型。这样的函数在外部调用时候很难受,因为在函数调用后处理时,处理不当就会出现typeError,所以在函数编写前,要思考后本函数的作用,同时确定返回值类型,在函数的所有涉及到返回结果时,给予一致类型的返回值,方便外部调用。

2.去掉冗余的代码
很多时候,我们的代码都是迭代开发的。往往会罗列一些无用的函数,引入一些无用的类库。这些内容貌似无意义,但却是代码中的隐患。可能在后续的类库更新或者函数变更中爆炸。所以,代码要保持清理,对于无用的引用和定义,要加以清除。

 学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 27篇 300小时  
第一周 50/50 2/2 15/15  
第二周 100/150 2/4 15/30  
第三周 150/350 3/7 20/50  
第四周 150/500 3/10 20/70  
第五周 150/650 2/12 20/90  
第六周 150/800 4/16 20/110  
第七周 150/950 1/17 20/130  
第八周 150/1100 3/20 20/150  
第九周 150/1250 1/21 20/170  
第十周 300/1550 1/22 20/190  
第十一周 300/1850 1/23 20/210  
第十二周 300/2150 1/24 20/230  
第十三周 300/2450 1/25 20/250

原文地址:http://www.cnblogs.com/zhangchengwei/p/16928109.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性