一元多项式计算器报告(C语言编程)(共7页).doc
《一元多项式计算器报告(C语言编程)(共7页).doc》由会员分享,可在线阅读,更多相关《一元多项式计算器报告(C语言编程)(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实 验 报 告题目:编制一个一元多项式基本运算的程序 姓名: 学号:PB 一、需求分析1 在通常的应用中,多项式的次数可能很高且变化很大,使得顺序存储结构的最大长度很难确定。由稀疏多项式的特点,故采用链式存储结构,可以不会带来浪费存储空间。2 程序中单链表存储,根据链表的指数域,对链表进行升序排序,可给运算带来方便。 3 程序设计是在VC6.0环境下设计的的。4 程序执行的命令为(程序主界面):二、概要设计抽象数据类型一元多项式的定义如下:1. LNode *MakeNode(double coef, int exp) 通过传入指数和系数创建一个节点,返回该节点的地址
2、。2. void InitList(LinkList &L) 初始化,带头节点3. void PrintPolyn (LinkList L) 传入链表的指针,打印该链表4. LinkList CreatPolyn(void)/输入m项的系数和指数,建立表示一元多项式的有序链表L5. double SumPolyn(LinkList L,double x) 传入链表的指针及x值,求多项式的值。6. void DestroyPolyn (LinkList &L) 销毁多项式,去掉头节点7. void ClearPolyn (LinkList &L) 清空多项式,保留节点8. void CopyPo
3、lyn (LinkList La, LinkList &Lb) 将La位置的多项式复制到Lb位置9. void AddPolyn(LinkList L,LinkList J ,LinkList &K) 将a和b多项式相加存到c10. void MultiplyPolyn(LinkList L,LinkList J,LinkList &K) 将a和b相减存到c11. void MultiplyPolyn(LinkList L,LinkList J,LinkList &K) 将a和b多项式相乘存到c12. void OrderInsert(LinkList L,LNode *r) /根据链表的ex
4、pn指数域,对链表进行升序插入。13. void DifferentialPolyn(LinkList L,LinkList &L2) 对L1求导存到L214. void IntegralPolyn(LinkList L,LinkList &L2) 对L1积分存到L22. 主程序:void main( )初始化;While(1)Switch()选择命令;处理命令;三、详细设计1. 元素类型、结点类型和指针类型 typedef struct PolyNodeint expn; /指数double coef;/系数struct PolyNode *next;LNode,*LinkList; 2几个
5、基本操作的函数 1. LNode *MakeNode (double coef,int expn)/制造节点LNode *p;p=(LNode*)malloc(sizeof(LNode);p-coef=coef;p-expn=expn;p-next=NULL;return p;2. void OrderInsert(LinkList L,LNode *r) /根据链表的expn指数域,对链表进行升序插入if(!L)printf(error);LNode *p,*q; p=L;while(p-next&p-next-expnexpn) p=p-next; if(p-next&p-next-exp
6、n=r-expn)p-next-coef+=r-coef; if(p-next-coef=0)q=p-next; p-next=q-next;free(q);free(r); else r-next=p-next; p-next=r; 3. void AddPolyn(LinkList L,LinkList J,LinkList &K)/多项式相加if(!L|!J)printf(errorn);return;LNode *p,*q,*m;p=L-next;q=J-next;InitList(K);while(p) m=MakeNode(p-coef,p-expn); OrderInsert(K
7、,m);p=p-next;while(q) m=MakeNode(q-coef,q-expn);OrderInsert(K,m);q=q-next;4. void MultiplyPolyn(LinkList L,LinkList J,LinkList &K)/多项式相乘 if(!L|!J) printf(error); return; LNode *p,*q,*m; p=L-next; InitList(K); while(p) q=J-next; while(q) m=MakeNode(p-coef*q-coef,p-expn+q-expn); OrderInsert(K,m); q=q-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一元 多项式 计算器 报告 语言 编程
限制150内