课程设计说明书 NO.11
HD *daoshu(HD *h) /*求导*/ { JD *p=h->head; h->head=p; while(p!=NULL) { p->coef=p->coef*p->exp; p->exp=p->exp-1; p->exp=p->exp-1; p=p->next; } return h; } void plus(HD *ha,HD *hb) /*相加*/ { JD *p,*q,*u,*s; int x; p=ha->head; q=hb->head; s=ha; while((p!=NULL)&&(q!=NULL)) { if((p->exp)==(q->exp)) { x=p->coef+q->coef; if(x!=0) { p->coef=x; s=p; } else { s->next=p->next; free(p); } p=s->next; u=q; q=q->next; free(u); }
沈 阳 大 学 课程设计说明书 NO.12
else if(p->exp>q->exp) { u=q->next; q->next=p; s->next=q; s=q; q=u; } else { s=p; p=p->next; } } if(q!=NULL) s->next=q; free(hb); } void substract(HD *ha,HD *hb) /*相减 */ { JD *p,*q,*u,*s,*k; int x,i; p=ha->head; q=hb->head; s=ha; k=hb->head; for(i=0;i
沈 阳 大 学 课程设计说明书 NO.13
p->coef=x; s=p; } else { s->next=p->next; free(p); } p=s->next; u=q; q=q->next; free(u); } else if(p->exp>q->exp) { u=q->next; q->next=p; s->next=q; s=q; q=u; } else { s=p; p=p->next; } } if(q!=NULL) s->next=q; free(hb); } void PP() /*相加*/ { HD *ha,*hb,*ha1,*hb1; printf(\输入第一个多项式:\\n\ ha1=typeinput(); printf(\输入结束\\n\ ha=arrange(ha1); output(ha); printf(\输入第二个多项式:\\n\
沈 阳 大 学 课程设计说明书 NO.14
hb1=typeinput(); hb=arrange(hb1); output(hb); printf(\输入结束\\n\printf(\相加........\\n\plus(ha,hb); output(ha); } void SS() { HD *ha,*hb,*ha1,*hb1; printf(\输入第一个多项式:\\n\ha1=typeinput(); printf(\输入结束\\n\ ha=arrange(ha1); output(ha); printf(\输入第二个多项式:\\n\ hb1=typeinput(); hb=arrange(hb1); output(hb); printf(\输入结束\\n\ substract(ha,hb); printf(\相减........\\n\ output(ha); } void main() /*主函数*/ { int ma; HD *h,*ht1,*ht4; printf(\一元多项式计算器*****************\\n\ printf(\求值------1\\n\\t多项式相加-------2\\n\\t相减-------3\\n\ scanf(\ if(ma==1) { h=typeinput(); h=arrange(h); ht4=h; output(ht4);
沈 阳 大 学 课程设计说明书 NO.15
ht4=h; printf(\求值.........\\n\ valueoutput(ht4); printf(\ ht4=h; printf(\求导........\\n\ ht1=daoshu(ht4); output(ht1); } else if(ma==2) PP(); else { SS(); } } 3 调试分析与程序运行结果 3.1程序运行出现的界面 1.程序运行以后将会出现如下的界面: 图3 界面初始状态
沈 阳 大 学