数据结构课程设计报告多项式.docx

上传人:b****7 文档编号:11519784 上传时间:2023-03-02 格式:DOCX 页数:12 大小:196.22KB
下载 相关 举报
数据结构课程设计报告多项式.docx_第1页
第1页 / 共12页
数据结构课程设计报告多项式.docx_第2页
第2页 / 共12页
数据结构课程设计报告多项式.docx_第3页
第3页 / 共12页
数据结构课程设计报告多项式.docx_第4页
第4页 / 共12页
数据结构课程设计报告多项式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构课程设计报告多项式.docx

《数据结构课程设计报告多项式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告多项式.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构课程设计报告多项式.docx

数据结构课程设计报告多项式

肇庆学院计算机科学学院

数据结构课程设计

 

题目:

一元多项式运算器

学生姓名:

钟寒明

学号:

12332012012

专业:

计算机科学与技术

班级:

12级

(2)班

指导教师姓名及职称:

陈志梁讲师

起止时间:

2014年3月——2014年4月

 

1需求分析

1.1课题背景及意义

随着计算机网络技术的发展和因特网的广泛普及,各种的运算器的需求也逐渐增加,一元多项式运算器便是其中的一种。

相信在往后的日子里,多项式会成为一种非常普遍的计算器。

《数据结构课程设计》是一门实践性的计算机课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

通过这次课程设计,要求掌握较大程序的设计方法,相应数据结构的选择应用、算法的设计及其实现和性能分析等方面中加深对课程基本内容的理解。

同时,在设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

1.2课题要求

A.一元多项式的运算器

B.实现多项式的相加,相减和相乘。

C.选做内容:

实现除法运算,求出运算时间等等。

1.3设计目标

A.软件名称:

一元多项式运算器

B.如何实现:

利用数组来完成相应的多项式

C.未能实现:

没能用链表来完成,而是用一个大的数组。

数组的第几项就表示多项式的第几项,从而完成运算。

2概要设计

2.1问题解决的思路概述

首先是确定结构化程序设计的流程图,利用已存在的数据结构来构造一个数组来完成多项式的运算设计,用数组的第几项来表示该多项式的第几项。

从而实现一元多项式的加法,减法和乘法。

然后再输出运算结果。

总而言之,就是先用自顶向下、逐步细化的设计方法来分析并画出程序设计流程图;然后用自下而上、逐步积累的设计方法来写出程序。

2.2主程序的流程基函数调用说明

(1)主程序的简要流程图

图1主程序流程图

(2)实现多项式的主要思路:

3详细设计

3.1多项式的实现

本来是想按照老师的提示用链表来完成这个多项式运算器的基本框架,但是我觉得用数组来完成会更加的简单快捷,所以就利用了自己的一点小技巧来实现这个软件。

就是利用一个比较大的数组来完成,先输入第一个多项式,数组的第一项就表示该多项式的第一项,然后再输入系数,然后再输入第二项,以此类推。

完成第一个多项式的输入后再用同样的方式输入第二个多项式。

最后输出结果。

3.2该多项式的输入和输出界面

3.3各个算法的输入方法

加法的输入,如下图:

  首先我们要输入“+”,然后输入第一个多项式,上图的第一组22111是表示第一个多项式有两项,第一项为2次方,系数为1。

第二项为1次方,系数为1。

然后用同样的方法再输入第二个多项式。

最后回车输出两多项式相加的结果。

3.4减法的输入

输入的方式跟加法一致,就不再加于说明。

3.5乘法的输入

4调试分析

表1调试过程情况表

序号

时间

出现问题

解决方法

1

2014-04-09

一开始尝试用链表来完成,但是因为个人的技术有限,在写代码的过程中出现了许多各种各样的小错误,一直未能完成。

通过询问别人,发现用数组也可以来完成,最后就用了一个大数组来完成了多项式的代入,从而完成了这个一元多项式的运算器。

2

2014-04-10

做乘法时由于输入了两个“*”,从而出现了输出结果一直为“0”的情况。

如下图a

多次运行和观察后发现多输入了一个“*”,出现了错误。

后面改正了,输入一个“*”,就完成了运算。

3

2014-04-13

一开始利用数组来实现这个运算器时,不能准确的讲每个项对准。

输入第一个多项式时会出现错误。

通过请教同学,发现了自己在运算符运用上出现了混乱。

通过多次改正,终于把运算器完成,可以准确的运行。

5用户使用说明

5.1dos版本应用程序操作说明

(1)运行Polynomials.exe应用程序后会出现主界面;

(2)选择所要做的运算,输入多项式;

(3)先输入第一个多项式,按回车;

(4)再输入第二个多项式,回车输出结果。

6测试结果

6.1dos版本应用程序测试结果:

参考文献

[1]陈元春,王中华等.实用数据结构[M].北京:

中国铁道出版社,2003.18-40.

附录:

程序清单

程序代码如下:

#include

#include

#include

#include

usingnamespacestd;

#definemax1000

doubleinput[max+1];

intmain()

{

charop;

intk,count;

inti,j,expo;

doublecoef;

cout<<"Input'+'toplustwopolynomials\nInput'-'tominus\nInput'*'tomultiply\nOtherwiseexit\n--------------------------\n--------------------------"<

cin>>op;

if(op=='+')

{

cin>>k;

memset(input,0,sizeof(input));

for(i=0;i

{

cin>>expo>>coef;

input[expo]+=coef;

}

cin>>k;

for(i=0;i

{

cin>>expo>>coef;

input[expo]+=coef;

}

}

elseif(op=='-')

{

cin>>k;

memset(input,0,sizeof(input));

for(i=0;i

{

cin>>expo>>coef;

input[expo]+=coef;

}

cin>>k;

for(i=0;i

{

cin>>expo>>coef;

input[expo]-=coef;

}

}

elseif(op=='*')

{

intk1;

intexpo1[max+1];

doublecoef1[max+1];

intk2;

intexpo2[max+1];

doublecoef2[max+1];

cin>>k1;

for(i=0;i

{

cin>>expo1[i]>>coef1[i];

}

cin>>k2;

for(i=0;i

{

cin>>expo2[i]>>coef2[i];

}

memset(input,0,sizeof(input));

for(i=0;i

{

for(j=0;j

{

input[expo1[i]+expo2[j]]+=coef1[i]*coef2[j];

}

}

}

else

{

return0;

}

count=0;

for(i=1000;i>=0;i--)

if(input[i]!

=0)count++;

cout<

for(i=1000;i>=0;i--)

if(input[i]!

=0.0)

{

cout<

(1);

cout<<""<

}

cout<

system("pause");

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1