首页 两个一元多项式之间进行简单的加减运算

两个一元多项式之间进行简单的加减运算

举报
开通vip

两个一元多项式之间进行简单的加减运算目录 1 课题描述及问题分析和任务定义    2 2逻辑设计    3 4详细设计    9 5程序编码    10 6 程序调试与测试    17 7总结    20 参考文献    21 1 课题描述及问题分析和任务定义 采用C语言编写一个一元多项式计算器,能将一个或两个一元多项式输入到计算机中,实现基本的加减计算功能。 实现的具体功能: (1)输入并建立多项式a和b; (2)输出多项式a和b; (3)多项式a和b相加,建立并输出多项式a+b; (4)多项式a和b相减,建立并输出多项式a-b; (5)输入...

两个一元多项式之间进行简单的加减运算
目录 1 课题描述及问题分析和任务定义    2 2逻辑设计    3 4详细设计    9 5程序编码    10 6 程序调试与测试    17 7总结    20 参考文献    21 1 课题描述及问题分析和任务定义 采用C语言编写一个一元多项式计算器,能将一个或两个一元多项式输入到计算机中,实现基本的加减计算功能。 实现的具体功能: (1)输入并建立多项式a和b; (2)输出多项式a和b; (3)多项式a和b相加,建立并输出多项式a+b; (4)多项式a和b相减,建立并输出多项式a-b; (5)输入多项式中的未知数,计算多项式的结果。 最终使使用者轻松运用此计算器解决一元多项式的加减计算 本计算器主要是为了执行两个一元多项式之间进行简单的加减运算,为此我们需要正确的输入输出多项式。并能够通过他们的运算关系建立相应的函数,使其能过准确的输出结果。为此我们需要通过学过的知识写出简单又正确的c语言程序 2逻辑设计 2.1Status main 程序主函数 NO 图2.1 2.2要求其他子函数不含同类项且指数递减 NO 图2.2 2.3输出多项式的函数 NO 图2.3 2.4多项式求和函数 NO 图2.4 2.5多项式求差函数 NO 图2.5 2.6输入有误指令函数运行过程 NO NO 图2.6 4详细设计 status CreatPoly(P_Poly*,int);  //创建多项式链 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf void OutP_Poly(P_Poly);        //输出多项式 void AddPoly(P_Poly*,P_Poly,P_Poly);  //求和 void DecPoly(P_Poly*,P_Poly,P_Poly);  //求差 void DelPoly(P_Poly*);  //删除并释放多项式 运用上述函数进行编程,组建成函数语句,使其正确运行达到目的 5程序编码 可依据上述程序流程设计图编写程序 #include #include #define OK 1; #define READ(I) while (((I)=getchar())=='\n');  //读入合法字符 typedef int status; typedef struct PolyNode { float coef; int expn; struct PolyNode *next; }Poly,*P_Poly; status CreatPoly(P_Poly*,int);  //创建多项式链表 void OutP_Poly(P_Poly);        //输出多项式 void AddPoly(P_Poly*,P_Poly,P_Poly);  //求和 void DecPoly(P_Poly*,P_Poly,P_Poly);  //求差 void DelPoly(P_Poly*);  //删除并释放多项式 status main() { P_Poly PolyHead[26]={0}; char menu,name; for (;;) { printf ("********************\n"); printf ("1.建立多项式\n"); printf ("2.输出多项式\n"); printf ("3.求两个多项式之和(必须先创建),建立和式并输出\n"); printf ("4.求两个多项式之差(必须先创建),建立差式并输出\n"); printf ("5.删除多项式\n"); printf ("6.退出\n"); printf ("********************\n"); printf ("请选择指令:"); READ(menu) switch (menu) { case '1': { int n; printf ("请输入要创建的多项式的名称(单个小写字母表示):"); READ(name) if (NULL!=PolyHead[name-'a']) { printf ("此多项式已经存在!\n"); break; } printf ("请输入项数:"); scanf ("%d",&n); if(CreatPoly(&PolyHead[name-'a'],n)) printf ("多项式%c创建完毕!\n",name); break; } case '2': printf ("请输入要输出的多项式的名称:"); READ(name) if (NULL==PolyHead[name-'a']) { printf ("此多项式不存在!\n"); break; } OutP_Poly(PolyHead[name-'a']); break; case '3': { char name1,name2; printf ("请输入加式一的名称:"); READ(name1) if (NULL==PolyHead[name1-'a']) { printf ("此多项式不存在!请先创建\n"); break; } printf ("请输入加式二的名称:"); READ(name2) if (NULL==PolyHead[name2-'a']) { printf ("此多项式不存在!请先创建\n"); break; } printf ("请输入要创建的和式的名称:"); READ(name) if (NULL!=PolyHead[name-'a']) { printf ("此多项式已经存在!\n"); break; } AddPoly(&PolyHead[name-'a'],PolyHead[name1-'a'],PolyHead[name2-'a']); OutP_Poly(PolyHead[name-'a']); break; } case '4': { char name1,name2; printf ("请输入被减式的名称:"); READ(name1) if (NULL==PolyHead[name1-'a']) { printf ("此多项式不存在!请先创建\n"); break; } printf ("请输入减式的名称:"); READ(name2) if (NULL==PolyHead[name2-'a']) { printf ("此多项式不存在!请先创建\n"); break; } printf ("请输入要创建的差式的名称:"); READ(name) if (NULL!=PolyHead[name-'a']) { printf ("此多项式已经存在!\n"); break; } DecPoly(&PolyHead[name-'a'],PolyHead[name1-'a'],PolyHead[name2-'a']); OutP_Poly(PolyHead[name-'a']); break; } case '5': printf ("请输入要删除的多项式名称:"); READ(name) if (NULL==PolyHead[name-'a']) { printf ("此多项式不存在!\n"); break; } DelPoly(&PolyHead[name-'a']); printf ("多项式%c已删除!\n",name); break; case '6': return OK; } } } status CreatPoly(P_Poly* P_PolyHead,int n) {  //为确保其他子函数正常运行,入口参数要求不含同类项、指数递减 int i=0; P_Poly p,tail; *P_PolyHead=(Poly*)malloc(sizeof(Poly)); (*P_PolyHead)->expn=n; tail=*P_PolyHead; printf ("请按照指数递减序输入最简形式的多项式\n"); for (;icoef),&(p->expn)); tail->next=p; tail=p; } tail->next=NULL; return OK; } void OutP_Poly(P_Poly PolyHead) { int i=0; P_Poly p; printf ("%d  ",PolyHead->expn); p=PolyHead->next; for (;iexpn;i++)
本文档为【两个一元多项式之间进行简单的加减运算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:269KB
软件:Word
页数:26
分类:工学
上传时间:2019-05-07
浏览量:32