您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > 用单链表实现任意两个一元多项式的加减运算
软件综合设计报告书二○一六年六月一.需求分析:1.设计题目:用单链表实现任意两个一元多项式的加减运算2.设计要求:编程实现以下功能:①分别输入一元多项式pn(x)和Qn(x)。从键盘输入一元对项式中各项的系数和指数,并用单链表加以表示。②分别对一元多项式pn(x)和Qn(x)进行升幂排序。将一元多项式中各子项按照指数从小到大的顺序排序。③分别输出一元多项式pn(x)和Qn(x)。将用单链表表示的一元多项式输出,即打印多项式的系数和指数。④任意输入一个实数x0,分别求出一元多项式pn(x0)和Qn(x0)的值。⑤已知有两个一元多项式分别为Pn(x)和Qn(x),求出两个多项式的和Rn(x)和差Tn(x),分别用单链表表示Rn(x)和Tn(x),并将二者输出,(Rn(x)=Pn(x)+Qn(x),Tn(x)=Pn(x)-Qn(x))⑥保存多项式,即分别将一元多项式pn(x)和Qn(x)各项的系数和指数保存到外部磁盘文件。⑦由程序从所存文件中读出多项式的系数和指数,重新构建一元多项式Pn(x)和Qn(x),并可对其再次进行运算操作。3.系统功能需求分析:①用单链表表示出一元多项式②将多项式进行升幂排序③输出多项式④计算多项式在x0的值⑤建立并输出多项式的和与差⑥将多项式以及他的系数指数进行保存⑦读取多项式二.概要设计:包括系统总体设计框架和系统功能模块;系统功能模块(1)功能选择函数:通过输入对应功能的数字,进行多项式的运算。该函数在主函数中调用。(2)输入数据函数:通过建立单链表,输入两个多项式的各项指数和系数。(3)升幂函数:通过冒泡排序法对两个多项式进行升幂排序。(4)求和、求差函数:定义空链用来存储结果,将两个多项式相加减。(5)输出函数:输出上一步的运行结果。三.详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;设计思路:(1)定义结构体struct(2)建立单链表(3)建立一元多项式(4)显示一元多项式(5)一元多项式的加法计算(6)一元多项式的减法计算功能选择函数:数据输入函数:求和函数:求差函数:四.主要源程序代码:包括存储结构设计说明,以及完整源程序;存储结构设计说明:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减以及求值操作。五.调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);测试:1.出错现象:排序出现问题,不能正确升幂排序解决方法:修改主函数,通过while循环以及switch选择调用函数结果:输出是按照升幂排序输出的2.出错现象:多项式加减的时候,计算结果不正确解决方法:修改功能函数,先通过升幂排序,然后再进行一项一项的加减,同时对系数加减结果进行判断,注意如果等于0,释放p指针所指向的结点,不再输出0结果:修改程序后,正常输出。六.设计小结:通过本次软件综合设计,我对链表的使用以及一元多项式的处理有了很大的进步。不管是对理论知识的理解还是对上级操作都得到了锻炼。本次设计过程中,记得刚刚编写好输入输出程序,调试的时候就有很多错误,通过一步一步的修改,终于成功运行。但把前五个设计要求达到的时候的成就感也特别难忘。唯一美中不足的是,对于最后两个文件保存和调用,由于知识储备不充分,最后还是没有写出来,后面一定找时间自学自己填补好这一部分。
本文标题:用单链表实现任意两个一元多项式的加减运算
链接地址:https://www.777doc.com/doc-5211336 .html