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