




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 格列佛游记幻想与现实主题探究:初二语文阅读教学教案
- 规范高校学生企业实习管理的策略及实施路径
- 古典诗词与高中语文写作能力的提升
- 书信爸爸的一封信400字10篇范文
- 新闻传媒业法律法规题库
- 《高中作文写作技巧与素材积累:高三语文教案》
- 边城赏析:人性之美与悲剧意味教案
- 语言文字训练:七年级语文古诗词教学教案
- 软件测试合同保密协议
- 音乐理论作曲技术基础模拟题
- 2025年上海市研发公共服务平台管理中心招聘题库带答案分析
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷(含答案)
- 初级消控员测试题及答案
- 宣讲政策课件
- 居民组织法试题及答案
- 国家行业领域重大事故隐患判定标准(2025年5月)解读培训
- 绿化草皮种植合同协议书
- 学校基本设施管理制度
- 工程测试技术试题及答案
- 无痛胃镜操作急救知识要点
- 2025年下半年湖南永州蓝山县事业单位招聘工作人员38人易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论