大整数乘法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小时内删除。
发表评论