数据结构课程设计报告一元多项式加减乘除

更新时间:2023-11-24 10:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

多项式想加减与乘与升降序

学 院 计算机科学与技术 专 业 信 息 安 全 学 号 201312070 学 生 姓 名 陶宝中 辅导教师姓名

2014年12月 22 日

一、设计目的与内容

了解数据结构的与算法的设计方法,独立分析和设计一元多项式加减与乘除的程序编码,通过程序编写掌握软件开发过程的问题分析,系统设计,程序编码,测试等基本方法和技能,提高综合运用所学理论知识和方法独立分析和解决问题的能力,通过这次实践将实验问题中的所涉及的对象在计算机中表示出来并对他们进行处理,掌握线除 。

任务与分析

本课题主要的目的是分别采用顺序和动态存储结构实现一元多项式的加法、减法和乘法。并将操作结果分别按升序和降序输出

程序的主要功能 一元多项式创建

建立一元多项式的顺序表和链式表,按程序提示输入每个项数据结束创建。借助元素在存储器中的相对位置来表示数据元素之间的关系,顺序表中第i个位置表示一元多项式的第i项的系数为第i个位置存放的内容,指数为i-1。创建一个一元多项式顺序表,对一元多项式的运算中会出现的各种情况进行分析,实现一元多项式的相加、相减、相乘操作。用链表来表示只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个term项结构和指向下一个节点的指针域,term又包括系数和指数两个域分别存放该项的系数、。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减、相乘操作。

一元多项式的加法

对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别复抄到和多项式中去。

一元多项式的减法

对于两个一元多项式中所有指数相同的项,对应系数相减,若其差不为零,则构成“和多项式”中的一项;对于两个一元多项式中所有指数不相同的项,将其按减法规则复抄到差多项式中去。

1

一元多项式的乘法

将乘法运算分解为一系列的加法运算利用两个一元多项式相加的算法实现。

一元多项式项的指数比较

比较相邻两项的指数的大小。按升序排列时,前面项的指数大于后面项的指数就交换其项的位置。按降序序排列时,后面项的指数大于前面项的指数就交换其项的位置。

一元多项式运算结果升降排序

一元多项式运算结果选择调用降序或升序排序函数。

一元多项式的输出

将选择的运算操作结果输出。

一元多项式的销毁

销毁已建立的两个多项式,释放空间。

3 程序运行平台

VC++6.0。 编译,链接,执行。 Windows XP。

4 总体设计

图4。1 系统总体框架图

主 函 数 创建多项式 多项式加法 多项式减法 多项式乘法 多项式升降序多项式 输出 2

5 程序类的说明

(1)Ploy结构声明

typedef struct //顺序表结构声明 {

int a[N];//记录多项式 int len;//记录多项式的长度 }Ploy;

(2)term结构声明

typedef struct //项的表示 { float coef; //系数 int expn; //指数 }term; (3)LNode结构声明

typedef struct LNode

{ term data; //term多项式值 struct LNode *next;

}LNode,*LinkList; //两个类型名

typedef LinkList polynomail; //用带头结点的有序链表表示多项式

6 模块分析

整个流程图如图所示:

3

图1

6.1 创建模块

6.1.1、链式存储结构的一元多项式的创建 程序源代码:

polynomail creatpolyn(polynomail P,int m) {

//输入m项的系数和指数,建立表示一元多项式的有序链表P polynomail r,q,p,s,Q; int i;

P=(LNode*)malloc(sizeof(LNode)); r=P;

for(i=0;i

s=(LNode*)malloc(sizeof(LNode));

printf(\请输入第%d项的系数和指数:\ scanf(\ r->next=s; r=s; }

r->next=NULL;

4

本文来源:https://www.bwwdw.com/article/fqzt.html

Top