多项式的加法和乘法.doc_第1页
多项式的加法和乘法.doc_第2页
多项式的加法和乘法.doc_第3页
多项式的加法和乘法.doc_第4页
多项式的加法和乘法.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #include using namespace std; class term /定义多项式的项类 public: int coef; /多项式系数 int exp; /多项式指数 term( int c=0,int e=0):coef(c),exp(e) /初始化项的系数和指数 ; class PolyArith /定义多项式类 private: list m_poly_list_first; /存储第一个多项式 list m_poly_list_second; /存储第二个多项式 list m_poly_list_result; /用以存储运算结果 /多项式私有成员函数,用以乘法时的调用 list Poly_add(list&poly_list_first, list&poly_list_second) list poly_list_result; /用以存储运算结果 list:iterator iter_first = poly_list_first.begin(); list:iterator iter_second = poly_list_second.begin(); /该while循环针对两个链表迭代器都没有指到结尾的情形 while(iter_first != poly_list_first.end()& iter_second != poly_list_second.end() term t_temp; term t_first = (term)*iter_first; term t_second = (term)*iter_second; if(t_first.expt_second.exp) poly_list_result.push_back(t_first); iter_first+; else if(t_second.expt_first.exp) poly_list_result.push_back(t_second); iter_second+; else t_temp.coef=t_first.coef+t_second.coef; t_temp.exp=t_first.coef; poly_list_result.push_back(t_temp); iter_first+; iter_second+; /该for循环针对第一个多项式的迭代器没有指到结尾 /第二个指到结尾的情形 for(;iter_first != poly_list_first.end();iter_first+) poly_list_result.push_back(*iter_first); /该for循环针对第二个多项式的迭代器没有指到结尾 /第一个指到结尾的情形 for(;iter_second != poly_list_second.end();iter_second+) poly_list_result.push_back(*iter_second); return poly_list_result; public: /输入函数,用以输入多项式 void Poly_input() int n; cout请输入第一个多项式的项数:n; cout按降幂输入第一个多项式的每一项的系数和指数:; coutendl; for(int i=1;i=n;i+) term t_temp; cout请输入第i 项系数和指数,以enter为界:; coutt_temp.coef; cint_temp.exp; m_poly_list_first.push_back(t_temp); n = 0; cout请输入第二个多项式的项数:n; cout按降幂输入第二个多项式的每一项的系数和指数:; coutendl; for(int j=1;j=n;j+) term t_temp; cout请输入第j 项系数和指数,以enter为界:; coutt_temp.coef; cint_temp.exp; m_poly_list_second.push_back(t_temp); /输出函数,用以输出多项式 void Poly_output() /用以指向输出多项式的第一个元素 list:iterator iter = m_poly_list_result.begin(); /输出多项式的每一项 for(;iter!=m_poly_list_result.end();) term t_temp=*iter; coutt_temp.coefxt_temp.exp; if(+iter!=m_poly_list_result.end() cout+; coutendl; /加法函数,其基本思想同上边的私有成员函数Poly_add() /此处不带参数,多项式运算对象为私有数据成员 void Poly_add() list:iterator iter_first = m_poly_list_first.begin(); list:iterator iter_second = m_poly_list_second.begin(); while(iter_first != m_poly_list_first.end()& iter_second != m_poly_list_second.end() term t_temp; term t_first = (term)*iter_first; term t_second = (term)*iter_second; if(t_first.expt_second.exp) m_poly_list_result.push_back(t_first); iter_first+; else if(t_second.expt_first.exp) m_poly_list_result.push_back(t_second); iter_second+; else t_temp.coef=t_first.coef+t_second.coef; t_temp.exp=t_first.exp; m_poly_list_result.push_back(t_temp); iter_first+; iter_second+; for(;iter_first != m_poly_list_first.end();iter_first+) m_poly_list_result.push_back(*iter_first); for(;iter_second != m_poly_list_second.end();iter_second+) m_poly_list_result.push_back(*iter_second); /乘法函数,用以作多项式乘法 void Poly_multi() list poly_list_result; list:iterator iter_first = m_poly_list_first.begin(); for(;iter_first!=m_poly_list_first.end();iter_first+) list poly_list_temp; /用以存储多项式的中间运算结果 list:iterator iter_second = m_poly_list_second.begin(); for(;iter_second!=m_poly_list_second.end(); iter_second+) term t_temp; /用以存储项的中间运算结果 term t_first = (term)*iter_first; term t_second = (term)*iter_second; /此处实现多项式项的相乘 t_temp.coef = t_first.coef*t_second.coef; /系数相乘 t_temp.exp = t_first.exp + t_second.exp; /指数相加 poly_list_temp.push_back(t_temp); /此处调用私有成员函数Poly_add() poly_list_result = Poly_add(poly_list_temp,poly_list_result); /将运算结果赋值给私有数据成员,用以输出 m_poly_list_result = poly_list_result; ; /测试函数int main() cout*多项式的加法与乘法*; coutendl; PolyArith poly_a; poly_a.Poly_input();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论