- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计 一元多项式的加法减法乘法的实现 doc
一、设计题目
一元多项式的加法、减法、乘法的实现。
二、主要内容
设有一元多项式Am(x)和Bn(x).
Am(x)=A0+A1x1+A2x2+A3x3+… +Amxm
Bn(x)=B0+B1x1+B2x2+B3x3+… +Bnxn
请实现求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。 要求:
1)? 首先判定多项式是否稀疏
2)??采用动态存储结构实现;
3)??结果M(x)中无重复阶项和无零系数项;
4)??要求输出结果的升幂和降幂两种排列情况
三、具体要求及应提交的材料
1.每个同学以自己的学号和姓名建一个文件夹,如:“312009080611101张三”。里面应包括:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中)、任务书和课程设计说明书的电子文档。
2.打印的课程设计说明书(注意:在封面后夹入打印的“任务书”以后再装订)。
四、主要技术路线提示
为把多个小功能结合成一个完整的小软件,需使用“菜单设计”技术数据结构课程设计出版社2007
[2]严蔚敏(C语言版)严蔚敏(C语言版)
目 录
1需求分析 1
2开发及运行平台 2
3 概要设计 3
4 详细设计 4
5 调试分析 8
6 测试结果 9
7 结论 11
致 谢 12
参考文献 13
附 录 16
1需求分析
动态链表结构下的一元多项式的加法、减法、乘法的实现。?设有一元多项式Am(x)和Bn(x).?Am(x)=A0+A1x1+A2x2+A3x3+… +Amxm? Bn(x)=B0+B1x1+B2x2+B3x3+… +Bnxn 实现求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)×Bn(x)。2
请输入第1项的系数和指数:
系数:1
指数:1
请输入第2项的系数和指数:
系数:1
指数:2
(2)输出形式
请选择:5
一元多项式A为:
x+x^2
一元多项式B为:
4x^4+5x^5+6x^6
(3)程序所能达到的功能1)?首先判定多项式是否稀疏2)?采用动态存储结构实现3)?结果M(x)中无重复阶项和无零系数项4)?要求输出结果的升幂和降幂两种排列情况(4)测试数据:包括正确地输入及其输出结果和含有错误的输入及其输出结果。x+x^2
一元多项式B为:
4x^4+5x^5+6x^6
错误的输入:
请输入第1项的系数和指数:
系数:1
指数:1
请输入第2项的系数和指数:
系数:2
指数:1
输入的该项指数与多项式中已存在的某项相同,请重新创建一个正确的多项式
请输入第1项的系数和指数:
2开发及运行平台
Windows 7 alienware 平台上,Microsoft Visual studio 6.0 环境下开发。所以建议用户在使用时,在windows 7 平台上使用。3 概要设计
数据类型的定义struct Node
{
float coef;//结点类型,系数
int exp;//指数
};
typedef Node polynomial;
struct LNode
{
polynomial data;//链表类型
LNode *next;
};
typedef LNode* Link;
模块调用关系如图1所示:
图 1 一元多项式计算器模块调用图
4 详细设计
加法模块:
void PolyAdd(Link pc,Link pa,Link pb)
{
Link p1,p2,p,pd;
CopyLink(p1,pa);
CopyLink(p2,pb);
pc=new LNode;
pc-next-NULL;
p-pc;
p1-p1-next;
p2-p2-next;
while(p1不为空且p2不为空)
{if(p1-data.expp2-data.exp)
then: p-next=p1;p=p-next; p1=p1-next;
else if(p1-data.expp2-data.exp)
then: p-next-p2; p-p-next;p2-p2-next;
else
{p1-data.coef-p1-data.coef+p2-data.coef;//指数相同,系数想加
if(p1-data.coef不等于0)
{p-next-p1;
p-p-next;
p1-p1-next;
p2-p2-next;
}
else
{pd-p1;
p1-p1-next;
p2-p2-next;
文档评论(0)