软件工程第五次实验
来源:互联网 发布:网络借贷陷阱 编辑:程序博客网 时间:2024/06/04 23:38
一、实验目的
给Linktable增加Callback方式的接口;
进一步改进Linktable的Callback方式的接口;
用callback函数实现的多态浅析;
信息隐藏。
二、实验要求和内容
给lab5-1.tar.gz(在实验楼Linux虚拟机环境下~/se_files/目录下)找bug,quit命令无法运行的bug;
将lab5-1.tar.gz中的代码(即解压后lab5.1/目录下的源文件)直接放到Code/shiyanlou_cs122/lab5/目录下继续完成后面的实验内容;
利用callback函数参数使Linktable的查询接口更加通用;
注意接口的信息隐藏。
三、主要的程序代码段
1.quit命令的Bug解决
SearchLinkTableNode()函数
tLinkTableNode * SearchLinkTableNode(tLinkTable *pLinkTable, int Conditon(tLinkTableNode * pNode)){ if(pLinkTable == NULL || Conditon == NULL) { return NULL; } tLinkTableNode * pNode = pLinkTable->pHead; while(pNode != pLinkTable->pTail) { if(Conditon(pNode) == SUCCESS) { return pNode; } pNode = pNode->pNext; } return NULL;}
发现遍历链表的循环语句while()条件结束的标志为找到表结尾,这就导致了程序在遍历到表结尾最后一个命令quit的时候,直接结束了,因此需要修改while语句结束的条件为pNode != NULL,即可。
2.利用callback函数参数使Linktable的查询接口更加通用
先将cmd字符串取消定义为全局变量,然后修改callback函数。
tLinkTableNode * SearchLinkTableNode(tLinkTable *pLinkTable, int Conditon(tLinkTableNode * pNode, void* args), void* args);
3.信息的隐藏
在linktable.c中定义Linktable结构体,而在linktable.h中只留下LinkTable结构的声明。
typedef struct LinkTable tLinkTable;struct LinkTable{ tLinkTableNode *pHead; tLinkTableNode *pTail; int SumOfNode; pthread_mutex_t mutex;};
4、实验的运行结果及分析
运行结果截图
5.实验总结
此次实验由于家里出了点事是在荆州老家完成的,没法当面找同学帮忙,只能线上询问同学搜集资料,收获也是不错的。。。。。
- 软件工程第五次实验
- 长春大学软件工程数据结构第五次实验
- 软件工程第四次实验
- 软件工程第七次实验
- 第五次实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次实验报告
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 第五次上机实验
- 修改Linux的host文件
- cgi ,fastcgi,PHP-FPM和php-cgi
- Android 如何做到隐藏手机底部虚拟按键?
- 006_HTTP_GET_POST
- yilide huawei gongzuo
- 软件工程第五次实验
- 三子棋
- shell参数的输入与运用
- ligerUI中ligerGrid的简易用法
- 多线程题例
- cocos2dx控件-----ListView的使用(label自动换行)
- day02-Linux的文件系统(目录树)
- 二叉树的层次遍历及求节点个数的算法
- python itertools的函数(含有排列组合函数)