软件工程(C语言实践篇)学习心得总结

本文是作者在《软件工程(C编码实践篇)》MOOC课程的学习总结,通过一系列实验,跟随孟宁老师学习了C语言编程和代码规范,实现了从HelloWorld到命令行菜单系统的进化。实验涉及命令行菜单设计、链表模块化、回调函数应用和子系统设计,强调代码的可重用性和模块化。课程让作者深刻理解了代码规范的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

陈晓煜 + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006

      经过一学期网课的学习,跟着孟宁老师学到了很多软件工程方面的知识。孟老师从一个简单的小程序入手,通过实例来生动讲解代码规范的重要性及要求。最开始学的时候比较容易,但是到中后期内容难度逐渐增加,实验就没有那么容易完成。但是,只要认真听孟老师的课,按照步骤一步一步来,最终都能完成作业。在实验楼提供的linux环境下写作业,不仅能粗略感受linux系统与win系统之间的差异,还能加深上课学习的知识的印象。讲理论运用到实践,巩固知识点,融会贯通。

实验代码和链接

以下是我在这门课写的作业和报告,可直接点击链接访问。

实验要求概述

实验一 :
1.在实验楼Linux环境使用C语言编写,编译后执行输出"Hello,World!";
2.实验和实验报告务必在实验楼linux下完成,课程视频是在本地虚拟机上操作的,除了目录环境和作业提交方式不同外,基本的命令和编辑操作方式是一致的。

实验二 :
代码风格要求:
1.代码风格的原则:简明、易读、无二义性;
2.缩进、命名、注释等代码编排的风格规范;
3.《构建之法》4.1代码规范;
4.高质量C++/C编程指南(林锐)。
具体要求:
1.实现一个命令行的菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,实现的命令个数不少于8个;
2.类似ftp的help目录或者bash的help目录;
3.程序循环、接收用户的命令,如help、others等命令;
4.可以广泛通用的命令行菜单子系统组件,可方便地定制而嵌入到其他系统。

实验三 :
1.注意代码的业务逻辑和数据存储之间的分离,即将系统抽象为两个层级:菜单业务逻辑和菜单数据存储;
2.遵守代码风格规范,参考借鉴代码设计规范的一些方法;
3.代码的业务逻辑和数据存储使用不同的源文件实现,即应该有2个.c和一个.h作为接口文件。

实验四 :
1.用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;
2.链表模块的接口设计要足够通用,命令行菜单小程序的功能保持不变;
3.可以将通用的Linktable模块集成到我们的menu程序中;
4.接口规范。

实验五 :
1.给lab5-1.tar.gz(在实验楼Linux虚拟机环境下~/se_files/目录下)找bug,quit命令无法运行的bug;
2.利用callback函数参数使Linktable的查询接口更加通用;
3.注意接口的信息隐藏。

实验六 :
1.为menu子系统设计接口,并写用户范例代码来实现原来的功能;
2.使用make和make clean来编译程序和清理自动生成的文件;
3.使menu子系统支持带参数的复杂命令,并在用户范例代码中自定义一个带参数的复杂命令;
4.可以使用getopt函数获取命令行参数。

课程小结

这门课对于我来说,最大的收获就是了解了什么是代码规范以及代码规范的重要性。代码规范并不仅仅是指代码的书写符合规范,使代码整齐易读,还指代码的质量高。例如代码实现模块化,可重用,注重线程安全等。

最大的遗憾就是我仍觉得学到的东西不够多,希望老师能继续丰富网课内容,增加软件工程其他方面的知识点。

最后,还是要感谢孟宁老师对网课的付出。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值