一元多项式计算-数据结构设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:一元多项式计算
1需求和规格说明.................................................................... 错误!未定义书签。
1.1输入两个一元多项式。............................................... 错误!未定义书签。
1.2两个多项式相加相乘。............................................... 错误!未定义书签。2设计 (1)
2.1设计思想 (1)
2.2设计表示 (2)
2.2.1存储结构 (2)
2.2.2涉及操作 (2)
2.3实现注释 (2)
2.4详细解释 (3)
2.4.1功能示意图 (3)
2.4.2流程示意图 (3)
3用户手册 (4)
4调试报告................................................................................ 错误!未定义书签。5源代码及运行结构截图 (4)
5.1源代码 (4)
5.2运行截图 (10)
6课程设计总结
1需求和规格说明
1.1输入两个一元多项式。
1.2两个多项式相加相乘。
2.设计
2.1设计思想
利用顺序表存储一元多项式的各项系数和指数,进行运算2.2设计表示
2.2.1存储结构
typedef struct node{
int x[100];//系数
} node,*Node;
2.2.2涉及操作
void Creat(Node p,int n)//构造一元多项式
void add(Node a,Node b,Node s)//加
void mul(Node a,Node b,Node s)//乘
void display(Node s)//升幂显示
void display2(Node s)//降幂显示
1.1实现注释
此部分内容详细参见源代码。
1.2详细解释
1.2.1功能示意图
1.2.2流程示意图
3用户手册
输入两个一元多项式。
两个多项式相加相乘。
2源代码及运行结构截图
2.1源代码
#include
using namespace std;
typedef struct node{
int x[100];//系数
} node,*Node;
void Creat(Node p,int n)//构造一元多项式{
int i;
int xs;
int zs;
cout<<"请输入多项式各项系数和指数:";
for(i=0;i { cin>>xs>>zs; p->x[zs]=xs; } } void add(Node a,Node b,Node s)//加{ int i; for(i=0;i<100;i++) { s->x[i]=a->x[i]+b->x[i]; } } void mul(Node a,Node b,Node s)//乘{ int i,j; int sz,sx; for(i=0;i<100;i++) { for(j=0;j<100;j++) { sz=a->x[i]+b->x[j]; sx=a->x[i]*b->x[j]; s->x[sz]+=sx; } } } void display(Node s)//升幂显示 { cout<<"结果为:(升幂)"< int i; for(i=0;i<100;i++) { if(s->x[i]!=0) cout<<"系数:"< } } void display2(Node s)//降幂显示 { cout<<"结果为:(降幂)"< int i; for(i=99;i>=0;i--) { if(s->x[i]!=0) cout<<"系数:"< } } int main() { Node am,bn,s1,s2; am=new node(); bn=new node(); s1=new node(); s2=new node(); int a,b,i; cout<<"请输入两个多项式的项数:"; cin>>a>>b; for(i=0;i<100;i++) { am->x[i]=0; bn->x[i]=0; s1->x[i]=0; s2->x[i]=0; } cout<<"多项式一:"< Creat(am,a); cout<<"多项式二:"< Creat(bn,b); add(am,bn,s1);