大整数乘法MFC实现
Class BigDlg        Class BigNum
类Class BigDlg
功能说明:显示用户界面,获得用户输入信息,在用户确定输入的时候把用户输入信息
写入文件。输入信息经过类Class BigNum的处理,把结果返回Class BigDlg类,Class BigDlg类再负责把计算结果写入文件,同时在屏幕上显示输出结果。
主要变量说明:CString  m_strInput1, CString  m_strInput2,为对话框上的两个EDIT
编辑框控件的控件变量,以字符串的形式来记录用户输入的两个大整数。
cstring转为int类Class BigNum
功能说明:接收从Class BigDlg类传进来的两个字符串型大整数m_strInput1和
m_strInput2,实现两个大整数的加法、减法和乘法运算,其中减法的运算结果是乘法运算中需要用到的参数,加法是把乘法的递归结果加起来得到最终的结果。
主要变量说明:int A[256], int B[256], int C[256], int D[256] 四个整型的数组均被初始化
为0,A[256]和B[256]为一组,作为函数Dev(CString str,int n1[256],n2[256])中的两个整型数组参数,用来存储Dev(CString str,int n1[256],n2[256])把传进来的CString  m_strInput1转化后的整形数据。同样,A[256]和B[256]为一组存储CString  m_strInput2转化后的整形数据。
生命周期:从程序开始运行时开始,程序结束时结束
时序图:
                   
                 
                            Class        Class        输 出
                            BigDlg      BigNum       
                              信 息 反 馈
Class BigDlg
                                       
类的方法说明:
    Class BigDlg 类对用户来说响应四个按钮消息Class BigDlg ::OnBtnInput(),    Class BigDlg ::OnBtnGo( ),Class BigDlg ::OnClear(  ), Class BigDlg ::OnCancel(  )。
    Class BigDlg ::OnBtnInput():响应按钮“输入”的消息映射,实现把用户输入的数据传递给对应的EDIT编辑框控件变量,同时实现把用户输入的数据写入文件。
Class BigDlg ::OnBtnGo( ):响应按钮“计算”的消息映射,调用Class BigNum类的成员函数Class BigNum::Mult(int x[256],int y[256],int n)得到计算的结果,把结果写入文件并在屏幕上显示。
    Class BigDlg ::OnClear(  ):响应按钮“清空”的消息映射,当用户单击此按钮时,输入、输出EDIT编辑框中的数据被清空,以便于用户重新开始计算。
    Class BigDlg ::OnCancel(  ):响应按钮“退出”的消息映射,当用户单击此按钮时,程序退出运行。
Class BigNum
   
类的方法说明:
    Void Dev(CString str,int n1[256],n2[256])
    对输入的大数进行二分。输入的大数是字符串型,用这个函数把字符串型大数二分,并把二分后的两个数转化为整型分别存入到整型数组n1[256]和n2[256]中,每个数组元素存一位数字,若两个数组长度不相等,则短的数组高位补0,使两个数组元素个数相等。
    Add(int m1[256],int m2[256],int m)
    实现两个大整数的加法运算,参数m1[256],m2[256]传递的是经过二分后的两个整型数组,k为数组的长度,运算时从低位向高位一位一位的带进位的加,函数的返回值为两个整型数组相加后的结果,结果仍然保存在一个整型数组中。
    Sub(int k1[256],int k2[256],int k)
    实现两个大整数的减法运算,参数k1[256],k2[256]传递的是经过二分后的两个整型数组,t为数组的长度,运算时从低位向高位一位一位的带进位的减,函数的返回值为两个整型数组相减后的结果,结果仍然保存在一个整型数组中。
    Mult(int x[256],int y[256],int n)
    实现两个大整数的乘法运算,函数要进行递归调用。在程序中调用这个函数之前,先把要进行运算的两个大数由字符串型转化为整型,分别存在两个整型数组中。而此函数首次调用要传递的两个参数就是用户输入的两个整数。在函数中还要进行自身的递归调用,函数Mult(int x[256],int y[256],int n)的最终返回结果是两个大数运算的最终结果。            递归时要进行中间结果的二分、加、减运算,因此递归时要反复调用                                  Void De
vide(CString str,int n1[256],n2[256]),Add(int m1[256],int m2[256],int m),  Sub(int k1[256],int k2[256],int k)三个函数。
输入、输出及使用规则:
    输入:输入的数不能超过256位,只能输入数字,输入的两个数据以字符串型保存在相应得控件变量中,同时写入到文件和中.
    输出:以字符串表示相应得大整数,在“结果”编辑框中显示计算结果,同时结果被保存在文件中。
   
    运行界面:
    使用说明:在运行界面里的相应位置输入需要计算的两个数,输完后点击“输入”按钮,然后,点击“计算”按钮,可以在“结果”编辑框里看到运算结果,也可以打开程序所在的位置,在文本文件中查看计算结果。
   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。