欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数据结构课程设计报告一元多项式相加.doc

    • 资源ID:2396852       资源大小:114.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告一元多项式相加.doc

    数据结构课程设计报告题目: 一元多项式相加 学号: 姓名: 指导老师: 时间: 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<<"第"<<i<<"项的系数:"cin>>q->coef;/输入系数 cout<<"第"<<i<<"项的指数:"cin>>q->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;i<lengthDuoX(Px);i+)/调用上一个计算项数的函数,逐项的输出合并后的项 cout<<p->coef<<"*X "<<p->exp<<" +"p=p->next; cout<<"0"<<endl;l 5, 最重要的核心部分,程序的逻辑中心,让两个多项式相加,其中要考虑的情况如下 一:两个多项式A、B 都为0 二:其中一个多项式A 为0,B不为0 三:其中一个多项式B为0,A不为0 四:A与B 都不为0 而在程序中我将二与三这两种情况,通过IF语句将其嵌到四的情况中,这样可以节省代码的复杂度。(也可以用if eals if eals if eals 这种方法将4中情况并列列出)具体代码 如下:duoxiangshi * addDuoX(Polynomial &Pa,Polynomial &Pb)/关键部分,A与B相加 duoxiangshi *p,*q; duoxiangshi *prep; duoxiangshi *u; p=Pa->next;q=Pb->next; prep=Pa; while (p&&q)/与都不等于if(p->exp<q->exp)/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 <iostream>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<<"第"<<i<<"项的系数:"cin>>q->coef;/输入系数 cout<<"第"<<i<<"项的指数:"cin>>q->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;i<lengthDuoX(Px);i+)cout<<p->coef<<" "<<p->exp<<" +"p=p->next;cout<<"0"<<endl; iangduoxshi * addDuoX(Polynomial &Pa,Polynomial &Pb)/关键部分,A与B相加iangduoxshi *p,*q;iangduoxshi *prep;iangduoxshi *u; p=Pa->next;q=Pb->next; prep=Pa; while (p&&q)/与都不等于if(p->exp<q->exp)/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,b为两个多项式的整体的项数cout<<"请输入第一个一元多项式的项数:"cin>>a;cout<<"请输入第一个一元多项式的项数:"cin>>b;cout<<"请输入一元"<<a<<"项式(先输入系数,再输入指数):"creatDuoX(Pa,a); cout<<"请输入一元"<<b<<"项式(先输入系数,再输入指数):"creatDuoX(Pb,b);Pc=addDuoX(Pa,Pb);cout<<"相加得到的多项式:"outputDuoX(Pc);

    注意事项

    本文(数据结构课程设计报告一元多项式相加.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开