• 大小: 2.35MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-09
  • 语言: C/C++
  • 标签: C++  polynomail  

资源简介

这是使用C++实现了多项式的加减乘运算,里面是一个完整的项目,运行环境是Win10+VS2013,直接点击Debug文件夹下的exe是可以直接运行的。如果你装的是VS2013,那么直接点击sln就可以打开项目文件,但是如果运行有问题,可以先删除Debug文件夹,因为文件路径不一样可能会有问题。或者直接新建一个项目,把cpp文件导入即可运行。

资源截图

代码片段和文件信息

#include  
using  namespace  std;

//#define  OVERFLOW  0
typedef  struct  LNode
{
float  coef;      //系数
int  expn;        //指数
struct  LNode  *next;
}LNode *linkList;

typedef  linkList  polynomail;   //用带表头结点的有序链表表示多项式

void  CreatPolyn(polynomail  &P);
//输入系数和指数,建立表示一元多项式的有序链表P

void  DestroyPolyn(polynomail  &P);
//销毁一元多项式P

void  PrintPolyn(polynomail  P);
//打印输出一元多项式

int  PolynLength(polynomail  P);
//返回一元多项式P中的项数

void  AddPolyn(polynomail  &Pa polynomail  &Pb);
//完成多项式相加运算,即:Pa=Pa+Pb并销毁一元多项式Pb
void  SubtratPolyn(polynomail  &Pa polynomail  &Pb);
//完成多项式相减运算,即:Pa=Pa-Pb并销毁一元多项式Pb


void  MultiplyPolyn(polynomail  &Pa polynomail  &Pb);
//完成多项式相乘运算,即:Pa=Pa*Pb并销毁一元多项式Pb


bool  InitList(linkList  &L)
{
L = (linkList)malloc(sizeof(LNode));
L->next = NULL;  //建立一个带头结点的单链表
if (!L)             //存储分配失败
exit(OVERFLOW);
return  true;
}

void  ListInsert_L(linkList  &L float  c int  e)
{
if (c)            //当系数不为0的时候
{
linkList  p = L->next;    //p指向L的首元结点
linkList  q = L;          //h指向L的头结点用于指向p的前一个结点
int  flag = 1;     //表示插入的数据的指数大于第一个元素
while (p)
{
if (e>p->expn)
{
p = p->next;    //使p指向下一个结点
q = q->next;
}
else  if (e == p->expn)
{
flag = 0;
break;
}
else
{
flag = -1;
break;
}
}
if (flag == 0)
{
p->coef = p->coef + c;
if (p->coef == 0)     //系数为零时删除该结点
{
q->next = p->next;
p = q->next;
}
}
else  if (flag == -1)
{
linkList  s = (linkList)malloc(sizeof(LNode));
if (!s)         //分配新结点失败
exit(OVERFLOW);
s->coef = c;
s->expn = e;
s->next = p;
q->next = s;
}
else
{
linkList  s = (linkList)malloc(sizeof(LNode));
if (!s)         //分配新结点失败
exit(OVERFLOW);
s->coef = c;
s->expn = e;
q->next = s;
s->next = NULL;
}
}
if (!c&&!L->next)
{
linkList  s;
s = (linkList)malloc(sizeof(LNode));
if (!s)         //分配新结点失败
exit(OVERFLOW);
L->next = s;
s->coef = 0;
s->next = NULL;
}
if (PolynLength(L)>1 && L->next->coef == 0)
{
L->next = L->next->next;
}
}

linkList  GetNode_L(linkList  L int  n)  //找到第i个结点
{
linkList  p = L->next;  //使p指向L的首元结点
for (int i = 1; i {
p = p->next;
}
return  p;
}

void  CreatPolyn(polynomail  &P)
{
InitList(P);
}

void  DestroyPolyn(polynomail  &P)
{
linkList  l = P->next;
while (!P->next)
{
P = P->next;
free(l);
l = P;
}
free(P);
}

void  PrintPolyn(polynomail  P)
{
if (P->next == NULL)
cout << “多项式不存在!!!!!!“;
else  if (P->next->coef != 0)
{
linkList  s = P->next;
for (int i = 0; i {
if (s->coef != 1 && s->coef != -1)
cout << s->coef;
else if (s->coef == -1)
cout << “-“;
if (s->expn != 1)
cout << “x^“ << s->expn;
else
cout << “x“;
if (s->next&&s->next->coef>0)
cout << “+“;
s = s->next;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-24 17:22  多项式\
     目录           0  2018-04-24 17:22  多项式\Debug\
     文件       71680  2015-11-08 14:04  多项式\Debug\多项式.exe
     文件      399972  2015-11-08 14:04  多项式\Debug\多项式.ilk
     文件      691200  2015-11-08 14:04  多项式\Debug\多项式.pdb
     目录           0  2018-04-24 17:22  多项式\多项式\
     目录           0  2018-04-24 17:22  多项式\多项式\Debug\
     文件      240640  2015-11-08 14:04  多项式\多项式\Debug\vc120.idb
     文件      323584  2015-11-08 14:04  多项式\多项式\Debug\vc120.pdb
     文件        1277  2015-11-08 14:04  多项式\多项式\Debug\多项式.log
     文件      163242  2015-11-08 14:04  多项式\多项式\Debug\多项式.obj
     目录           0  2018-04-24 17:22  多项式\多项式\Debug\多项式.tlog\
     文件        5284  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\CL.read.1.tlog
     文件         296  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\CL.write.1.tlog
     文件         556  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\cl.command.1.tlog
     文件         970  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\link.command.1.tlog
     文件        2390  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\link.read.1.tlog
     文件         276  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\link.write.1.tlog
     文件         157  2015-11-08 14:04  多项式\多项式\Debug\多项式.tlog\多项式.lastbuildstate
     文件        6453  2015-11-08 14:04  多项式\多项式\多项式.cpp
     文件        4091  2015-11-08 14:03  多项式\多项式\多项式.vcxproj
     文件         950  2015-11-08 14:03  多项式\多项式\多项式.vcxproj.filters
     文件     7208960  2015-11-24 10:49  多项式\多项式.sdf
     文件         973  2015-11-08 13:59  多项式\多项式.sln
     文件       18432  2015-11-24 10:49  多项式\多项式.v12.suo

评论

共有 条评论