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

    《数据结构课程设计》报告一元稀疏多项式计算器.doc

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

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

    《数据结构课程设计》报告一元稀疏多项式计算器.doc

    数据结构课程设计报告一元稀疏多项式计算器班级: 软件1408学号:1130505140831姓名: 齐瑞征指导老师: 石锋问题描述设计简单的一个一元稀疏多项式计算器。基本要求一元稀疏多项式简单计算器的基本功能是:(1) 输入并建立多项式,以带头结点的单链表存储;(2) 输出多项式,输出形式为整数序列:n,c1,e1, c2,e2, cn,en,其中n是多项式的项数,ci,ei,分别是第i项的系数和指数,序列按指数降序排序;(3) 多项式a和b相加,建立多项式a+b;(4) 多项式a和b相减,建立多项式a-b;(5) 多项式a和b相乘,建立多项式a*b;数据结构设计在模拟多项式时,为了简化处理,只取最核心的两个数据:多项式的系数和指数,具体数据结构定义如下:typedef struct nodeint xs; /*系数*/int zs;/*指数*/struct node * next; /*next指针*/Dnode,* Dnodelist;功能函数设计(1)链表初始化函数Creat_node()(2)多项式数据的输入函数input()(3)数据的插入函数Insert_node()(4)多项式的显示函数output()(6)多项式的运算函数:新建链表存储计算后的多项式多项式相乘Mulresult()多项式相加Addresult()多项式相减Subresult()(7)主函数main()创建两个多项式的链表并且初始化,分别调用相应的多项式创建函数,创建成功后选择运算方式,再将运算结果输出显示。【实现过程】1、在D:根目录下建立文件夹,命名方式为“班级”+“顺序号(两位)+“姓名”,例如你是商务1419班的,你在学生花名册上的顺序号是05号,你的姓名是张有才,则文件夹的名字是“商务141905张有才”。这个文件夹就是你的工作文件夹。2、 在VC中创建c+源程序,命名为“poly.c”,保存在工作文件夹中;3、在poly.c中输入以下内容并编译,使没有语法错误:#include<stdio.h>#include<stdlib.h>typedef struct nodeint xs;int zs;struct node * next;Dnode,* Dnodelist; /*定义结构体*/Dnodelist Creat_node(void) /*链表初始化*/Dnodelist D;D=(Dnodelist)malloc(sizeof(Dnode);if(D)D->next=NULL;return D;4、回答问题,以上程序中,Creat_node(void)函数的功能是什么?答:创建链表里面的一个节点。5、在poly.c中完成如下函数,并编译。int Insert_node(Dnodelist D,int xs,int zs) /*插入函数*/Dnodelist p;Dnodelist q;Dnodelist r;p=D;while(p->next) r=p;p=p->next;if(zs=p->zs) p->xs=p->xs+xs;return 1;else if(zs>p->zs) q=Creat_node();q->xs=xs;q->zs=zs;r->next=q;q->next=p;return 1;/*while(p->next)*/q=Creat_node(); q->xs=xs;q->zs=zs;q->next=p->next;p->next=q;return 1;free(p);free(q);free(r);函数功能:将一项合并到多项式中。参数说明:D:一个带头结点的单链表的头指针,其中按指数降序存放一个一元多项式的数据;xs:要合并的项的系数;zs:要合并的项的指数。6、在poly.c中完成如下函数,并编译。void output(Dnodelist D)Dnodelist r;r=D->next;printf("%dx%d",r->xs,r->zs);r=r->next;while(r!=NULL)if(r->xs>0)printf("+%dx%d",r->xs,r->zs);elseprintf("%dx%d",r->xs,r->zs);r=r->next;printf("n"); 函数功能:以类似“-3*x100+2*x10-10”的形式输出D中存放的多项式数据。7、在poly.c中输入以下函数,并编译。Dnodelist input(void) Dnodelist D; int xs, zs; D = Creat_node(); printf("请输入系数和指数(系数,指数):"); scanf("%d,%d", &xs, &zs); while(xs!=0 && zs!=0) Insert_node(D, xs, zs); printf("请输入系数和指数(系数,指数):"); scanf("%d,%d", &xs, &zs); return D;你认为以上函数的功能是什么?答:从键盘输入系数和指数存放在链表中。8、在poly.c中输入以下main()函数,并编译。void main(void) Dnodelist D; D = input(); output(D);9、运行你的程序,输入以下数据:-3,1002,10-10,10,0将你的程序的运行结果的界面粘贴在下面:10、在poly.c中完成以下函数,其功能是计算D1和D2中两个多项式的和,函数返回和多项式。Dnodelist Addresult(Dnodelist D1,Dnodelist D2) Dnodelist D;Dnodelist p,q;int x,z;D=Creat_node();p=D1->next;q=D2->next;while(q)x=q->xs;z=q->zs;Insert_node(D,x,z);q=q->next;while(p)x=p->xs;z=p->zs;Insert_node(D,x,z);p=p->next; return D;11、在poly.c中完成以下两个函数,其功能分别是是计算两个多项式的差和乘积。Dnodelist Subresult(Dnodelist D1, Dnodelist D2) Dnodelist D;Dnodelist p,q;int x,z;D=Creat_node();p=D1->next;q=D2->next;while(p&&q)if(p->zs)<(q->zs)x=-(q->xs); z=q->zs;Insert_node(D,x,z);q=q->next;else if(p->zs)>(q->zs)x=p->xs;z=p->zs;Insert_node(D,x,z);p=p->next;else z=q->zs;x=(p->xs)-(q->xs);Insert_node(D,x,z);p=p->next;q=q->next;while(p)x=p->xs;z=p->zs;Insert_node(D,x,z);p=p->next;while(q)x=-(q->zs);z=q->zs;Insert_node(D,x,z);q=q->next; return D;Dnodelist Mulresult(Dnodelist D1, Dnodelist D2)Dnodelist D;Dnodelist p,q;int x,z;D=Creat_node();p=D1->next;q=D2->next;while(q)while(p)x=p->xs*q->xs; /*系数相乘,指数相加*/z=p->zs+q->zs;Insert_node(D,x,z);p=p->next;p=D1->next;q=q->next;return D;12、 编写main函数,功能输入两个多项式的数据,计算并输出和、差、积多项式,把程序运行结果的界面粘贴在下面。收获和建议1、通过本次课程设计,你都有哪些收获,请写在下面。通过这次课程设计,我感觉到要真正做出一个程序并不很容易,但只要用心去做,总会有收获,特别是当我遇到问题,查资料,问同学,想尽办法去解决,最后终于找到方法时,心里的那份喜悦之情真是难以形容.编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查.直到最终搞清为止。 “享受制作过程 追求更加完美”是我对实训的总结。2、 你对这门课程教学内容和方法有什么好的建议,请写在下面。 通过这次课程设计我觉得我们学习数据结构的方法存在一定的弊端,数据结构的效果直接影响到我们对其它专业课的学习和今后业务的成长。我觉得我们对于数据结构的学习不仅包括理论部分的学习,还要让我们勤动手,多实践。整个实验过程要结合教学进度与我们的实际情况,制定实验的内容。实验分两部分,一是验证性的,主要结合课堂理论教学内容展开,学生可以对在课堂上学到的基本算法进行验证;二是设计性实验,坚持“学以致用”的原则,目的是让学生充分利用所学的理论知识进行相对复杂的应用设计,以进一步提高综合能力和创新实践能力。而在传统的课堂教学中,一般采用的是“教师黑板学生”的教学模式,这对大多数教师和学生来说,“教”和“学”很难在课堂中得到良好的协调,因而也就难以对教学内容进行及时而有效地消化,“听懂但不会做”是大部分学生的通病,从而使教学效果受到影响。所以我希望以后的数据结构的学习能够注重实验上机.

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开