




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计报告题目: 一元多项式相加 学号: 姓名: 指导老师: 时间: 2011年10月18日星期二 评语:程序建立的过程及步骤:l 1首先建立一个定义多项式的结构体duoxiangshi,其中包括一个指数(int型),一个系数(float型),还有一个指向下一项的指针,具体编译代码如下:typedef struct duoxiangshi/定义一个多项式 float coef;/多项式系数 int exp;/多项式指数 struct duoxiangshi *next;l 2在定义一个函数(1),用来指导用户输入程序运行时所需要的必须得数据,两个一元多项式的项数、系数、指数。具体的代码如下: void creatduox(polynomial &px,int n)/定义一个多项式函数 initduox(px); duoxiangshi *p,*q; p=px; for(int i=1;i=n;i+) q=new duoxiangshi; cout第iq-coef;/输入系数 cout第iq-exp;/输入指数q-next=null; p-next=q;p=q; l 3定义一个计算合并后的多项式的项数的函数(2),此函数的主要作用是用来最后输出合并后的多项式的时候起到作用。具体代码如下: int lengthduox(polynomial &px)/计算多项式项数的函数,返回值是这个合并后的多项式的项数duoxiangshi *p;int count;/定义一个变量,用来计算多项式的长度 p=px-next;count=0; while(p!=null)p=p-next;count+;/自加 最后得出总项数 并返回return count;l 4定义一个输出合并后的多项式的函数(3),主要作用为主函数调用后可以输出一元多项式,具体代码如下: void outputduox(polynomial &px)/输出合并后的多项式 duoxiangshi *p; p=px-next; int i; for(i=0;ilengthduox(px);i+)/调用上一个计算项数的函数,逐项的输出合并后的项 coutcoef*x expnext; cout0next;q=pb-next; prep=pa; while (p&q)/与都不等于if(p-expexp)/a的指数小于b的指数prep=p; p=p-next;else if(p-exp q-exp)/a的指数大的话u=q-next; q-next=p; prep-next=q; prep=q; q=u;else/a与b的指数相等的话p-coef=p-coef+q-coef; if(p-coef=0)/a与b的指数相等的话,且其中a的系数为0duoxiangshi *temp1; duoxiangshi *temp2;temp1=p;temp2=q;prep-next=p-next;/删除该项,跳过去p=p-next;q=q-next;delete temp1;delete temp2;else/a与b的指数相等的话,b的系数为0duoxiangshi *temp2; temp2=q;prep=p; p=p-next; q=q-next; delete temp2;if(q)prep-next=q;delete pb; return pa;l 最后一项主函数的设计,由于先前的定义的函数完成了大部分的逻辑运输,所以主函数相对来说很简单明了 一:先运用结构体定义三个多项式变量,其作用是让内存分配其相应存储结构(其中两个用来输入初始多项式,一个用来输出合并后的多项式) 二:调用creatduox函数创建两个多想书与其中该函数可以引导使用者输入创建一个多项式必须的项数、系数、指数。 三:最后通过调用outputduox函数,将最后的结果输出。程序完成。运行程序过程中的具体图像:1运行程序的初始画面2 输入项数,系数,指数后的运行图像3得出结果并输出合并多项式的图像遇到的问题与解决方法:1、 刚开始我定义结构体duoxiangshi没有定义其内部指针,导致多项式的项数只能是一,通过翻阅课本关于本节的内容最终才得以解决。2、 最开始的程序运行成功的时候 ,找其他同学使用的时候,由于缺少中文引导,很多同学,都无法使用。我在几个关键的引导函数中加入了中文引导,最后得到了我本人较为满意的程序。程序的源代码:#include using namespace std;typedef struct iangduoxshi/定义一个多项式float coef;/多项式系数int exp;/多项式指数struct iangduoxshi *next;iangduoxshi;typedef iangduoxshi *polynomial;/重定义一个多项式名字 void initduox(polynomial &px)px=new iangduoxshi;px-next=null; void creatduox(polynomial &px,int n)initduox(px); iangduoxshi *p,*q;p=px; for(int i=1;i=n;i+)q=new iangduoxshi; cout第iq-coef;/输入系数 cout第iq-exp;q-next=null; p-next=q;p=q; int lengthduox(polynomial &px)/计算多项式项数的函数iangduoxshi *p;int count; p=px-next;count=0; while(p!=null)p=p-next;count+;return count; void outputduox(polynomial &px)/输出合并后的多项式iangduoxshi *p;p=px-next; int i;for(i=0;ilengthduox(px);i+)coutcoef expnext;cout0next;q=pb-next; prep=pa; while (p&q)/与都不等于if(p-expexp)/a的指数小于b的指数prep=p; p=p-next;else if(p-exp q-exp)/a的指数大的话u=q-next;q-next=p;prep-next=q;prep=q;q=u;else/a与b的指数相等的话p-coef=p-coef+q-coef;if(p-coef=0)/a与b的指数相等的话,且其中a的系数为0iangduoxshi *temp1;iangduoxshi *temp2;temp1=p;temp2=q;prep-next=p-next;/删除该项数p=p-next;q=q-next;delete temp1;delete temp2;else/a与b的指数相等的话,且其中a的系数为0,b的系数为0iangduoxshi *temp2;temp2=q; prep=p;p=p-next;q=q-next;delete temp2;if(q)prep-next=q; delete pb;return pa;void main()polynomial pa,pb,pc;/定义三个多项式类型的变量int a,b;/a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育孩子的发言稿
- 法国供应商培训
- 新能源课件大班
- PDCA循环工作方法培训课件
- 二零二五年高炮广告牌制作与城市地标建设合同
- 2025版商业综合体工程劳务承包与智能化合同
- 2025版智能制造业股权转手与增资升级合同
- 二零二五年度茶叶品牌营销策划合同样本
- 2025版墓地拆迁重建安置补偿合同
- 二零二五年度科技园区运维短期劳务合同范本
- 超声引导下神经阻滞
- 北京2MW分布式光伏各个季节典型日出力曲线及数据
- 通用电子嘉宾礼薄
- 机器学习模型训练
- 锅炉烟风煤及排放计算书(带公式)
- 4s店汽车维修配件管理制度
- 2019县级国土资源调查生产成本定额
- 连续油管技术理论考核试题
- 瓦斯管道与避雷塔基础安全距离
- 工业机器人机械结构的认知-课件
- 双向转诊流程图
评论
0/150
提交评论