一元多项式的操作

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

<数据结构>课程设计

题目:(1.2)一元多项式的操作

班级:

姓名:XXX

学号:

完成日期:2014/12/6

一元多项式的操作。(任意选择三项要求)

问题描述:设计一个一元稀疏多项式简单计算器。

要求:

(1)输入并建立多项式。

(2)输出多项式,输出形式为整数序列:n,c1,e1,,c2,e2,…,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列。

(3)多项式a和b相加,建立多项式a+b。

(4)多项式a和b相减,建立多项式a-b。

(5)计算多项式在x处的值。

(6)求多项式a的导函数。

(7)多项式a和b相乘,建立多项式a*b。

1、需求分析:

(1).输入形式:

函数名+'('+表达式名或表达式或不加任何东西+')'+';'

再按回车;

其中大写字母开头为表达式名,变量名只能为'x';

如:

Create(A,2x);

Show(*);

Add(A,A,3);

Show(A);

Cal(A,2);

Delete(A);

Quit();

数值类型:

表达式:A=coef*x^expn;

其中:coef为x的系数,为浮点型;expn为x的指数,为整型

即;A=0.2x^-3;

(2).输出型式:

Error::….

Create OK!;

A=2x+3;

Delete OK!

A(x=2)=7;

(3)程序所能达到的功能。

表达式的创建、删除、显示、以及表达式的加、减、乘运算,以及给x赋值,计算出表达式相应的值。

(4)测试数据。

Create(A,2x);

Show(*);

Add(A,A,3);

Show(A);

Cal(A,2);

Delete(A);

Quit();

2、概要设计

图1 表达式结构设计

3、详细设计

(1)基本操作:

创建表达式:

void CreatList_NULL(LinkList *L);创建空链表

int createByName(char* name);

2)表达式操作:

排序:void Sort(LinkList *L);

去重:void quchong(LinkList *L);

删除表达式:void deleteByName(char* name);

显示表达式:void show(char *name);

(3)表达式间的操作:

表达式相加减:void Adds(LinkList *L,LinkList li)

表达式相乘:void Multiplication(LinkList *L,LinkList li1,LinkList li2);(4)数据结构

typedef struct{//表达式的一项

float coef;//x的系数

int expn;//x的指数

char nch;//参数名x 没用到

}term,*Tset,ElemType;

///LinkList{

typedef struct LNode{

ElemType data;//数据

struct LNode *Next;//下一个节点

}LNode,*LinkList,*Node;//链表

图2 测试结果

7、附录(附全部代码)

///////////////////////////////////////////////////////////////////////////////

//编译环境:DEV-C++

//日期:2014/12/19

//语言:c

//名称:表达式运算

//包含文件:

//const.h 常量定义

//LinkList.h链表操作

//一元多项式.c 源文件

/////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////

////const.h 常量定义

/////////////////////////////////////////////////////////

#ifndef _CONST_H___

#define _CONST_H___

#define OK 1

#define TRUE 1

#define FALSE 0

#define INFEASIBLE -1

#ifndef OVERFLOW

#define OVERFLOW -2

#endif

#define NOANSWER -1

#define null 0

#define nullptr 0

#define PI 3.141592654

#define GOOD 1

#define BAD 2

#define OVER 2

#ifndef ERROR

#define ERROR 0

#endif

typedef int BOOL;

#endif

/////////////////////////////////////////////////////////

//LinkList.h链表操作

///////////////////////////////////////////

#ifndef __LINKLIST_H__

#define __LINKLIST_H__

相关文档
最新文档