




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与应用系程序类课程设计设计报告书题 目: 多项式的运算 指导教师: 宋涛 姓 名: 潘彬彬 学 号: 111006420 日 期: 2012/5/16 计算机科学与应用系 2011-2012学年第二学期一、 需求分析输入部分,要求用户能从屏幕上输入两个一元多项式。如多项式a为:x3+2x2+4;多项式b为:-x3+4x2+2。程序通过语句得到这两个字符串,进行解析,分解出系数和指数,存储在不同的线性表la,lb中。然后,程序基于线性表la、lb来实现多项式的加、减、乘、运算。最终,输出部分将得到的运算结果输出,如上述多项式a和b的和为:6x2+6。二、 系统主要功能用于一元多项式的加减乘运算。三、 流程图从屏幕输入多项式a和b分析a、b,并将指数、系数对存储到线性表la、lb中多项式加法多项式减法多项式乘法将结果显示出来图1.多项式运算的流程图四、 数据结构设计1. 定义多项式类class polynomial;2. 把多项式的指数和系数结合定义为一个类class polynode;3. 用链表保存多项式list l;五、 类设计1.多项式的项类指数、系数可以描述多项式的一项,作为一个整体来存储;class polynodepublic:double xishu;/系数int zhishu;/指数public:polynode(void);polynode(void);polynode(double xishu, int zhishu)/构造函数,为xishu、zhishu赋值bool operator (polynode b)const /判断两项是否满足大的关系,指数大者大bool operator= (polynode b)const/判断两项是否满足等的关系;2.多项式类在多项式类中,必须有存储多项式各项的线性表,还必须有实现多项式运算的成员函数。类的定义如下:class polynomial/多项式类,其中实现了多项式的加减乘除。private:list l;/用于存放多项式的链表public:polynomial()/构造函数;polynomial()/析构函数l.clear();/清空链表;void print()/输出多项式void insert(polynode e) /插入一个结点,使得插入后表中结点仍然按指数有序还要有合并同类项的功能 void insert(double xishu,int zhishu) polynomial operator+(polynomial b) /重载多项式的加法运算符 polynomial operator-(polynomial b) /重载多项式的减法运算符polynomial operator*(polynomial b) /重载多项式的乘法运算符void input(polynomial &p) /输入多项式;六、 主要算法设计1.用链表保存两个多项式(list l;);2.将多项式的项封装为一个类(class polynode);3.用运算符重载的方式实现多项式的加减乘运算,创建一个用于遍历的指针对链表进行遍历(list:iterator i;),先将指数相同的项的系数相加 if(i-zhishu =e.zhishu )/合并同类项i-xishu+=e.xishu;if(i-xishu=0)l.erase(i);(即运算之前合并同类项),指数不同按大小顺序插入; else if(i-zhishu e.zhishu )l.insert(i,e);4.减法时将另一个多项式每一项系数乘个-1再相加; polynode temp=*i;temp.xishu*=-1;t.insert(temp);5.乘法用第一个多项式的每一项与第二个多项式的每一项相乘即系数相乘、指数相加。 for(i=b.l.begin();i!=b.l.end();i+)for(j=l.begin();j!=l.end();j+) polynode temp;temp.xishu=i-xishu*j-xishu;temp.zhishu=i-zhishu+j-zhishu;if(temp.xishu)t.insert(temp);七、 主要代码1.多项式的输出 void print()list:iterator i;if(l.size()=0)cout0endl;return;i=l.begin();coutxishuxzhishu;/打印多项式的第一项i+;for(;i!=l.end();i+)/打印多项式的其他项if(i-xishu0)cout+xishuxzhishu;elsecoutxishuxzhishu;coutendl;2.插入与合并 void insert(polynode e)/插入一个结点,使得插入后表中结点仍然按指数有序/还要有合并同类项的功能list:iterator i;for(i=l.begin();i!=l.end();i+)if(i-zhishu =e.zhishu )/合并同类项i-xishu+=e.xishu;if(i-xishu=0)l.erase(i);break;else if(i-zhishu e.zhishu )/找到插入位置,插入l.insert(i,e);break;if(i=l.end()l.push_back(e);/print();void insert(double xishu,int zhishu)polynode e(xishu,zhishu);insert(e);3.加法 polynomial operator+(polynomial b)polynomial t;t.l=l;list:iterator i;for(i=b.l.begin();i!=b.l.end();i+)t.insert(*i);return t;4.减法 polynomial operator-(polynomial b)polynomial t;t.l=l;list:iterator i;for(i=b.l.begin();i!=b.l.end();i+)polynode temp=*i;temp.xishu*=-1;t.insert(temp);return t;5.乘法polynomial operator*(polynomial b)polynomial t;list:iterator i,j;for(i=b.l.begin();i!=b.l.end();i+)for(j=l.begin();j!=l.end();j+) polynode temp;temp.xishu=i-xishu*j-xishu;temp.zhishu=i-zhishu+j-zhishu;if(temp.xishu)t.insert(temp);return t;6.多项式的输入void input(polynomial &p)cout请输入多项式的系数和指数,以空格隔开,0 0表示结束:xishuzhishu;if(xishu=0 & zhishu=0)break;p.insert(xishu,zhishu);7.主函数int main()polynomial p,q,r;while(1)cout1:输入多项式endl;cout2:加法endl;cout3:减法endl;cout4:乘法endl;cout5:退出endl;coutt;if(t=1)cout请输入第一个多项式的信息endl;input(p);cout请输入第二个多项式的信息endl;input(q);else if(t=2)r=p+q;coutp=;p.print();coutq=;q.print();coutp+q=;r.print();else if(t=3)coutp=;p.print();coutq=;q.print();coutp-q=;r=p-q;r.print();else if(t=4)r=p*q;coutp=;p.print();coutq=;q.print();coutp*q=;r.print();else if(t=5)break;return 0;八、 系统运行结果样例九、 结束语 通过这次课程设计,我感觉到要真正做出一个程序并不很容易,但只要用心去做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中美术考试题及答案
- 客户信息收集与维护记录表模板
- 生产进度跟踪与质量控制表
- 我的校园美好生活记作文(8篇)
- 高级花卉工考试题及答案
- 2025年病案编码员考试题库资格证考试模拟试题(附答案)
- 2025年丙肝培训考试题和答案
- 水电组 劳务分包合同6篇
- 2025贵阳学院人才引进15人考前自测高频考点模拟试题及一套答案详解
- 人力资源管理流程标准化实施流程工具
- 《煤矿机械(第二版)》中职煤矿技术专业全套教学课件
- 微电子器件(4-13)SPICE 中的 MOFET 模型
- 2025年中级经济师金融专业知识与实战解析题库及详解
- DB51∕T 2615-2019 机关周转房管理服务规范
- 图书管理员职位面试常见问题试题及答案
- 竞选小学家委会演讲稿
- 人社新版劳动合同(2025年版)
- 设备对中培训
- 2025年四川省甘孜州公安局招聘辅警60人历年高频重点模拟试卷提升(共500题附带答案详解)
- 北京理工大学《化工原理理论》2023-2024学年第二学期期末试卷
- 公务员考试课件:2025年考试趋势与备考建议
评论
0/150
提交评论