一元多项式的操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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__