


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 一元多项式相加问题本实验的目的是进一步熟练掌握应用链表处理实际问题的能力。一、 问题描述一元多项式相加是通过键盘输入两个形如P0+P1X1+P2X2+PnXn的多项式,经过程序运算后在屏幕上输出它们的相加和。二、数据结构设计分析任意一元多项式的描述方法可知,一个一元多项式的每一个子项都由“系数指数”两部分组成,所以可将它抽象成一个由“系数指数对”构成线性表,由于对多项式中系数为0的子项可以不记录他的数值,对于这样的情况就不再付出存储空间来存放它了。基于这样的分析,可以采取一个带有头结点的单链表来表示一个一元多项式。具体数据结构定义为:typedef struct nodefloat ce; /系数域float ex; /指数域struct node *next; /指针域lnode,*linklist;三功能(函数)设计1、 输入并建立多项式的功能模块此模块要求按照指数递增的顺序和一定的输入格式输入各个系数不为0的子项的“系数指数对”,输入一个子项建立一个相关的节点,当遇到输入结束标志时结束输入,而转去执行程序下面的部分。屏幕提示:input ce & ex and end with 0:ce=1ex=2ce=0ex=0 /输入结束标志input ce & ex and end with 0:ce=2ex=2ce=0ex=0 /输入结束标志输入后程序将分别建立两个链表来描述两个一元多项式:A=X2B=2X2这两个多项式的相加的结果应该为:C=3X22、 多项式相加的功能模块此模块根据在1中建立的两个多项式进行相加运算,并存放在以C为头指针的一个新建表中。可以采用以下方法进行设计:开始时a,b分别指向A,B的开头,如果ab不为空,进行判断:如果a所指的结点的指数和b所指的结点的指数相同,将它们的系数相加做成C式中的一项,如果不一样则将小的一项加到C中。if(a-ex=b-ex) /判断指数是否相等s-ce=a-ce+b-ce;if(s-ce!=0)s-ex=a-ex;else delete s;a=a-next;b=b-next;直到将所有的结点都处理一遍,得到合并之后的C式。3、 多项式显示的功能模块此模块用于多项式的显示,程序可以使用文本界面,用“系数指数对”的形式表达表达式,如:A=X2+2X3+3X4+5X6B=2X2+3X3+5X5+7X9C=3X2+5X3+3X4+5X5+5X6+7X9四、 界面设计提示用户每一步输入操作的格式和限制。指导用户按照正确的格式输入数据。五、 编码实现见源程序。六、 运行与测试1、 测试以下数据,比较结果:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)=-3.1x11+11x9+2x+7(2)(x+x3)+(-x-x3)=0(3)(x+x2+x3)+0= x+x2+x32、指数递增的顺序输入多项式,验证程序的健壮性和容错性。七、 试验完成后的思考1、 通过本程序熟练掌握了应用链表处理问题的能力,增加了处理细节问题的经验,达到了实验目的。2、 通过在设计过程中的讨论和思考,对使用现有知识系统利用计算机来解决数学问题确立了信心,对链表的意义有了更深刻的理解,为今后的程序设计奠定了一定的心理基础和技术上的准备。3、 由于个人能力实在有限,程序中还有一些需要完善的地方,例如,程序不能做出对数据类型的判断;没有一个美观的图形界面;输入方式复杂,极易出错,等等等等。在今后的试验中要多多联系这方面的能力。附:程序源代码#includeusing namespace std;typedef struct nodefloat ce;int ex;struct node *next;lnode,*linklist;linklist creat()linklist L;lnode *s,*r;float m;int n;L=r=NULL;coutinput ce & ex end and with 0:endl;coutm;coutn;while(m&n) /结束s=new lnode;s-ce=m;s-ex=n;if(L=NULL)L=s;else r-next=s;r=s;coutm;coutn;if(r!=NULL)r-next=NULL;return L; /初始化并赋值linklist add(linklist A,linklist B)linklist C;lnode *s,*r,*a,*b;a=A;b=B;C=r=NULL;while(a&b)s=new lnode;if(a-ex=b-ex) /判断指数是否相等s-ce=a-ce+b-ce;if(s-ce!=0)s-ex=a-ex;else delete s;a=a-next;b=b-next;elseif(a-exb-ex) /ace=b-ce; s-ex=b-ex; b=b-next;elses-ce=a-ce; /ab s-ex=a-ex; a=a-next; if(C=NULL)C=s;else r-next=s;r=s;while(a) /B结束s=new lnode;s-ce=a-ce;s-ex=a-ex;a=a-next;if(C=NULL)C=s;else r-next=s;r=s;while(b) s=new lnode;s-ce=b-ce; s-ex=b-ex; b=b-next; if(C=NULL)C=s; else r-next=s; r=s;s=new lnode;s-ce=0;s-ex=0;s-next=NULL;if(r!=NULL)r-next=NULL;return C; coutokce=0&p-ex=0)coutce!=1&p-ce!=-1) /ce?=1coutcece!=1)cout-x;else coutex!=1)coutex; if(p-next&p-next-ce0)c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 俄语歌曲考试题及答案
- (正式版)DB15∕T 3396-2024 《西辽河灌区中轻度盐碱地玉米大豆轮作培肥技术规程》
- 行政审批工作表单集
- (正式版)DB15∕T 3263-2023 《牧科3号毛偃麦草栽培技术规程》
- (正式版)DB15∕T 3243-2023 《芦笋露地高效栽培技术规程》
- (正式版)DB15∕T 3214-2023 《红豆草和冰草间行混播技术规程》
- 护理招聘考试题库及答案讲解题
- 企业运营周期性审查检查表关键绩效指标覆盖
- 企业招聘简历筛选及初步评估表模板
- 党建专项考试题及答案
- 注塑行业仓库管理制度
- DB32/T 3691-2019 成品住房装修技术标准
- 能源系统工程课件
- 学校膳食监督家长委员会章程
- 《新能源汽车发展历程》课件
- 护罩钣金合同协议
- 单位物品借用协议书
- 患乳腺癌的心理护理
- 小学教育学(第5版)课件 曾文婕 第0-4章 绪论、小学教育源流-小学教师
- H镇美丽乡村建设项目绩效评价体系构建及应用研究
- 2025年职业技能大赛(电工赛项)理论考试指导题库500题(含答案)
评论
0/150
提交评论