数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》

数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》

ID:14105092

大小:137.50 KB

页数:20页

时间:2018-07-26

数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》_第1页
数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》_第2页
数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》_第3页
数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》_第4页
数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》_第5页
资源描述:

《数据结构课程设计——《一元多项式的表达及其运算 集合的表达与运算》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程设计目录1.一元多项式的表示及其运算11.1问题描述11.2设计方案与概要设计11.3详细设计21.4程序运行说明与结果112.集合的表示与运算122.1问题描述122.2设计方案与概要设计122.3详细设计132.4程序运行说明与结果183.总结与分析1919数据结构课程设计1.一元多项式的表示及其运算1.1问题描述(1)输入并建立一元多项式(2)输出一元多项式(3)多项式实现相加、相减及相乘(4)输入多项式中的未知数,计算多项式的结果(5)退出程序1.2设计方案与概要设计程序以用户

2、和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。程序执行的命令包括:(1)多项式的项作为LinkList的数据元素,coef为系数,浮点型,expn为指数,整型(2)构造一个表示一元多项式链表La,存储多项式的项数、系数和指数等数据(3)利用两个多项式的结点构成"和多项式",AddPolyn(&Pa,&Pb),一元多项式Pa和Pb已存在,完成多项式相加运算,即:Pa=Pa+Pb,并销毁一元多项式Pb。(4

3、)利用两个多项式的结点构成"差多项式",利用两个多项式的结点构成"和多项式",SubtractPolyn(&Pa,&Pb),一元多项式Pa和Pb已存在,完成多项式相减运算,即:Pa=Pa-Pb,并销毁一元多项式Pb。(5)利用两个多项式的结点构成"积多项式",利用两个多项式的结点构成"和多项式"19数据结构课程设计,MultiplyPolyn(&Pa,&Pb),一元多项式Pa和Pb已存在,完成多项式相乘运算,即:Pa=Pa×Pb,并销毁一元多项式Pb(6)制作标题栏(7)使用switch语句实行多

4、分支选择操作,当case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句,输出提示用户出错,并重新输入1.3详细设计#include#include#includetypedefstructLNode{floatcoef;intexpn;structLNode*next;}LNode;LNode*InitPolyn(LNode*La,intn){if(n<=0)returnNULL;LNode*h=La=(LNode

5、*)malloc(sizeof(LNode)),*Lb;La->coef=0.0;inti;printf("依次输入%d个非零项(每项前一个为系数,后一个为指数)",n);for(i=1;i<=n;++i){scanf("%f%d",&La->coef,&La->expn);if(La->coef)Lb=La;La=La->next=(LNode*)malloc(sizeof(LNode));19数据结构课程设计}Lb->next=NULL;free(La);returnh;}LNode*se

6、lsort(LNode*h){LNode*g,*La,*Lb;if(!h)returnNULL;floatf;inti,fini=1;for(g=h;g->next&&fini;g=g->next){fini=0;for(La=h,Lb=h->next;Lb;La=La->next,Lb=Lb->next)if(La->expnexpn){f=La->coef;i=La->expn;La->coef=Lb->coef;La->expn=Lb->expn;Lb->coef=f;Lb->ex

7、pn=i;fini=1;}}for(g=h,La=g->next;La;)if(g->expn==La->expn){g->coef+=La->coef;g->next=La->next;Lb=La;La=La->next;free(Lb);}elseif(g->next){19数据结构课程设计g=g->next;La=La->next;}returnh;}voidPrintfPoly(LNode*La){LNode*Lb=La;if(!Lb){putchar('0');return;}if(Lb

8、->coef!=1){printf("%g",Lb->coef);if(Lb->expn==1)putchar('X');elseif(Lb->expn)printf("X^%d",Lb->expn);}elseif(!Lb->expn)putchar('1');elseif(Lb->expn==1)putchar('X');elseprintf("X^%d",Lb->expn);Lb=Lb->next;while(Lb){if(Lb->coef>0)putchar('+');if

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。