实验题目:设计一数据结构可处理任意长度的整数 概要设计1.数据结构的定义采纳双向链表存储任意长整数。双向链表的定义如下:class DblList { private: DblNode *head, *tail; DblNode *current;int sign;public:DblList(); //构造函数 ~DblList(); //析构函数bool CreatList(string); //生成一个双向链表,存储整数int GetCount(); //猎取整数的长度void Insert(DblNode *); //从表尾插入一个结点 void InsertFront(DblNode *); //从表头插入void Clear(); //去除该链表void operator+(DblList &); //实现两个任意整数的加法void operator*(DblList &); //实现两个任意整数的乘法DblList & operator=(DblList &); //重载赋值运算符 int Compare(DblList &); //两个整数的绝对值比拟 void Display(); //任意长度整数的标准化输出};说明:数据的存储,无外乎顺序或者链表。顺序存储时,定义数组无法实现任意长度,而且需要预设一个 maxsize,不是特别的方便。所以采纳链式存储方式。而且任意长数据通过字符串输入。在链表的每一个结点中,数据域是在该数位上的数字大小。2.主要功能模块的功能 任意长整数的输入 任意长整数的标准化输出 两个整数的加法 两个整数的乘法三.详细设计〔主模块流程图〕五、 使用说明与测试结果1.使用说明:点 击 打 开 应 用 程 序 pro1.exe 。 依 次 输 入 任 意 两 个 整 数 〔 例 如123456,+1234567〕,按回车,会出现菜单,如下列图:按‘1’那么实现两整数的加法按‘2’那么实现两整数的乘法按‘#’完毕注:菜单可重复出现直至‘#’退出。实现加法,乘法如下列图:2.测试结果:(1) 123456 (2) +1234567 (3) -987654321 (4) 12a3 (5) + 注:当输入错误时,允许重新输入。六、 源程序/* 主函数 *//***************************************************/#include "cal.h"void main(){string s; string p; DblList list1;while(1){ //输入错误时,允许重新输入 cout<<"Input num1"<>s; bool ok1=list1.CreatList(s);if (!ok1){ cout<<"error!"<>p; bool ok2=list2.CreatList(p);if (!ok2){cout<<"error!"<