本课程为网易云课堂孟宁老师《软件工程:C编码实践篇》的配套实验与作业。软件工程C编码实践篇强化实践能力训练,从学生较为熟悉的编程训练入手,重实践,形成对软件工程直观感性的认识。
安自宽 原创作品转载请注明出处 《软件工程(C编码实践篇)》
MOOC课程 http://mooc.study.163.com/course/USTC-1000002006
MOOC课程 http://mooc.study.163.com/course/USTC-1000002006
首先我觉得通过孟宁老师的讲解和练习收获到很多,对Linux上的基本操作,C语言编码和软件工程都有了更进一步的认识和理解。觉得老师设置的课程恰到好处,我从中受益多多。老师上课特别的风趣有意思,对知识点讲解很透彻和有深度。只要从开始到结尾好好地跟着老师的思路去做实验,必定会得到巨大的进步!
1. 熟悉Linux实验环境。
实验一:写一个hello world小程序。
实验总结:第一次在Linux下操作,感觉和windows还是很不一样的。刚开始用vim编译器很不习惯。并且linux的很多命令和参数,需要长时间练习操作才能熟练掌握。第一次在Linux下写hello world,是很适合初学者的。但是由于不熟悉git,所以还是需要花点时间去了解一些的。
2. 代码风格规范。
实验二:命令行菜单小程序V1.0。
实验总结:懂得了代码风格在团队合作中的重要性,也初步接触了模块化设计思想,也学会了将命令封装成函数从而进行一部分的独立。
3. 基本的模块化设计。
实验三:内部模块化的命令行菜单小程序V2.0。
实验总结:初步实现了业务逻辑与数据结构的分离,大大地加深了对模块化思想的理解。
4. 可重用模块的接口设计。
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5。
实验总结:用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作,链表模块的接口设计到达足够通用,同时命令行菜单小程序的功能保持不变。在此我将通用的Linktable模块集成到menu程序中。
5. 可重用模块的接口设计(callback函数)。
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8。
实验总结:首先利用callback函数使得linktable的查询接口更加通用,再者通过Debug调试的使用增强了代码调试的能力。
6. 函数的可重入性(reentrant)及线程安全浅析。
本次没有实验,但是老师主要介绍了多线程编程和线程安全方面的知识。
多线程和线程安全是当今计算机很重要的知识,通过本次学习初步了解了多线程编程和线程安全的重要性和解决方案,对以后的学习和工作都有着很重要的作用。
7. 子系统的可重用设计。
实验七:将menu设计为可重用的子系统。
实验总结:本次实验,添加了menu接口,扩展了命令行功能,使其可以输入带参数的命令。编写Makefile文件使编译变得简单。同时还有Liunx系统函数getopt的理解和使用。最后一次实验,综合了前面所学知识,完成目标需要全面设计和仔细分析调试。但是通过这次实验可以学到巨多知识。