简单的一元多项式计算器程序



《简单的一元多项式计算器程序》由会员分享,可在线阅读,更多相关《简单的一元多项式计算器程序(20页珍藏版)》请在文档大全上搜索。
1、I简单的一元多项式计算器程序朱琳摘要摘要.21. 绪论绪论.22. 系统设计系统设计.22.1 功能需求.22.2 数据需求.32.3 性能需求.33. 总体设计总体设计.33.1 功能模块设计.33.2 系统设计方案.44. 详细设计详细设计.44.1 输入并建立模块.44.2 输出模块.64.3 相加模块.64.4 相减模块.85. 调试与测试调试与测试.95.1 调试.95.2 测试.96. 结论结论.9结束语结束语.9参考文献参考文献.10附录附录 2源程序源程序.142 摘要摘要计算器是人们生活中必不可少的简单程序。在我们的学习生活中经常会用到计算器来进行简单的运算。因此如何编写一个
2、简单的一元多项式计算器程序也是我们所应该掌握的。本系统使用的 C 语言作为程序开发的语言,开发设计一个一元多项式的和差计算程序实现输入并建立多项式;输出多项式;两个多项式相加,建立并输出和多项式;两个多项式相减,建立并输出差多项式。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:计算器;系数;指数;一元多项式;关键词:计算器;系数;指数;一元多项式;1. 绪论绪论计算器是人们生活中必不可少的简单工具。在我们的学习生活中经常会用到计算器来进行简单的运算。因此如何编写一个简
3、单的一元多项式计算器也是我们所应该掌握的。本系统使用的 C 语言作为程序开发的语言,开发设计一个一元多项式的和差计算程序实现输入并建立多项式;输出多项式;两个多项式相加,建立并输出和多项式;两个多项式相减,建立并输出差多项式。根据课程设计任务书要求,本系统开发主要完成以下功能。 (1)能够实现输入并建立多项式;(2)能够实现输出多项式;(3)能够实现两个多项式相加,建立并输出和多项式;(4)能够实现两个多项式相减,建立并输出差多项式。2. 系统设计系统设计2.1 功能需求功能需求本系统主要是一个简单的一元多项式计算器程序系统。本程序需要设计一个一元多项式的和,差计算程序。多项式的每一项用数组表
4、示,每项包括一个系数和一个指数(一个数组存系数,一个数组存指数) 。32.2 数据需求数据需求需要向系统输入运算符,所需要运算的数据。2.3 性能需求性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3. 总体设计总体设计 简单一元多项式计算程序 输 入 并 建 立 模 块输 出 模 块相 减 模 块相 加 模 块图图 1 1 功能模块图功能模块图3.1 功能模块设计功能模块设计根据分析整个系统主要划分为 4 个功能模块,分别执行要求该系统中的功能。输入并建立模块,输出模块,相加模块,相减模块。需要有功能模块图如图 1 所示。(1)输入并建立模块能够
5、实现输入并建立多项式子模块。4(2)输出模块能够实现输出多项式子模块。(3) 相加模块能够实现两个多项式相加,建立并输出和多项式子模块。(4) 相减模块能够实现两个多项式相减,建立并输出差多项式子模块。3.2 系统设计方案系统设计方案根据分析整个系统设计一个总菜单,分别执行要求的功能.1 输入并建立多项式;2输出多项式;3 两个多项式相加,建立并输出和多项式;4 两个多项式相减,建立并输出差多项式。(1)建立结构体如下:typedef struct PNodeint coef; /系数 int expn; /指数 struct PNode *next; /指针域 (2)函数如下: void C
6、reatPoly() /一元多项式的创建操作,其中 n 为一元多项式的项数void OutputPoly() /一元多项式的输出操作void SubtractPoly() /一元多项式的相减操作,即实现 Hc=Ha-Hbvoid SubtractPoly2( ) /一元多项式的相减操作,即实现 Hc=Ha+Hb4. 详细设计详细设计 4.1 输入并建立模块输入并建立模块 输入所要求的一元多项式,首先输入项数,在依次输入第一个多项式的第一个系数,项数,回车输出一元多项式,程序流程图如图 25开始inti,coef,expn;i=1inext;printf(%+dX%d,p-coef,p-expn
7、);printf(%dX%d,p-coef,p-expn);结束YNYN图图 3 输出流程图输出流程图 4.3 相加模块相加模块输入两个多项式,相加运算并求和。按提示输入并建立第一个多项式,再输入并建立第二个多项式,进行加法运算并求和;。最后,输出运算结果。程序流程如图 4 所示;7开始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(stru
8、ct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=spa=pa-next; ; YNYN结束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-
9、next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode); Hc-next=NULL;pc=Hc;pa=Ha-next; pb=Hb-next; pa-expnpb-expnYx=pa-coef+pb-coefNx!=0 s=(POLY)malloc(sizeof(struct PNode);s-coef=x; s-expn=pa-expn; s-next=NULL;pc-next=s;pc=s; Y pa=pa-next; pb=pb-next;NNNY 图图 4 相加流程图相加流程图84.4 相减模块相减模块输
10、入两个多项式,相减运算并求差。按提示输入并建立第一个多项式,再输入并建立第二个多项式,进行减法运算并求差;。最后,输出运算结果。程序流程如图 5 所示开始pa&pbpapbpa-expnexpns=(POLY)malloc(sizeof(struct PNode); s-coef=pb-coefs-expn=pb-expn;s-next=NULL;pc-next=s;pc=s; pb=pb-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=
11、spa=pa-next; ; YNYN结束s=(POLY)malloc(sizeof(struct PNode); s-coef=pa-coef;s-expn=pa-expn;s-next=NULL; pc-next=s; pc=s; pa=pa-next; s=(POLY)malloc(sizeof(struct PNode);s-coef=pb-coef;s-expn=pb-expn; s-next=NULL; pc-next=s; pc=s; pb=pb-next; YNint x; POLY pa,pb,pc,s; Hc=(POLY)malloc(sizeof(struct PNode