多项式加减法C++源码
多项式加减法C++源码
《程序设计实践》课程实验报告
学号:126040594姓名:王乾帅
程序名称:多项式加法
一:程序源码:
#include<iostream>
#include<string>
using namespace std;
int NUM=0;//全局变量,控制结构体下标,大小代表多项式的项数;
int mt=0;
struct Data //结构体,用来存放单个项的系数和幂,分别为x,y;
{
int x;
int y;
};
Data Da[1000];
bool cmp(Data a,Data b) //为了使用sort对结构体进行排序,自定义cmp函数; {
return a.y>b.y;
}
void run(string &a); //自定义函数,用来对字符串进行处理,提取出字符串中的单个项; int main()
{
int i,stop,sig,sig2=0;
string a,b;
cout<<"多项式加减法运算器\n"<<"请输入需要选择的运算(1加法.2减法.)\n"; cin>>sig; cout<<"请输入第一个多项式:";//多项式输入 cin>>a; cout<<"请输入第二个多项式:"; cin>>b; run(a);//处理多项式1,将数据存入结构体中; if(sig==2) mt=1; run(b);//处理多项式2; sort(Da,Da+NUM,cmp);//对结构体按照y(即单个项的幂)的大小排序 for(i=0;i<NUM;)//以下为输出部分 { stop=i+1;//搜索幂相同的结构体,将x相加,在进行各种判断,进而输出 while(Da[i].y==Da[stop].y&&stop<NUM+1) { stop++; }
多项式加减法C++源码
if(stop-i-1==0) //只搜索到一项的输出 { if(Da[i].y==0) { //判断输出是否为第一项,判断输出为正数还是负数,分别进行输出; if(Da[i].x>0&&i!=0&&sig2==1) {cout<<"+"<<Da[i].x;sig2=1;} if(Da[i].x>0&&i!=0&&sig2!=1) {cout<<Da[i].x;sig2=1;} if(Da[i].x>0&&i==0) {cout<<Da[i].x;sig2=1;} if(Da[i].x<0) {cout<<Da[i].x;sig2=1;} } else if(Da[i].y==1) { if(Da[i].x>1&&i!=0&&sig2==1) {cout<<"+"<<Da[i].x;sig2=1;cout<<"x";} if(Da[i].x>1&&i!=0&&sig2!=1) {cout<<Da[i].x;sig2=1;cout<<"x";} if(Da[i].x>1&&i==0) {cout<<Da[i].x;sig2=1;cout<<"x";} if(Da[i].x==1&&i!=0&&sig2==1) {cout<<"+";sig2=1;cout<<"x";} if(Da[i].x==1&&i!=0&&sig2!=1) {sig2=1;cout<<"x";} if(Da[i].x==1&&i==0) {sig2=1;cout<<"x";} if(Da[i].x<-1) {cout<<Da[i].x;sig2=1;cout<<"x";} if(Da[i].x==-1) {cout<<"-";sig2=1;cout<<"x";} } else //搜索到多个项的输出 { if(Da[i].x>1&&i!=0&&sig2==1) {cout<<"+"<<Da[i].x<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x>1&&i!=0&&sig2!=1) {cout<<Da[i].x<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x>1&&i==0) {cout<<Da[i].x<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x==1&&i!=0&&sig2==1) {cout<<"+"<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x==1&&i!=0&&sig2!=1) {cout<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x==1&&i==0) {cout<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x<-1) {cout<<Da[i].x<<"x^"<<Da[i].y;sig2=1;} if(Da[i].x==-1) {cout<<"-"<<"x^"<<Da[i].y;sig2=1;} } } else { int sum=0,j; for(j=i;j<stop;j++) { sum+=Da[j].x; } if(Da[i].y==0) { //判断输出是否为第一项,判断输出为正数还是负数,分别进行输出; if(sum>0&&i!=0&&sig2==1) {cout<<"+"<<sum;sig2=1;}
多项式加减法C++源码
if(sum>0&&i!=0&&sig2!=1) {cout<<sum;sig2=1;}
if(sum>0&&i==0) {cout<<sum;sig2=1;}
if(sum<0) {cout<<sum;sig2=1;}
}
else if(Da[i].y==1)
{
if(sum>1&&i!=0&&sig2==1) {cout<<"+"<<sum<<"x";sig2=1;} if(sum>1&&i!=0&&sig2!=1) {cout<<sum<<"x";sig2=1;}
if(sum>1&&i==0) {cout<<sum<<"x";sig2=1;}
if(sum==1&&i!=0&&sig2==1) {cout<<"+"<<"x";sig2=1;}
if(sum==1&&i!=0&&sig2!=1) {cout<<"x";sig2=1;}
if(sum==1&&i==0) {cout<<"x";sig2=1;}
if(sum<-1) {cout<<sum<<"x";sig2=1;}
if(sum==-1) {cout<<"-"<<"x";sig2=1;}
}
else
{
if(sum>1&&i!=0&&sig2==1) {cout<<"+"<<sum<<"x^"<<Da[i].y;sig2=1;} if(sum>1&&i!=0&&sig2!=1) {cout<<sum<<"x^"<<Da[i].y;sig2=1;} if(sum>1&&i==0) {cout<<sum<<"x^"<<Da[i].y;sig2=1;}
if(sum==1&&i!=0&&sig2==1) {cout<<"+"<<"x^"<<Da[i].y;sig2=1;} if(sum==1&&i!=0&&sig2!=1) {cout<<"x^"<<Da[i].y;sig2=1;} if(sum==1&&i==0) {cout<<"x^"<<Da[i].y;sig2=1;}
if(sum<-1) {cout<<sum<<"x^"<<Da[i].y;sig2=1;}
if(sum==-1) {cout<<"-"<<"x^"<<Da[i].y;sig2=1;}
}
}
i=stop;
}
if(sig2==0) cout<<"0";
cout<<endl;
return 0;
}
void run(string &a) //自定义函数的函数体
{
int b[100],i,j;
int sum1,sum2;
for(i=0;i<a.length();i++)
{
if(a[i]=='x') //以X为关键字进行搜索带有X的项
{
sum1=1;
int k=i;
多项式加减法C++源码
} } int w=0; if(a[i-1]=='-') sum1=-1; if(a[k-1]>='0'&&a[k-1]<='9') { sum1=0; while(a[k- …… 此处隐藏:2500字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [行业资料]创设有效语境 改善英语教学
- [行业资料]微商推广引流的44种方法
- [行业资料]医疗机构输血科血库基本标准
- [行业资料]锂离子电池项目可行性研究报告(2015年
- [行业资料]申请执行人长沙市开福区人口和计划生育
- [行业资料]倾听草木的呼吸(初中阅读)
- [行业资料]长沙新环境厂房租赁合同书
- [行业资料]2022年经济师《金融专业知识与实务(中
- [行业资料]浦东新区2009学年度第二学期期末考试七
- [行业资料]企业劳动用工协议书
- [行业资料]最新苏科版七年级数学上册第二章有理数
- [行业资料]12星座与英语词汇学习
- [行业资料]2008年高考化学科经验
- [行业资料]镇政府2015年工作总结及2016年政府工作
- [行业资料]梧州市产业园区规划及招商引资报告
- [行业资料]大体积砼承台施工作业指导书
- [行业资料]学生干部在创建和谐校园中的作1
- [行业资料]小学语文教师实习个人总结
- [行业资料]2014完美最新奖金制度
- [行业资料]2016年一建建筑实务-重要知识点地质
- 【最新】人教版小学语文三年级上册:第
- 中国中小企业年鉴(地区数据)
- 动物与人类生活的关系 ppt
- 选修3 专题3 胚胎工程知识点
- 遥感技术基础复习题
- 公司员工职业生涯规划实施方案
- 辽宁省建筑施工企业安全生产许可证管理
- 15秋福师《中外幼儿教育史》在线作业二
- 2015-2020年中国网络视频行业深度调研
- 数学八年级下华东师大版21.1算术平均数
- 苏教版一年级语文下册《小松树和大松树
- 油画论文:摄影对当下油画艺术的影响
- 西方自由主义影响下的新闻自由——从17
- 基于支持向量机的商业银行信用风险评估
- 机械设计基础复习题答案(修改)(1)
- 语文:高考作文素材:材料引用及论点论
- 月份工程进度款结算单62+56
- 2018-2023年中国互联网基金行业现状研
- 人教版 PEP 五年级下册Unit1Lesson1 th
- 2014学年第二学期四年级数学期末教学质




