多项式类的设计与实现(MFC)(6)

2019-04-09 10:27

况 况

q1=p1;q2=p2; h=k=new node; while(q1 && q2) { } if(q2)

k->next=q2; t=h; h=h->next;

if(q1->expn==q2->expn)//指数相同的情况 { }

else if(q1->expn>q2->expn)//第一项的指数比第二项指数大的情{ }

else if(q1->expnexpn)//第一项的指数比第二项指数小的情{ }

q1=q1->next; k=k->next; k->next=q2; t=q2->next; q2->next=q1; k=k->next; q2=t;

q1->coef=q1->coef+q2->coef; q1=q1->next; k=k->next; t=q2; q2=q2->next; delete t;

k->next=p1;

- 23 -

}

delete t; return h;

⑦ 编写乘法运算处理函数,具体代码如下: node *multiply(node *p1,node *p2) {

node *i,*j,*k,*s,*l,*m,*n;//乘法算法 i=p1; j=p2;

m=j;//保存j的头结点 k=f(0,0);

//保存k为头结点 {

j=m;

while(j)//乘法计算算法,并实现升序排序 {

l=f(0,0);//新计算结果保存在一个单独结点中,用于对之前生成的l->coef=(i->coef)*(j->coef); l->expn=(i->expn)+(j->expn);

;

s=k->next;//s用于对链表的遍历,n为s前驱 while(s) {

if(l->expn==s->expn) { }

else if(l->expnexpn) {

n->next=l; s->coef+=l->coef; delete l; break;

while(i)//创建乘法计算结果链表,形成头结点为k的链表

链表进行对比,形成升序排列

n=k

- 24 -

}

}

}

}

}

l->next=s; break;

else { }

n=n->next; s=s->next;

if(s==NULL) { } j=j->next;

n->next=l;

i=i->next;

return k->next;

⑧ 编写构造多项式具体代码如下: struct node {

node *f(int a,float b) {

node *p=new node; int expn; float coef; node *next;

};//结点结构体

- 25 -

p->coef=b; p->expn=a; p->next=NULL; return p;

}//创建结点

node *copy(node *p)//复制链表的函数 {

node *h,*d,*q,*k,*s;

h=f(0,0);//创建头结点,留空,为了能得到与新创建的结点对比的结点(即是k)的前驱

q=p; while(q) {

d=f(q->expn,q->coef);//创建新结点

s=h;k=s->next;//s是前驱,k是与d做比较的 while(k) { } if(!k)

if(k->expn==d->expn) { }

else if(k->expnexpn) { }

else if(k->expn>d->expn) { }

s->next=d; d->next=k; break; k=k->next; s=s->next;

k->coef+=d->coef;delete d;break;

- 26 -

}

}

{ } q=q->next;

s->next=d;

return h->next;

6.2 程序测试

运行程序后,首先出现的界面如图8所示。

图8 程序初始运行界面

单击添加按钮后,可将多项式在界面上显示出来,如图9所示。

- 27 -


多项式类的设计与实现(MFC)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中安项目施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: