实用文档
实验题目:设计一数据结构可处理任意长度的整数
概要设计
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 \
void main(){ string s; string p; DblList list1; while(1){ //输入错误时,允许重新输入 cout<<\ cin>>s; bool ok1=list1.CreatList(s); if (!ok1) { cout<<\ } else{ cout<<\ list1.Display(); break; } } DblList list2; while(1){ cout<<\ cin>>p; bool ok2=list2.CreatList(p); if (!ok2)
标准
相关推荐: