《用单链表实现任意两个一元多项式的加减运算(共6页).doc》由会员分享,可在线阅读,更多相关《用单链表实现任意两个一元多项式的加减运算(共6页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 软件综合设计报告书二一六 年 六 月一需求分析:1.设计题目:用单链表实现任意两个一元多项式的加减运算2.设计要求:编程实现以下功能: 分别输入一元多项式pn (x)和Q n (x)。 从键盘输入一元对项式中各项的系数和指数,并用单链表加以表示。 分别对一元多项式pn (x)和Q n (x)进行升幂排序。将一元多项式中各子项按照指数从小到大的顺序排序。 分别输出一元多项式pn (x)和Q n (x)。 将用单链表表示的一元多项式输出,即打印多项式的系数和指数。 任意输入一个实数x0,分别求出一元多项式pn (x0)和Q n (x0)的值。 已知有两个一元多项式分别为
2、Pn (x)和Qn (x),求出两个多项式的和R n (x)和差T n (x),分别用单链表表示R n (x)和T n (x),并将二者输出,(R n (x)=P n (x)+Q n (x),T n (x)=P n (x)-Q n (x)) 保存多项式,即分别将一元多项式pn (x)和Q n (x)各项的系数和指数保存到外部磁盘文件。 由程序从所存文件中读出多项式的系数和指数,重新构建一元多项式 Pn (x) 和Q n (x),并可对其再次进行运算操作。3. 系统功能需求分析:用单链表表示出一元多项式将多项式进行升幂排序输出多项式计算多项式在x0的值建立并输出多项式的和与差将多项式以及他的系数
3、指数进行保存读取多项式二概要设计:包括系统总体设计框架和系统功能模块;系统功能模块(1)功能选择函数:通过输入对应功能的数字,进行多项式的运算。该函数在主函数中调用。(2)输入数据函数:通过建立单链表,输入两个多项式的各项指数和系数。(3)升幂函数:通过冒泡排序法对两个多项式进行升幂排序。(4)求和、求差函数:定义空链用来存储结果,将两个多项式相加减。(5)输出函数:输出上一步的运行结果。三详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;设计思路:(1) 定义结构体struct (2)建立单链表(3)建立一元多项式(4)显示一元多项式(5)一元多项式的加法计算(6)一元多项式的减
4、法计算功能选择函数:数据输入函数:求和函数:求差函数:四主要源程序代码:包括存储结构设计说明,以及完整源程序;存储结构设计说明:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减以及求值操作。五调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);测试:1. 出错
5、现象:排序出现问题,不能正确升幂排序 解决方法:修改主函数,通过while循环以及switch选择调用函数 结果:输出是按照升幂排序输出的 2.出错现象:多项式加减的时候,计算结果不正确 解决方法:修改功能函数,先通过升幂排序,然后再进行一项一项的加减,同时对系数加减结果进行判断,注意如果等于0,释放p指针所指向的结点,不再输出0 结果:修改程序后,正常输出。六 设计小结: 通过本次软件综合设计,我对链表的使用以及一元多项式的处理有了很大的进步。不管是对理论知识的理解还是对上级操作都得到了锻炼。本次设计过程中,记得刚刚编写好输入输出程序,调试的时候就有很多错误,通过一步一步的修改,终于成功运行。但把前五个设计要求达到的时候的成就感也特别难忘。唯一美中不足的是,对于最后两个文件保存和调用,由于知识储备不充分,最后还是没有写出来,后面一定找时间自学自己填补好这一部分。专心-专注-专业