欢迎来到天天文库
浏览记录
ID:47503584
大小:127.00 KB
页数:14页
时间:2020-01-12
《c++实现任意长整数的四则运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、..实验题目:设计一数据结构可处理任意长度的整数概要设计1.数据结构的定义采用双向链表存储任意长整数。双向链表的定义如下:classDblList{private:DblNode*head,*tail;DblNode*current;intsign;public:DblList();//构造函数~DblList();//析构函数boolCreatList(string);//生成一个双向链表,存储整数intGetCount();//获取整数的长度voidInsert(DblNode*);//从表尾插入一个结点voidInsertFront(DblNode*);//从表
2、头插入voidClear();//清除该链表voidoperator+(DblList&);//实现两个任意整数的加法voidoperator*(DblList&);//实现两个任意整数的乘法DblList&operator=(DblList&);//重载赋值运算符intCompare(DblList&);//两个整数的绝对值比较voidDisplay();//任意长度整数的标准化输出};说明:数据的存储,无外乎顺序或者链表。顺序存储时,定义数组无法实现任意长度,而且需要预设一个maxsize,不是特别的方便。所以采用链式存储方式。而且任意长数据通过字符串输入。在链表
3、的每一个结点中,数据域是在该数位上的数字大小。2.主要功能模块的功能u任意长整数的输入word教育资料..u任意长整数的标准化输出u两个整数的加法u两个整数的乘法三.详细设计(主模块流程图)五、使用说明及测试结果1.使用说明:word教育资料..点击打开应用程序pro1.exe。依次输入任意两个整数(例如123456,+1234567),按回车,会出现菜单,如下图:按‘1’则实现两整数的加法按‘2’则实现两整数的乘法按‘#’结束注:菜单可重复出现直至‘#’退出。实现加法,乘法如下图:word教育资料..2.测试结果:(1)123456(2)+1234567(3)-98
4、7654321(4)12a3(5)+注:当输入错误时,允许重新输入。五、源程序/*主函数*//***************************************************/#include"cal.h"voidmain(){strings;stringp;DblListlist1;word教育资料..while(1){//输入错误时,允许重新输入cout<<"Inputnum1"<>s;boolok1=list1.CreatList(s);if(!ok1){cout<<"error!"<5、"num1:";list1.Display();break;}}DblListlist2;while(1){cout<<"Inputnum2:"<>p;boolok2=list2.CreatList(p);if(!ok2){cout<<"error!"<6、17、.num1+num28、"<9、2.num1*num210、"<11、#.exit12、"<>choose;if(choose=="1"){word教育资料..list1+list2;break;}elseif(choose=="2"){list1*list2;break;}elseif(choose=="#"){return;}else{cout<<"输入有误,请重新输入!13、!"<#include#includeusingnamespacestd;structDblNode{intdata;DblNode*prior;DblNode*next;};boolIsNum(chara){//判断字符a是否是便是数字ints=a-'0';if(s>=0
5、"num1:";list1.Display();break;}}DblListlist2;while(1){cout<<"Inputnum2:"<>p;boolok2=list2.CreatList(p);if(!ok2){cout<<"error!"<6、17、.num1+num28、"<9、2.num1*num210、"<11、#.exit12、"<>choose;if(choose=="1"){word教育资料..list1+list2;break;}elseif(choose=="2"){list1*list2;break;}elseif(choose=="#"){return;}else{cout<<"输入有误,请重新输入!13、!"<#include#includeusingnamespacestd;structDblNode{intdata;DblNode*prior;DblNode*next;};boolIsNum(chara){//判断字符a是否是便是数字ints=a-'0';if(s>=0
6、1
7、.num1+num2
8、"<9、2.num1*num210、"<11、#.exit12、"<>choose;if(choose=="1"){word教育资料..list1+list2;break;}elseif(choose=="2"){list1*list2;break;}elseif(choose=="#"){return;}else{cout<<"输入有误,请重新输入!13、!"<#include#includeusingnamespacestd;structDblNode{intdata;DblNode*prior;DblNode*next;};boolIsNum(chara){//判断字符a是否是便是数字ints=a-'0';if(s>=0
9、2.num1*num2
10、"<11、#.exit12、"<>choose;if(choose=="1"){word教育资料..list1+list2;break;}elseif(choose=="2"){list1*list2;break;}elseif(choose=="#"){return;}else{cout<<"输入有误,请重新输入!13、!"<#include#includeusingnamespacestd;structDblNode{intdata;DblNode*prior;DblNode*next;};boolIsNum(chara){//判断字符a是否是便是数字ints=a-'0';if(s>=0
11、#.exit
12、"<>choose;if(choose=="1"){word教育资料..list1+list2;break;}elseif(choose=="2"){list1*list2;break;}elseif(choose=="#"){return;}else{cout<<"输入有误,请重新输入!
13、!"<#include#includeusingnamespacestd;structDblNode{intdata;DblNode*prior;DblNode*next;};boolIsNum(chara){//判断字符a是否是便是数字ints=a-'0';if(s>=0
此文档下载收益归作者所有