数据结构课程设计_一元多项式的加法、减法、乘法的实现

数据结构课程设计_一元多项式的加法、减法、乘法的实现

ID:1275334

大小:140.00 KB

页数:18页

时间:2017-11-09

数据结构课程设计_一元多项式的加法、减法、乘法的实现_第1页
数据结构课程设计_一元多项式的加法、减法、乘法的实现_第2页
数据结构课程设计_一元多项式的加法、减法、乘法的实现_第3页
数据结构课程设计_一元多项式的加法、减法、乘法的实现_第4页
数据结构课程设计_一元多项式的加法、减法、乘法的实现_第5页
资源描述:

《数据结构课程设计_一元多项式的加法、减法、乘法的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、HUNANCITYUNIVERSITY数据结构课程设计报告设计题目:一元多项式的加法、减法、乘法的实现专业:计算机科学与技术(嵌入式)学生姓名:班级学号:分组成员:指导教师:陈强老师2012年6月8日171006402《数据结构》课程设计报告一、设计时间2011年6月4日——6月8日二、设计地点湖南城市学院实验楼计算机房407三、设计目的《数据结构》主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论,是介于数学、计算机软件和计算机硬件之间的一门计算机专业

2、的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。该课程的特点是实践性较强,为了学好这门课程,需要在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。具体要求如下:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码测试等基本方法和技能;3.提高综合运用所

3、学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。四、设计小组成员五、指导教师:六、设计课题:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现设有一元多项式Am(x)和Bn(x).Am(x)=A0+A1x1+A2x2+A3x3+…+AmxmBn(x)=B0+B1x1+B2x2+B3x3+…+Bnxn请实现求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x)。要求:1)首先判定多项式是否稀疏2)分别采用顺序和

4、动态存储结构实现;3)结果M(x)中无重复阶项和无零系数项;4)要求输出结果的升幂和降幂两种排列情况七、基本思路及关键问题的解决方法17输入多项式各项的系数和指数并对其进行稀疏判断,然后选择实现结构,判断为顺序结构或动态链表结构,分别进行处理,再选定计算方法(进行加法、减法和乘法判断),然后用相应的计算方法对多项式进行计算,最后判断升幂或降幂的输出方式进行输出。一、算法及流程图;流程图:开始输入两个多项式各项的系数和指数是判断是否稠密?否为稀疏多项式为稠密多项式选择实现结构顺序结构?是否为顺序结构为动态链表结构选择操作方式选择操作方式加法?加法?调用加法函数

5、是否是否减法?减法?调用加法函数否是否调用乘法函数调用减法函数调用减法函数调用乘法函数是否选择打印输出顺序选择打印输出顺序17升幂?升幂?是否是否调用降幂输出函数调用升幂输出函数调用降幂输出函数调用升幂输出函数打印输出处理后的结果结束运行如图:运算操作方式:1.加法:两多项式指数相同项指数不变系数相加2.减法:两多项式指数相同项指数不变系数相减3.相乘:第一个多项式的各项和第二个多项式的各项分别相乘再相加,其中系数相乘指数相加,具体表达式如下:假设A(x)和B(x)为一元多项式,则M(x)=A(x)*B(x)=A(x)*[b1x^e1+b2x^e2+…+bn

6、x^en]=biA(x)x^ei一、调试过程中出现的问题及相应解决办法;17独立测试各个模块的功能时发现在创建链表后和另一个进行运算后多余的存储单元没有释放而造成内存的泄漏,还有对于链表的运算时结束条件掌握不透彻导致没有按计划地去结束,比如在用For循环及While循环时没有正确地判断指针的移动与结束条件而得不到自己想要的结果。进入函数内部调试时发现有误用没有初始化的变量,还有赘余的语句扰乱了代码的健壮性。在主函数中对各个函数的调用时没有一个清晰的思路,使程序显得很混乱,给调试造成了很大困难。对非法操作控制的不够完善,例如缺少对越界访问及其非法数据的控制机制

7、,使程序的安全性下降。对于每创建一个链表,每次在进行完相应操作之后应该对其链表进行删除释放,并且要做到在适当的时间进行删除,对于运算结束的条件的意识不是很清楚,运算结束的标识是当结点指针移动并且为空时结束,还有在用指针和变量的时候注意初始化问题,并且尽量使得程序保持良好的可读性。一、课程设计心得体会;编写的程序不但要拿来使用,还要给别人查看,以便代码的维护。所以代码编写的风格尽量规范,清晰。变量要尽量少定义,结构夜采用简单的。另外,对指针的使用要小心,尽量在定义的时候就进行初始化,避免野指针,指针的使用涉及到内存的分配。该程序基本实现了要求的顺序结构、动态链

8、表结构下的一元多项式的加法、减法、乘法等功能。代码较

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。