两个任意长的整数的求和运算中学_-.pdf

上传人:H****o 文档编号:95649361 上传时间:2023-08-29 格式:PDF 页数:34 大小:1.35MB
返回 下载 相关 举报
两个任意长的整数的求和运算中学_-.pdf_第1页
第1页 / 共34页
两个任意长的整数的求和运算中学_-.pdf_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《两个任意长的整数的求和运算中学_-.pdf》由会员分享,可在线阅读,更多相关《两个任意长的整数的求和运算中学_-.pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 软件综合课程设计 两个任意长的整数的求和运算 进制的转换 2014年6月一、问题陈述 二、需求分析 三、概要设计 四、详细设计 五、程序代码 六、运行结果与测试 七、设计体会与总结程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设

2、计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结两个任意长的整数的求和运算 一、问题陈述 设计一个程序实现两个任意长的整数的求和运算。利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。二、需求分析 1、本程序实现计算任意长的整数的加法运算 以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定 的运算命令,然后

3、程序就计算并显示出这两个数的运算。2、本演示程序中,集合的元素限定为数字字符0 9,输入字符可以 任意长,输入形式以“#”为结束标志,串中字符顺序不限,且允许出现重复字 符。3、利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形 式以#结束,每四位一组。三、概要设计 在此说明数据结构设计和关键的算法设计思想 Add()函数是实现该问题的主要函数即相加。typedef struct et 定义双循环链表的存储结构.void seti n(dtp*a)读入数据存储在双链表中的函数;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长

4、的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 如果4位间没有“,”隔开 输入第二个数,以#键结束 void prin t2(dtp a,i

5、nt len)输出运算结果,以每四位一个,样式;四、详细设计 程序流程图 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输

6、出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结如果4 位间没有“,”隔开 I.转换成4位一个逗 ,号的格式 卄 求和 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实

7、现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结五、程序代码#in clude程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据

8、结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 using n amespace std;#defi ne null 0 typedef struct et int data;struct et*pr,*n ext;dtp;/自定义双循环链表的存储结构 void seti n(dtp*a)char k;int w,le n=0;dtp*p;a-n ext=nu II;a-data=n ull;a-pr=nu II;coutdata=w;len+;i

9、f(a-n ext)a-n ext-pr=p;p-n ext=a-n ext;a-n ext=p;p-pr=a;k=0;II以#表示该数也讲读完;/读到字符,继续读下一个数;II读入一个四位数为它开辟 void add(dtp a,dtp b,dtp*c,i nt*le n)dtp*s,*r,*t;int i,j,sum,k=0,w=0;II两个数相加的函数 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上

10、输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结c-n ext=nu II;c-data=nu II;c-pr=n ull;s=a.n ext;r=b.n ext;while(s&r)进到下一个存储空间;i=s-data;j=r-data;sum=i+j+k;k=sum/10;s

11、um=sum%10;t=new dtp;t-data=sum;w=w+1;if(c-n ext)c-n ext-pr=t;t-n ext=c-n ext;c-n ext=t;t-pr=c;s=s-n ext;r=r-n ext;if(s|r)/如果有一个数还有更高位,则继续加上 去;if(s)while(s)t=new dtp;sum=s-data+k;/从最后一位开始加,若多于10,/直到一个数被加完为止 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入

12、和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结k=sum/10;sum=sum%10;t-data=sum;w=w+1;if(c-n ext)c-n ext-pr=t;t-n ext=c-n ext;c-n ext=t;t-pr

13、=c;s=s-n ext;if(r)程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程

14、序流程图如果位间没有隔开输入第二个数以键结while(r)t=new dtp;sum=r-data+k;k=sum/10;sum=sum%10;t-data=sum;w=w+1;if(c-n ext)c-n ext-pr=t;t-n ext=c-n ext;c-n ext=t;t-pr=c;r=r-n ext;if(k!=0)/如果最后还有就要多开辟 t=new dtp;t-data=k;w=w+1;个空间来存 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求

15、输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结if(c-n ext)c-n ext-pr=t;t-n ext=c-n ext;c-n ext=t;t-pr=c;*le n=w;void print1(dtp*w,int le

16、n)原样输出输入的数,略去结束符#;dtp*q;int i=le n;q=w-n ext;while(q-n ext)q=q-n ext;while(q-pr)q=q-pr;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键

17、的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结I-;if(i%4=0&i)cout,;coute ndl;void print2(dtp a,int len)输出运算结果,以每四位一个,样式;int i=le n;dtp*q;q=a.n ext;while(q)coutq-data;q=q-n ext;i-;if(i%4=0&i)cout,;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用

18、双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结void mai n()in t le ngth;char ma;dtp la,lb,lc;coutvv输入方式,按

19、从后面每四位之间一个字符,的形式.以#表示 输入结束:endl;cout请输入第一个数 a:endl;seti n(&la);cout请输入第二个数 b:ma;if(ma=n)con ti nue;else break;六、运行结果与测试 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入

20、形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意

21、长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结进制的转换 一、问题陈述 任意给定一个M进制的数x,请实现如下要求 1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方 法解决)。二、需求分析 1、应用环境设定:生活中我们需要将M进制的数转换为我们所需要的进制,从键盘任意输入一个 M进制的数

22、,对其进行转换成其他三种进制的数,然后再从电脑中显示出来,最终得到我们的结果。2、用户界面:命令行界面,根据自己的要求,对界面的提示进行操作,正确输入我们需要的数 据。3、输入方式:首先输入将转换的进制数,回车确认;然后输入确定的数据,回车确认;接着选 择要转换为的进制数,回车确认。输出方式:界面直接输出,启动程序后,按照界面提示,输入数据,直接回车确认,显示屏 即程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在

23、键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结输出我们的数据结果 数据储存方式:全部在内存存放,不使用硬盘上的文件或其他数据源,程序执行过程中和结束后 不保存数据。程序功能:(1)、根据界面提示输入M进制数据。(2)、对任意M进制数据实行非M进制的转换 三、概要设计 在此

24、说明数据结构设计和关键的算法设计思想 1、用数组实现该问题 D2M()函数和M2D()函数是实现该问题的主要函数。D2M()函数是实现十进制转换为其它进制的函数,它是将输入的十进制数 x 取首 先对需要转换的进制M取余,然后再对其取整,接着通过递归调用 D2M()函数 依次将得到的整数部分依次先取余后取整,并将所得的余数依次存入一个数组 中,然后逆向取出数组中的元素,即得到转换后的结果。而M2D()函数则是实现其他进制 M转换为十进制,并将其转换为非 M进制的 数。M进制转十进制则是从该 M进制数的最后一位开始算,依次列为第 0、1、2n 位并分别乘以M的 0、1、2n 次方,将得到的次方相加

25、便得到对应的 十进制数,再调用D2M()函数将其转换为非M进制的数。2、用栈实现该问题 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双

26、链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结同样是利用D2M()和M2D()两个函数实现。两个函数的思想同利用数组实现时 相同。只是栈具有后进先出的性质,故其用Pop()取数较数组的逆向取数方便些。(1)、SqStack定义栈,说明base为栈底指针,top为栈顶指针,stacksize 为栈容量;(2)int InitStack(SqStack&S)至U int DestroyStack(SqStack&S)六大模块分 别表示构造一个空栈、用 e 表示栈元素、插入元素、删除元素、判断栈是否为空 以及摧毁栈;(3)、SqStack S是指定义栈

27、S;(4)、D2M(int a,int b)的功能是将十进制数转换成 M进制的函数;(5)、M2D()的功能是M进制转换为十进制的函数;(6)、void main()是主函数。其功能是输入需要测试的数据以及需要转换的进 制,并在特定情形下调用D2M()函数和M2D()函数,而且实现M进制数向任意 非M进制数的转换。四、详细设计 程序流程图 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的

28、运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 数组程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示

29、程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 五、程序代码 A.用数组实现(文件名shuzu.cpp)#in clude#in clude若 N=10 输入将转换的进 制数 输出结果 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意

30、长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结#defi ne N 1000 int i,j,y,n,s;int m,r,remin der

31、;int x;/全局变量默认初始化为 0,不必再赋0 了 D2M(i nt g,i nt h)/十进制数转换为其他进制数 int cN;i=0;remin der=g%h;g=g/h;if(remin der 9)ci=remin der+55;i+;else ci=remin der;i+;if(g 0)D2M(g,h);for(j=i-1;j=0;j-)if(cj=65)printf(%c,cj);程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出

32、每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结else prin tf(%d,c j);return 0;M2D(i nt e)/二进制和八进制数转换为十进制数,并这转换为其他进制数 int aN;printf(”请输入%d进制位数:

33、n,m);scan f(%d,&n);printf(请输入%d进制的每位并使每位用空格隔开:n,m);for(i=0;i=0;i-)y+=(in t)pow(e,j)*ai;/强制类型转换,以免造成数据丢失 j+;printf(需要转换的进制 M:n);scan f(%d,&s);printf(请输出转换成%d进制的结果:n,s);D2M(y,s);return 0;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户

34、在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 H2D(i nt f)/十六进制数转换为十进制数,并转换为其他进制数 int bN;printf(”请输入d进制位数:n,m);scan f(%d,&n);printf(请输入%d进制的每位并使每位用空格隔开:n,m);f

35、or(i=0;i=0;i-)y+=(in t)pow(f,j)*bi;/强制类型转换,以免造成数据丢失 j+;printf(需要转换的进制 M:n);scan f(%d,&s);printf(请输出转换成%d进制的结果:n,s);D2M(y,s);return 0;int mai n()程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序

36、中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结printf(请给定一个需转换的进制 M(2or8or10or16):n);scan f(%d,&m);if(m=2|m=8)/二进制和八进制转换成十进制 M2D(m);else if(m=16)/十六进制转换成十进制 H2D(m);else if(m=10)/十进制转换成其它进制 printf(请输入一

37、个%d进制数:n,m);scan f(%d,&x);printf(请输入需要转换成的进制 M(2or8or16):n);scan f(%d,&r);printf(”请输出转换成%d进制的结果:n,r);D2M(x,r);return 0;B.用栈实现(文件名 zhan.cpp)#in clude#in clude#in clude 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令

38、然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结#in clude#define STACK_INIT_SIZE 100/存储空间初始分配量#define STACKINCREMENT 10/存储空间分配增量 int e,m,x,s,t;x 为要转换的十进制数,e为临时用的的int型变量 int r,y,i

39、,n;typedef struct int*base;/栈底 int*top;/栈顶 int stacksize;/栈容量 SqStack;int InitStack(SqStack&S)/构造一个空栈 S.base=(i nt*)malloc(STACK_INIT_SIZE*sizeof(i nt);if(!S.base)exit(0);/存储空间失败 S.top=S.base;S.stacksize=STACK_INIT_SIZE;return 0;int GetTop(SqStack S,i nt&e)程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程

40、序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结/若栈不为空,则用 e返回S的栈顶元素,并返回 0,否则返回1 if(S.top

41、=S.base)retur n 1;e=*(S.top-1);return 0;int Push(SqStack&S,int e)/插入元素e为新的栈顶元素 if(S.top-S.base=S.stacksize)/栈满,追加存储空间 S.base=(i nt*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(i nt);if(!S.base)return 1;/存储分配失败 S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;int Pop(SqStack&S,in

42、t&e)/若栈不空,则删除 S的栈顶元素,用e返回其值,并返回 0,否则返回1 if(S.top=S.base)retur n 1;e=*_S.top;return 0;int StackEmpty(SqStack S)/若栈空,则返回1,否则返回0 程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可

43、以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结if(S.top=S.base)return 1;return 0;int DestroyStack(SqStack&S)/销毁栈S,栈S不再存在 free(S.base);S.top=NULL;/防止程序后面不小心使用了它 S.base=S.top;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实

44、现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结SqStack S;/定义栈 S in t D2M(i nt a,i nt b)/十

45、进制转换成其他进制的函数 while(a)r=a%b;if(r 9)r=r+55;Push(S,r);/压入栈 a/=b;II转换成M进制 printf(该数转换成d进制的结果:,b);while(!StackEmpty(S)Pop(S,e);II 弹出栈 if(e=65)prin tf(%c,e);else D2M()程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计

46、算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结prin tf(%d,e);程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演

47、示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结 return 0;void M2D()/其他进制转换为十进制的函数 M2D()char c1000;printf(”请输入需要转换的数的位数:”);scan f(%d,&n);printf(请输入需要转换的数的每位并用空格隔开:”);f

48、or(i=0;i n;i+)scanf(%x,&ci);Push(S,ci);i=0;while(!StackEmpty(S)Pop(S,e);y+=(int)pow(m,i)*e;程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设

49、计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储结构读入数据存储在双链表中的函数输出运算结果以每四位一个样式四详细设计程序流程图如果位间没有隔开输入第二个数以键结int mai n()Ini tStack(S);/构造一个空栈 printf(请输入需要转换的进制 M(2or8or10or16):);scan f(%d,&m);if(m=10)/十进制转换成其他进制 printf(请给定一个需要转换的 10进制数:);scan f(%d,&x);printf(”请输入需要转换成的进制数:”);scan f(%d,&t);D2M(x,t);if(m=2|m=8|m=16)

50、/其他进制转换成十进制,且其他任意进制的 相互转换 M2D();printf(”给定要转换成的进制 M:);程序代码六运行结果与测试七设计体会与总结两个任意长的整数的求和运算一问题陈述设计一个程序实现两个任意长的整数的求和运算利用双向循环链表设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一终端上显示提示信息之后由用户在键盘上输入演示程序中规定的运算命令然后程序就计算并显示出这两个数的运算本演示程序中集合的元素限定为数字字符输入字符可以任意长输入形式以为结束标志串中字符顺序不限且允许出现重此明数据结构设计和关键的算法设计思想函数是实现该问题的主要函数即相加定义双循环链表的存储

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁