预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

目录 TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc311798574"目录 1 HYPERLINK\l"_Toc311798575"1设计要求 2 HYPERLINK\l"_Toc311798576"2开发环境与工具 2 HYPERLINK\l"_Toc311798577"3设计原理(算法工作原理) 2 HYPERLINK\l"_Toc311798578"4系统功能描述与软件模块划分 2 5设计核心代码…………………………………………………......3 6HYPERLINK\l"_Toc311798579"设计结果及验证 7 HYPERLINK\l"_Toc311798582"7软件使用说明 7 HYPERLINK\l"_Toc311798583"8参考资料 9 9设计体会..................................................................................9 10源代码………………………………………………………………………………….10 一、设计要求 实现大整数(128位)的基本运算、如加、减、乘、除运算; 实现大整数的存取; 界面简洁、交互操作性强。 二、开发环境与工具 Windows8.1、visualstudio2012 设计原理(算法工作原理) 大整数的概念“大整数”一般指位数达到十几或成百上千甚至更多的整数,而更准确地说,应该是指普通程序设计语言中的整数类型值集范围以上的整数。如标准的C的Unsignedlong型整数所能处理的整数范围最大,有效数位也最多,为4294967295(QUOTE)占据32位(4个字节)存贮空间,此时,大整数就是指十位以上的十进制整数了。“大整数”运算是指“大整数”之间的加减乘除等运算结果依然保持其数学理论上准确和精确的结果。 我们采用数组存储的方式存储,并且存储的位数不能大于256位,否则会发生溢出错误而导致大整数处理错误。对于负数,程序将不能处理,可以输入,计算结果输出为整数。 系统功能描述与软件模块划分 相关函数介绍 voidhadd(int*xx1,int*xx2,int*xx3,intxn1,intxn2,int&xn3)/*加法操作*/ voidhsub(int*xx1,int*xx2,int*xx3,intxn1,intxn2,int&xn3)/*减法操作*/ voidhmul(int*xx1,int*xx2,intxn1,int&xn2,intxn)/*乘法操作*/ inthdiv(int*xx1,int*xx2,int*xx3,intxn1,intxn2,int&xn3)/*除法操作*/ voidshow(int);//显示 设计核心代码 1、加法 在大整数四则运算中,加法是基本的运算,也最容易实现。 voidhadd(int*xx1,int*xx2,int*xx3,intxn1,intxn2,int&xn3)/////////////////////////////////*加法操作*/ { inti,j,k=0; if(xn1>xn2) { xn3=xn1;//xn3为过渡位,都表示最大位数 for(i=0;i<xn1-xn2;i++) xx2[Max-xn3+i]=0;//对小数xx2高位填充0,直至位数相等 } else { xn3=xn2; for(i=0;i<xn2-xn1;i++) xx1[Max-xn3+i]=0;/*把短的字符串前补0*/ } for(i=0;i<xn3;i++) { j=xx1[Max-1-i]+xx2[Max-1-i]+k;//从数组空间的最高位开始加,最右边 k=j/10;/*表示进位*/ xx3[Max-1-i]=j%10;//值的最右边开始,填满结果 } if(k&&(Max-xn3>=1))//有进位且结果未满256 { xx3[Max-1-xn3]=k;//将结果填满 xn3++; }/*增加一位存放最高位*/ } voidlarnum::add(void) { hadd(x1,x2,x3,n1,n2,n3); } 2、减法 voidhsub(int*xx1,int*xx2,int*xx3,intxn1,intxn2,int&xn3)////////////////////////*减法操作*/ { inti,j,k=0; xn3=xn1;//将被减数位数付给结果的位数 for(i=0;i<x