C++一元多项式计算问题-课程设计报告说明书

上传人:壹****1 文档编号:492697029 上传时间:2024-01-18 格式:DOC 页数:25 大小:2.12MB
返回 下载 相关 举报
C++一元多项式计算问题-课程设计报告说明书_第1页
第1页 / 共25页
C++一元多项式计算问题-课程设计报告说明书_第2页
第2页 / 共25页
C++一元多项式计算问题-课程设计报告说明书_第3页
第3页 / 共25页
C++一元多项式计算问题-课程设计报告说明书_第4页
第4页 / 共25页
C++一元多项式计算问题-课程设计报告说明书_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《C++一元多项式计算问题-课程设计报告说明书》由会员分享,可在线阅读,更多相关《C++一元多项式计算问题-课程设计报告说明书(25页珍藏版)》请在金锄头文库上搜索。

1、.学 院课程设计说明书题目一元多项式计算问题系(部)计算机科学与技术系专业(班级)计算机科学与技术专业学号指导教师起止日期第十三、十四周-.课程设计任务书课程名称:数据结构与算法设计题目:一元多项式计算问题技术参数和设计要求:问题描述:设计一个稀疏多项式简单计算器基本要求:(1)输入并分别建立多项式A和B(2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列(3)完成两个多项式的相加、相减,并将结果输出;测试数据:(1) A+B A= 3x14-8x8+6x2+2 B=2x10+4x8+-6x2 (2) A

2、-B A=11x14+3x10+2x8+10x6+5 B=2x14+3x8+5x6+7(3) A+B A=x3+x1 B=-x3-x1(4) A+B A=0 B=x7+x5+x3+x1(5) A-B A=100x100+50x50+20x20+x B=10x100+10x50+10x20+x选作容:1.多项式在x=1时的运算结果2求多项式A和B的乘积设计工作量:40课时工作计划:班级:计科3班 指导教师:钢钦周次星期地点设计方式13星期一1-2节A多1讲授容星期二3-4节科1608答疑星期二5-8节1403上机调试星期三1-4节科1608答疑星期四1-4节1404上机调试星期四5-8节科160

3、8答疑1414星期二3-4节科1608答疑星期二5-8节1403上机调试星期三1-4节科1608答疑星期四1-4节1404上机调试星期四5-8节科1608答疑星期四9-10节1403答辩指导教师签名:日期:教研室主任签名: 日期:系主任签名: 日期:学院课程设计鉴定表学号专业计算机科学与技术专业班级设计题目一元多项式计算问题指导教师指导教师意见:评定等级: 教师签名: 日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期:系部意见:系主任签名:日期:说明课程设计成绩分“优秀、“良好、“及格、“不及格四类;摘要本文是关于一个一元稀疏多项式计算器的问题。一元稀疏多

4、项式计算容包括输入并建立多项式,多项式相加,多项式求值,多项式求乘积以及输出多项式。本程序运用面向对象程序设计方法,使用C+语言,利用Microsoft Visual C+ 6.0开发工具,还有数据结构课中学到的链式存储结构,存储一元稀疏多项式,从而实现程序的基本功能。在程序中定义了各种类型的运算的模块,通过主程序的调用来完成它们之间的配合,进而使得一元稀疏多项式计算器的顺利运行。关键词:数据结构;一元稀疏多项式;链表; C+语言目录1 设计容与要求 12.设计说明 12.1 问题描述与功能设计1 2.2 数据结构与算法1 2.3 函数定义3 2.4 界面设计4 2.5 编码5 2.6 测试1

5、03 总结14参考文献 15附录A 源代码16-.设计容与要求设计容:设计一个稀疏多项式简单计算器,能够进行简单的基本运算。如:多项式相加、多项式相减、多项式求值等等。基本要求:(1)输入并分别建立多项式A和B(2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列(3)完成两个多项式的相加、相减,并将结果输出;创新要求:1.多项式在x=1时的运算结果2求多项式A和B的乘积2.设计说明2.1 问题描述与功能设计本程序要求能够实现从键盘键入两个多项式的系数、指数相关数据后,能够进行多项式输出、多项式相加、多项式

6、相减、多项式求值、多项式求积的运算。2.2 数据结构与算法数据结构多项式的逻辑结构:视为线性表p(x)=3x14-8x8+6x2+2数据元素 (coef,exp) 表示多项式项 coefXexp,coef是该项的系数,exp是变元X的指数。为了实现任意多项式的运算,因此选择单链表的结构体,它有一个系数,指数,下一个指针3个成员。算法多项式的输入与建立调用CreatePolyn函数建立链表,将多项式每一项的系数与指数作为链表一个结点的数据,按照指示输入每一项的系数与指数时,将调用Insert函数,将输入的结点信息按指数降序排列的方式插入到之前建立的链表中,并合并同类项。依次输入、建立一元多项式p

7、a和pb。如下列图。多项式的输出调用PrintPolyn函数将多项式链表中的结点数据按照一元多项式的格式(如:6x5+3x3+7x+3)输出到屏幕上。两个多项式的加法调用AddPolyn函数直接对两个多项式的链表的结点成员的系数与指数按照数学中多项式相加的原那么进行操作。其中要调用pare函数对两个多项式的指数或是项数进行比较。相加所得的多项式存放到新建的第三个多项式中。再对第三个多项式输出即可。两个多项式的减法调用SubtractPolyn函数对两个多项式减法运算。首先对要减的多项式的系数求反,接着调用AddPolyn函数对处理后的多项式相加即两个多项式的相减。所得的多项式存放到新建的第三个

8、多项式中,再对第三个多项式输出即可。多项式的求值调用ValuePolyn函数对多项式求值。在用户输入X的值后,对链表每个结点的数据进行求值,然后求和即多项式在X为某一值的值。其中用到C语言中的数学函数:pow。其功能为计算x的y次幂,所在头文件:math.h。两个多项式的乘法调用MultiplyPolyn函数对两个多项式进行乘法运算。根据数学知识,依次用一个多项式的每一项乘以另一个多项式的每一项,再求和、合并同类项即两个多项式的乘积。当中用了多两个多项式的while循环,以确保两个多项式的每一项都得到相应的运算,每一次运算后调用Insert()函数把乘积插入到新建的链表中,以得到一个结点信息按

9、指数降序排列的方式排列,并以合并同类项的链表。2.3 函数定义为了程序功能的顺利实现,在本程序中定义了如下函数:函数名 功能Insert() 链表结点数据的插入与排序CreatePolyn() 链表头结点的创建DestroyPolyn() 链表的销毁PrintPolyn() 链表数据的多项式形象化输出pare() 两个多项式的指数或是项数进行比较AddPolyn() 两个多项式的加法SubtractPolyn() 两个多项式的减法ValuePolyn() 多项式的求值MultiplyPolyn() 两个多项式的乘法desktop() 程序界面的实现2.4 界面设计程序数据初始界面:程序操作主界

10、面:2.5 编码链表建立的函数,该函数在多项式信息输入时按照指数降序排列建立链表,并在出现同类项时合并。void Insert(Polyn p,Polyn h) if(p-coe=0) delete p; /当前结点的coe成员等于0的时候删除当前结点elsePolyn q1,q2;q1=h;q2=h-next;while(q2&p-expexp)/查找插入位置 q1=q2;q2=q2-next;if(q2&p-exp=q2-exp) /将指数相同相合并 q2-coe+=p-coe;delete p;if(!q2-coe) q1-next=q2-next;delete q2;else/指数为新时将结点插入 p-next=q2;q1-next=p;链表信息按照多项式形式输出。void PrintPolyn(Polyn P) Polyn q=P-next; int flag=1; /项数计数器if(!q) /假设多项式为空,输出0cout0; coutcoe0&flag!=1) coutcoe!=1&q-coe!=-1) /系数非1或-1的普通情况coutcoe;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号