设计题目:大整数的四则运算1.功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构。课程设计要求:采用模块化程序设计源程序中应有足够的注释必须上机调试通过注重算法运用,优化存储效率与运算效率)()(需提交源程序含有注释及相关文件数据或数据库文件;提交设计报告书。2.总体结构:数据初判断运算符号乘法除法减法退出加法转变为非正整转变为正整数转变为流程图:概要设计:3.1)加法运算利用两个整形数组分别存放两个数a和b的每一位的数值,最低位存放符号。如果a和b同号,从最低为开始计算,如果有进位则保存在高一位,本为则减10,然后反序将计算后的各个位的数值保存在一个数组c并输出,如果a和b都是负数则在前面要输出负号,函数的返回值为c的位数。如果a和b异号,也即两个正整数相减,从最低位开始相减,如果要借位则本位加10再相减,高一位要减1,然后反序将计算后的各个位的数值保存在一个数组c并输出,在前面要输出相应的符号位。2)减法运算可将减法运算转化为加法运算,只要将被减数的符号改变即可。3)乘法运算符号存放在最低位,将其中一个数a的每一位分别乘以另一个数b的每一位,并将结果保存在数组c中,然后重复计算a的下一位跟b的每一位的乘积,把上一次计算保存在c的值加上本次计算后的值,并保存在c自身中,直到a的最高位,最后输出符号和相应的计算结果。4)除法运算利用乘法和减法,将除数分别乘以1到9,直到其值大于等于被除数的对应的数,然后被除数对应的数减去其乘积,保存在一个数组中,下一次循环把它归到被除数中继续做除法运算,最后得到余数并输出。4.函数功能:voidinit(inta[],intb[],int*p1,int*p2)1.功能说明:读入所要计算的数值,数据初始化2.intplus(inta[],intb[],intc[],intm,intn)3.功能说明:两个正整数相加4.3.voidchange(inta[],intb[],intm,intn)功能说明:当两异号数相加时,改变其符号以符合加法运算5.intminus(inta[],intb[],intd[],intm,intn)功能说明:两个正整数相减6.5.voidminusfun(inta[],intb[],intd[],intm,intn)功能说明:判断两个异号数的相加方式7.intmulti(inta[],intb[],intc[],intm,intn)功能说明:两个正整数相乘8.7.voidprint(longc[],intflag)longc[]数组flag(1为负)的功能说明:打印带符号8.intwrite(longa[],intflag)功能说明:将键盘敲入的数字按4位一组放入longa[],且将符号放入flag9.voidmul(longa[],intfirst,intlast,longb[],longc[])c答案放到b,位乘以first到last的第,a功能说明:乘法.10.intcompara(longa[],intfirst,intlast,longb[])功能说明:比较数组a,b大小,firstlast分别为a的最高最低位11.intminusd(longa[],intfirst,intlast,longb[],longc[],intflag)功能说明:a为被减数,firstlast为a最高最低位,b为减数,c为差,flag为符号12.voiddiv(longa[],longb[],longc[],intfa)功能说明:除法,a除以b的值放入c,fa为a符号13.voidmenu()功能说明:打印菜单函数14.voidmain()功能说明:主函数,调用其余函数,计算相应功能的值并输出。5.源程序:#include<iostream.h>#include<math.h>#include<stdio.h>#defineMAX40//可以修改,此时最大运算位数为四十位#defineN10//此处应为最大位数除以4voidinit(inta[],intb[],int*p1,int*p2)//输入{inti,j;charr,s;for(i=0;i<MAX;i++){a[i]=0;b[i]=0;}牰湩晴尨请输入处理的第一个数的值:);r=getchar();if(r==45){a[0]=r;for(i=1;(r=getchar())!='\n';i++)a[i]=r-48;}else{a[1]=r-48;for(i=2;(r=getchar())!='\n';i++)a[i]=r-48;}*p1=i;牰湩晴尨请输入处理的第二个数的值:);s=getchar();if(s==45){b[0]=s;for(j=1;(s=getchar())!='\n';j++)b[j]=s-48;}else{b[1]=s-48;for(j=2;(s=getchar())!='\n';j++)b[j]=s-48;}*p2=j;}intplus(inta[],intb[],intc[],intm,intn)//加法运算{intd[MAX]={0},i,j,k;for(i=0;i<MAX;i++)c[i]=0;if(a[1]==0){for(i=0;i<n;i++)c[i]=b[i];return(i);}if(b[1]==0){for(i=0;i<m;i++)c[i]=a[i];return(i);}for(i=m-1,j=n-1,k=1;i>0j>0;i--,j--,k++){d[k]=a[i]+b[j]+d[k];if(d[k]>9){d[k+1]++;d[k]=d[k]-10;}}wh...