cout<<\ 请输入多项式P1的项数:\cin>>size1;
cout<<\ 请输入多项式P1的系数:\for(i=0;i cout<<\ 请输入多项式p1的指数\for(i=0;i cout<<\ 请输入多项式P2的项数:\cin>>size2; cout<<\ 请输入多项式p2的系数\for(i=0;i cout<<\ 请输入多项式p2的指数\ { } Polynominal p1,p2,p3; p1.Create(c1,e1,size1);//创建多项式p1 p2.Create(c2,e2,size2);//创建多项式p2 cout<<\多项式p1为\ p1.Print(); cout< cout< cin>>e2[i]; for(i=0;i - 13 - } p3 = p1 + p2; cout<<\多项式p1+p2为\显示多项式的和 p3 = p1 - p2; cout<<\多项式p1-p2为\显示多项式的差 p3 = p1*p2; cout<<\多项式p1*p2为\显示多项式的积 return 0; 在程序的主函数部分,对算法进行了验证。首先,输入了多项式的系数指数项数,接着定义三个对象p1,p2,p3,在定义过程中调用构造函数,进行初始化并动态分配了内存。调用Print()显示多项式,通过调用重载运算符实现操作,最后系统自动调用析构函数清理。 5 DOS界面程序运行结果及分析 5.1 程序运行结果 程序运行结果如图2所示。 - 14 - 图2 程序运行结果 通过计算对运行结果进行检测,经检测结果正确无误。 5.2运行结果分析 整个程序采用的是链表和动态内存分配方式。 将多项式的运算抽象到一个类Polynominal中,由该类生成三个对象p1,p2,,p3,同时由系统调用构造函数初始化,调用Creat()构造多项式,调用重载的运算符,实现加减乘的操作,由于涉及对象传值,调用拷贝构造函数。 6 基于MFC的图形界面程序开发 MFC的图形界面程序设计可在上述类设计的基础上进行改造,MFC的图形界面程序与DOS界面程序的主要不同点是:MFC图形界面程序与DOS界面程序的输入输出方式不同,DOS界面程序采用字符交互式实现数据输入输出,主要通过cin,cout等I/O流实现,而MFC的图形程序界面采用标准Windows窗口和控件实现输入输出,因此必须在MFC类的框架下加入上面所设计的矩阵和方程组类,并通过图形界面的输入输出改造来完成。 6.1 基于MFC的图形界面程序设计 (1)界面设计 首先在VC中建立MFC AppWizard(exe)工程,名称为一元稀疏多项式运算,并在向导的Step1中选择 Single document,即建立基于对话框的应用程序,如下图4~5所示。 - 15 - 图4 建立MFC AppWizard(exe)工程 图5 建立基于对话框的应用程序 将对话框资源中的默认对话框利用工具箱改造成如下界面,如图6所示。 - 16 - 图6 方程组求解程序界面设计 图6所示的界面中包含了3个Group Box(分组框),4个Static Text控件, 5个Button控件,和9个Edit Box控件,控件的基本信息列表如下表1所示。 表1 控件基本信息 控件类别 控件ID 控件Caption 项系数 项指数 Static Text IDC_STATIC 项系数 项指数 IDC_addmenber1 IDC_addmenber2 Botton IDC_add IDC_sub IDC_multiply IDC_EDIT1 IDC_EDIT4 添加 添加 加法运算 减法运算 乘法运算 - 17 - 说明 显示多项式p1 显示多项式p2 显示加法运算结果 显示减法运算结果 显示乘法运算结果 Edit Box IDC_EDIT7 IDC_EDIT8 IDC_EDIT9