一元多项式的计算实验报告
计算机学院
工程实践
一元多项式的计算
总 报 告
小组序号: 编 撰 人: 年 级 班 级: 指导教师: 提交日期:
项目组成员分工
表 1 项目组成员分工
程序功能
(程序实现的功能,功能结构图)
实现功能:一元多项式的加、减、乘运算
功能结构图:
程序设计简介
(包括:类及其属性和方法、类之间关系、关键代码等的说明)
class Node
{
public:
Node();
Node(float c, int e, Node* next);
~Node(){};
float coef; //系数
int exp; //指数
Node* Next; //指向下一项的指针
friend class Polynominal;
};
节点类,储存一元多项式每一项的信息。该内含有两个构造函数,一个析构函数及存储系数、指数和Next指针等成员变量。与Polynominal是友元关系,允许Polynominal的访问。
具体成员函数如下:
Node::Node(){}
默认构造函数。
Node::Node(float c, int e, Node* next){
coef = c;
exp = e;
Next = next;
}
重载的自定义构造函数,用于给成员变量coef、exp和Next存入数据,Next指向传参来的next指针指向的地址,用于构造链表。
2.
class Polynominal{
public:
Polynominal();
Polynominal(Polynominal a); //拷贝构造函数
void GetMSG(CString TempPloy); //获取由对话框输入的字符串并处理
CString Output_Node(); //输出最后结果
void PolyAdd(Polynominal a, Polynominal b); //加法
void PolySubtract(Polynominal a, Polynominal b); //减法
void PolyMultiply(Polynominal a, Polynominal b); //乘法
void PolySort(); //排序函数,用于乘法之后的按指数排序
void OutFile(); //文本输出函数
void OutFile(Polynominal a, Polynominal b, string ch); //重载文本输出函数
void OpposeCoef(Polynominal a, Node *temp); //系数取反,用于减法运算
Node theList; //头节点
ofstream FOut; //输出流
};
此类用于构造一元多项式。包括加、减、乘各各功能函数,还有两个帮助运算的辅助函数,以及界面输入输出和文本输出函数。成员变量有头节点和输出流。
具体成员函数如下:
Polynominal::Polynominal(){}
默认构造函数
Polynominal::Polynominal(Polynominal a){
Node* temp = a.theList.Next;
Node* tempNode = theList;
for (; temp != NULL;){
tempNode-Next = new Node(temp-coef, temp-exp, NULL);
temp = temp-Next;
tempNode = tempNode-Next;
}
}
拷贝构造函数,用于计算时对象间的赋值,防止误改数据。
void Polynominal::GetMSG(CString TempPoly){
TempPoly.Remove(_T(^));
Node* TempNode = theList;
int i = 0;
for (i;iTempPoly.GetLength(); ){
CString temp1 ;
CString temp2 ;
int j = 1;
if (TempPoly.GetAt(i) ==_T(-)){
temp1 = temp1 + TempPoly.GetAt(i);
原创力文档

文档评论(0)