当前位置: 首页>视频演示 > VU4功能演示 > 表格驱动的C/C++单元测试(3):一行数据构建出链表

表格驱动的C/C++单元测试(3):一行数据构建出链表

  • 视频介绍
       
        C语言单向链表的构建很简单:
        1) 不需要设置节点的成员值时,将最后节点指向下一节点的指针设为NULL。例如,需要3个节点,将第3个节点的pNext设为NULL就行。
        2) 需要设置节点的成员值时,直接给节点的成员设值。
        3) 需要构成循环链表(环形链表)时,使用右键菜单的“调用脚本”命令,调用拷贝指针脚本(ptrcpy),将最后节点指向下一节点的指针设为指向首节点。
        
        C语言双向链表,或C++链表类(常用的是模板类,如VC的CList类),用回调赋值来实现表格驱动。回调赋值是指调用一个可修改的回调函数来实现表格数据和实际数据的双向转换,例如,数组是结构确定的集合,易以在表格中展现和编辑,链表是结构不确定的集合(不同的链表类有不同的内部结构和实现方式,甚至您自己也可以写一个链表),用一个回调函数,在输入时,将数组中的对象保存到链表中,在输出时,将链表中的对象保存到数组中,这样就实现了以数组的方式操作链表中的对象。

        回调赋值有以下特点:
        1)常用的需要回调赋值的类,VU已经自带。例如,VC的集合类,在数组表格中直接看到的就是数组。
        2)自己添加也不难,只需要自行编写输入(表格数据->实际数据)、输出(实际数据->表格数据)代码,其他自动生成。
        3)一处编写,全公司可用。不会编写可以找技术支持帮忙。
        4)回调赋值对输出的判断也有效,例如,可以用一行输出数据判断链表中的数据对不对。

        视频中,用一行数据构造成如下链表。如果用常规的编写代码的方式来实现,加一个项大概要三行代码。
        CJobList jobList;
        GetJobList(&jobList, &info);
        其中,CJobList定义如下:
        typedef struct tagJobInfo
        {
        CString sort;
        CString title;
        CString content;
        }JobInfo;
        typedef CList CJobList;
        由于代码只用到成员title,表格中只需给title赋值,例如,title填"aa","bb","cc",就可以构建出jobList中的数据,包含三个JobInfo*类型的数据项,每项的title分别为:"aa","bb","cc"。

        下一节,演示自行添加回调赋值,处理需要从文件中读数据来初始化的类型。

讲师介绍

Copyright 2005-2021 KaileSoft All Right Reserved

  广州凯乐软件技术有限公司 粤ICP备17061168号