数据结构课程设计之一元多项式加减乘.doc

数据结构课程设计之一元多项式加减乘.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之一元多项式加减乘

##大学 数据结构课程设计报告 题目:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现 院(系): 计算机工程学院 学生姓名: 班级: 学号: 起迄日期: 2011.06.20-06.30 指导教师: 2010—2011年度 第 2 学期 一、需求分析 1、顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。可以分为几个模块:输入模块、输出模块(升幂降幂)、数据处理模块(多项式的加减乘)、主程序模块。 2、在程序过程中加入汉字提示符,让读者清楚明白的操作该程序。运行程序时看起来简洁有序,操作简单明了 3、程序执行时的命令:①选择创建两个一元多项式②输入第一个一元多项式的项数③依次输入一元多项式的系数和指数④以相同方式输入第二个一元多项式⑤选择操作方式⑥选择降幂或升幂排序⑦输出结果⑧是否退出。 4、测试数据。输入的一元多项式系数指数分别为7 0,3 1,9 8,5 17和8 1,22 7,-9 8。加法结果为;升幂 降幂 减法结果为:升幂 降幂 乘法结果为:升幂 降幂 二、 概要设计 1、设计思路: 在该程序中分别分为顺序存储和链式存储结构。 2、数据结构设计: 一元多项式抽象数据类型的定义: ADT Polynomial{ 数据对象:D={ai|ai∈TermSet,i=1,2…,m,m=0 TermSet中的每一个元素包含一个表示系数的实数和表示指数的整数} 数据关系:R1={ai-1,ai|ai-1,ai∈D, 且ai-1中的指数值ai中的指数值,i=2,…,n} 基本操作: CreatPolyn(P,m) 操作结果:输入m项的系数和指数,建立一元多项式P. DesteoyPolyn(P) 初始条件:一元多项式P已存在。 操作结果:销毁一元多项式P。 PrintfPolyn(P) 初始条件:一元多项式P已存在。 操作结果:打印输出一元多项式P。 PolynLength(P) 初始条件:一元多项式P已存在。 操作结果:返回一元多项式P的项数。 AddPolyn(Pa,Pb) 初始条件:一元多项式Pa和Pb已存在。 操作结果:完成一元多项式的加法运算,即:Pa=Pa+Pb,并销毁一元多项式Pb。 SubtractPolyn(Pa,Pb) 初始条件:一元多项式Pa和Pb已存在。 操作结果:完成一元多项式的减法运算,即:Pa=Pa-Pb,并销毁一元多项式Pb。 MultiplyPolyn(Pa,Pb) 初始条件:一元多项式Pa和Pb已存在。 操作结果:完成一元多项式的乘法运算,即:Pa=Pa×Pb,并销毁一元多项式Pb。 }ADT Polynomial 3.软件结构设计: 本程序主要分为四大模块: ①主程序模块 ②输入模块:通过Getpolyn函数输入 ③输出模块(升幂降幂):PrintPolyn函数实现输出 ④数据处理模块(多项式的加减乘):通过一元多项式的Polynomial基本操作实现 三、 详细设计 1.定义程序中所有用到的数据及其数据结构,基本操作typedef struct { float coef; //系数 int expn; //指数 }term; /*1、创建并初始化多项式链表*/ polynomail creatpolyn(polynomail P,int m) { polynomail r,q,p,s,Q; int i; P=(LNode*)malloc(sizeof(LNode)); r=P; for(i=0;im;i++) { s=(LNode*)malloc(sizeof(LNode)); printf(请输入第%d项的系数和指数:,i+1); scanf(%f%d,s-data.coef,s-data.expn); r-next=s; r=s; } r-next=NULL; if(P-next-next!=NULL) { for(q=P-next;q!=NULL/*q-next!=NULL*/;q=q-next)//合并同类项 for(p=q-next,r=q;p!=NULL;) if(q-data.expn==p-data.expn) { q-data.coef=q-data.coef+p-data.coef; r-next=p-next; Q=p;p=p-next; free(Q); } else

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档