资源描述:
《数据结构实系数一元多项式运算实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实系数一元多项式问题实验报告2010级计算机科学与技术(非师范)100704033鲁静2011年10月14日星期五1、需求分析实现实系数一元多项式的创建,打印以及两个一元多项式的加、减、乘运算。(1)程序所能达到的功能:a.实现一元多项式的输入;b.实现一元多项式的输出;c.计算两个一元多项式的和并输出结果;d.计算两个一元多项式的差并输出结果;e.计算两个一元多项式的积并输出结果;(2)输入的形式和输入值的范围:输入要求:分行输入,每行输入一项,先输入多项式的指数,再输入多项式的系数,以00为结束标志,结束一个多项式的输入。输入形式:23-12301200-21-33-1-100输
2、入值的范围:系数为int型,指数为float型。(3)输出的形式:要求:第一行输出多项式1;第二行输出多项式2;第三行输出多项式1与多项式2相加的结果多项式;第四行输出多项式1与多项式2相减的结果多项式;第五行输出多项式1与多项式2相乘的结果多项式注:多项式的每一项形如:2.0x^3,注意指数应保留一位小数;多项式按照升幂次序排列;系数为1的非零次项应略去系数,系数为0的项不能出现在结果中;指数为0的项应只输出系数;多项式的第一项系数符号为正时,不要输出“+”,其他项要输出“+”,“-”符号。输出形式:3.0+2.0x^3-x^-1-2.0x-3.0x^3-x^-1+3.0-2.0x
3、-x^3x^-1+3.0+2.0x+5.0x^3-3.0x^-1-6.0x-2.0x^2-9.0x^3-4.0x^4-6.0x^62、概要设计抽象数据类型一元多项式的定义如下:ADTPolynomial{数据对象:D={ai
4、ai∈TermSet,i=1,2,…,m,m≥0TermSet中的每个元素包含一个表示系数的实数和表示指数的整数}数据关系:R1={
5、ai-1,ai∈D,且ai-1中的指数值<ai中的指数值,i=2,…,n}基本操作:sort(Polyn&h);//对多项式进行排序print(Polynh);//输出多项式delZeroCoef(Polyn&h
6、);//判断系数为零的情况merge(Polyn&h);//合并指数相同的项createList();//创建多项式addPoly(Polynh1,Polynh2);//多项式相加subPoly(Polynh1,Polynh2);//多项式相减multPoly(Polynh1,Polynh2);//多项式相乘}ADTPolynomial多项式的抽象数据类型的定义:typedefstructPolynomial//结点类型{floatcoef;//系数intexp;//指数structPolynomial*next;}PolyNode,*Polyn;判断h1,h2系数是否为0输入两个多
7、项式h1,h2开始主程序的流程图:调用multPoly(h1,h2),合并并输出调用subPoly(h1,h2),合并并输出调用addPoly(h1,h2),合并并输出结束调用print()函数,输出,合并过并排好序的h1,h23、详细设计伪码算法:主函数:intmain(){Polynh1=createList();//创建多项式1Polynh2=createList();//创建多项式2print(h1);//输出多项式1print(h2);//输出多项式2addPoly(h1,h2);//实现多项式1和2的相加,并输出subPoly(h1,h2);//实现多项式1和2的相减,并
8、输出multPoly(h1,h2);//实现多项式1和2的相乘,并输出return0;}分支函数:voidsort(Polyn&h);//排序voidprint(Polynh);//输出多项式voiddelZeroCoef(Polyn&h);//判断处理系数为0的情况voidmerge(Polyn&h);//合并多项式PolyncreateList();//创建多项式voidaddPoly(Polynh1,Polynh2);//两个多项式相加并输出voidsubPoly(Polynh1,Polynh2);//两个多项式相减并输出voidmultPoly(Polynh1,Polynh2
9、);//两个多项式相乘并输出函数的调用关系:mainmultPolycreateListsubPolyprintaddPolyprintmergeprintmergeprintmergemergesortdelZeroCoef4、调试分析a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析:在输入诸如“0,3”,“2,0”时,程序无法正常运行或总是出错.解决:对指数或系数为0的情况应单独讨论。为此,建立了delZeroCoef函数来解决问题