设计程序以实现任意两个高次多项式的加法和乘法运算

2026/1/12 13:56:45

王帆 《用设计程序以实现任意两个高次多项式的加法和乘法运算》 第25页 共34页

2 当程序执行到合并指数相同项时就出现了错误。调试后发现执行完第一次while 循环后指向c 链表的指针e 不在存储空间中,导致无法判断while 循环,仔细检查后,发现合并时将e 指针所指结点释放后,没有给他指定新的结点。把指针e 后移一位,这样就解决了问题。

4.2 时间空间复杂度的计算

若多项式A 有n 项,多项式B 有m 项,则两多项式相乘时为m*n ,接下来检验是否有同类项检查方法是每一项都要对比所以为(m*n)!,时间复杂度为O(m*n+(m*n)!)由于各个算法是基于动态链表而建成的,所以各算法的空间性能均较好。

4.3 设计体会

这个题目不是很难,但是一开始自己却觉的非常的吃力,不知从那里入手,下面是我这次课程设计的一些感想:

(1)通过本设计实验又将数据结构中的链表的知识重新温习了一遍,并且自己能够独立设计一些东西,学会了在设计实验过程时的基本步骤。基本上能够有条理的解决这些问题。 (2)在课程设计中遇到了很多的问题,都是以前没有发现的,这些问题涉及的方面很多,有的是c 语言基础的,也有最近学习的数据结构的知识。通过本次课程设计,让我发现了自己的不足。自己在学习知识上面的漏洞。希望通过弥补这些发现的漏洞,提高自己的专业知识水平。

(3)设计过程中的解决问题的方法,让我明白了如何学习会更有效。如何学习才不会耽误太多的时间。也学会了解决问题的一般方法:向老师、同学请教,借助网络等等。 (4)实验过程中也走了很多的弯路,由于在开始设计的时候思路不是很清晰,对于一些问题不能很好的提出解决问题的方法,在设计过程中,代码总是重复的修改,在很多问题上,代码并不时最优的。相信在以后的学习中,随着知识的增多,问题会逐渐得到解决。

总之,我付出了许多时间,换来的是用任何东西都不能比的财富,别人抢不走,因为他是知识。因为自己知识有限所以程序不是很好,但它是我自己一步一步编写出来。只有好好学习,自己将来才有出路。

王帆 《用设计程序以实现任意两个高次多项式的加法和乘法运算》 第26页 共34页

5 测试结果及其分析

图5-1

图5-1 两多项式相乘后没有指数相同项输出的结果

图5-2 两多项式相乘后有指数相同项合并后输出的结果

图5-2

6 用户使用说明

王帆 《用设计程序以实现任意两个高次多项式的加法和乘法运算》 第27页 共34页

(1)给出任意两个高次多项式,只需按照多项式从左到右依次输入系数值、指数值,当输

入指数值为-1 时结束。(由于程序设计的缺陷系数指数都要输入所以结束之前系数值可随 便输入不影响运算结果。

(2)程序中指数、系数定义的是整型,所以表达式中系数值、指数值不能超出整型范围。 (3)输入是正数直接输入,负数要加负号。指数不能选择-1。

参考文献

[1]王昆仑,李红等编著. 数据结构与算法. 北京:中国铁道出版社,2007. [2]苏仕华等编著. 数据结构课程设计. 北京:机械工业出版社 ,2005. [3]苏仕华编著. 数据结构与算法解析. 合肥:中国科学技术大学出版社,2004. [4]郭嵩山等著. 国际大学生程序设计竞赛例题解. 北京:电子工业出版社,2008. [5]刘大有,唐海鹰等编著. 数据结构. 北京:高等教育出版社,2001. [6]徐孝凯编著.数据结构实用教程. 北京: 清华大学出版社,1999.

[7]严蔚敏,陈文博编著. 数据结构及算法教程. 北京: 清华大学出版社,2001. [8]刘振安,刘燕君等编著. C 程序设计课程设计. 北京: 机械出版社,2004. [9]胡学钢. 数据结构与算法设计指导. 北京: 清华大学出版社, 1999.

附录:程序源代码 // 程序名称:GCDXS.CPP

王帆 《用设计程序以实现任意两个高次多项式的加法和乘法运算》 第28页 共34页

// 程序功能:实现任意两个高次多项式的加法和乘法运算 // 程序作者:王帆

/* 多项式加法和乘法示例 */ ?? #include ?? #include ?? #include ????

using namespace std; ???? //定义多项式的项类 ?? class term { ?? public: ??

int coef; //多项式系数 ?? int exp; //多项式指数 ??

//初始化项的系数和指数 ?? term( int c=0,int e=0):coef(c),exp(e){ } ?? }; ????

//定义多项式类 ?? class PolyArith { private: ??l

ist m_poly_list_first; //存储第一个多项式 ?? list m_poly_list_second; //存储第二个多项式 ??

list m_poly_list_result; //用以存储运算结果 ??//多项式私有成员函数,用以乘法时的调用 ??

list Poly_add(list&poly_list_first,\\ ?? list&poly_list_second) ?? { ??

list poly_list_result; / /用以存储运算结果 ?? list::iterator iter_first = poly_list_first.begin(); ??

list::iterator iter_second = poly_list_second.begin(); ??//该while循环针对两个链表迭代器都没有指到结尾的情形 ??

while(iter_first != poly_list_first.end()&&\\ ??


设计程序以实现任意两个高次多项式的加法和乘法运算.doc 将本文的Word文档下载到电脑
搜索更多关于: 设计程序以实现任意两个高次多项式的加法和乘法运算 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219