实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

来源:互联网 发布:js table.rows 编辑:程序博客网 时间:2024/06/07 22:34

实验四:用可重用的链表模块来实现命令行菜单小程序V2.5

【清歌遏流云 + 《软件工程(C编码实践篇)》MOOC课程作业 http://mooc.study.163.com/course/USTC-1000002006 】

一、实验目的


为了加深理解熟悉链表模块化操作,使用链表来实现菜单小程序
用可重用的链表模块来实现命令行菜单小程序,执行某个命令时调用一个特定的函数作为执行动作;
使用时注意把链表模块的接口设计得足够通用,并且原有的功能保持不变;
在我们的menu程序中集成通用的Linktable模块;
理解并实现接口规范,巩固模块化设计思想。


二、实验要求


通过孟老师课堂视频了解到:

我们实验的评审对象主要是代码;
报告中要简述实验的思路和过程;
引用实验中自己添加或修改的部分关键代码;
至少有一张实验关键代码截图,至少有一张实验运行结果截图;
将自己在实验中遇到疑惑和困难,以及自己的处理方法,实验心得等写入实验报告;
实验报告的最后做一个简要的实验总结;
将实验报告的URL提交到网易云课堂MOOC平台,编辑成一个链接可以直接点击打开。


三、实验流程

按照孟老师视频中的建议:需要编写linktable.c、menu.c和linktable.h三个分离的源文件,从而实现逻辑分离和代码可重用的功能。

首先,我们先查看homework目录(本人该课程作业目录)下文件分布情况,接着在homework下新建lab4目录,并进入该目录编写代码:


接着,我们使用vim编辑linktable.c、linktable.h和menu_prog.c三个源文件,如下所示:


基本函数的实现文件linktable.c


头文件定义linktable.h


主程序menu_prog.c

编写代码完成后,编译(在这里编译要用 -lm链接动态库  因为函数实现里面用到math.h里的函数),并执行:


可以看到程序正常运行,并且结果符合预期。

将该目录下三个源文件和一个可执行文件添加到本地git仓库里面:


接着把本地仓库上传的文件推送到github上:


上传成功,可以看到github网站上正确显示了:


四、实验总结

本菜单小程序从最初的1.0版本到现在的2.5版本,功能是没有改变的,但是架构发生了翻天覆地的变化。在变化的过程中,根据孟老师的建议我不停地践行高内聚低耦合的设计原则,在面向过程的设计中引入了一些面向对象的设计原则,包括接口隔离和开放封闭原则等。经历了这几次实验的内容,加深了我对模块化设计的理解,在今后的实践过程中,我会不断应用所练习过的这些设计原则。

五、程序代码

本人github

阅读全文
0 0
原创粉丝点击