当前位置:首页 > 多项式计算
一、 摘要
根据课程设计书的要求,实现多项式计算器的功能。为了完成该设计,用到了本学期学习的数据结构链表结构。以及对链表结构各种操作。但我在链表的结构上进行了创新。在存储多项式的链表结构基础上用了多项式的名字又建立了一个索引表。使该多项式计算器有短暂的记忆功能。在此数据结构的基础上用C语言完成了代码的编写。实现了多项式计算器的以下功能: 1. 多项式的存储 2. 多项式的输出 3. 多项式的加法运算 4. 多项式的减法运算 5. 多项式的乘法运算 6. 多项式的求值运算 7. 多项式的求导运算
实现每个功能的时候,我对每个模块进行了封装。并且创建了动态库。使程序的设计体现了工程学的要求
关键词:多项式运算 链式数据结构
二、 引言
按照课程任务书的要求,我先进行了课程设计的需求分析,和概要设计,并完成了详细设计。最后完成代码的书写以及程序的调试。在文档中,详细的说明了多项式计算器所有模块的设计。以及框架的搭建。
三、 需求分析
1、 功能需求
多项式的输入输出设计、多项式加减运算,多项式相乘运算,给求多项式的值运算,求多项式的导函数。
2、 性能需求
(1)描述多项式计算器的数据模型,设计高效的数据结构完成总体设计,搭好框架,确定人机对话的界面(要求界面上能动态体现出列的过程),实现功能;
- 1 -
(2)界面友好,函数功能要划分好 (3)要有算法设计的流程图 (4)程序要加必要的注释 (5)要提供程序测试方案
3、 开发环境需求
开发环境:LINIX+GUN 开发语言:C语言 开发界面:LINUX终端
四、 概要设计
1、任务
目标:本阶段的主要目标就是多项式计算器系统的模块设计问题,包括系统的处理流程、总体结构与模块、每一模块的功能以及接口的设计、模块的设计、运行与出错设计等 环境:windows 以及工具
需求:需要把程序的大体框架用流程图表现出来
2、总体设计
总体结构与模块:
- 2 -
功能与模块的关系:
A. 主界面:void JieMian();
B. 多项式的创建:void CreatPolyn(struct init *pinit); C. 多项式的打印: void PrintPolyn(struct init *pinit); D. 多项式的加法:void AddPolyn(struct init *pinit); E. 多项式的减法:void SubPolyn(struct init *pinit); F. 多项式的乘法:void MinusPolyn(struct init *pinit); G. 多项式的求值:void QiuZhi(struct init * pinit); H. 多项式的求导:void QiuDao(struct init *pinit);
3、接口设计:
定义了三个结构体: typedef struct node {
int coef; //系数 int exp; //指数 struct node *next; }Node;
typedef struct name {
char s[N];//多项式名字
struct node *point;//指向多项式的表头 struct name *next; }Name;
struct init {
Name *head; //所对应总表的表头 Name *nowpoint;//指向当前的多项式 };
Struct Init的作用是对表头和指向当前表达式的表头
4、模块设计:
每一个函数都在一个.c文件中进行了定义,主方法mian()在main.c进行了定义并在polyn.h中进行了声明。
文件模块和函数的对应关系如下:
- 3 -
1. JieMian()函数在jie_main.c中定
2. CreatPolyn()函数在creat_polyn.c中定义 3. PrintPolyn()函数在print_polyn.c中定义
4. AddPolyn()函数在add_polyn.c中进行了定义 5. SubPolyn()函数在sub_polyn.c中进行了定义
6. MinusPolyn()函数在minus_polyn.c中进行了定义 7. QiuZhi()函数在qiuzhi_polyn.c中进行了定义 8. QiuDao()函数在qiuzhi_polyn.c中进行了定义
5、运行设计:
生成动态库: libpolyn.so
通过: gcc -shared -fPIC –o 生成动态库 生成可执行文件:mian:
通过:gcc main.c –o main ./libpolyn.so
6、数据结构设计:
- 4 -
共分享92篇相关文档