c++程序设计实践报告Word文档格式.docx
- 文档编号:15901125
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:27
- 大小:26.93KB
c++程序设计实践报告Word文档格式.docx
《c++程序设计实践报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《c++程序设计实践报告Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
前若干项的项数。
●doublex:
存放x的值。
●double*p:
根据n的大小动态申请存放Pn(x)前n项的数组空间。
(2)共有成员函数
●PP(intnum,doublex1):
构造函数,初始化数据成员n和x,使p指向动态申请的数据空间。
●~PP():
析构函数,释放p指向的动态内存空间。
●doublefun(intn1,doublex):
递归函数,用于求多项式Pn(x)的第n1项。
注意:
将递归公式中的n用作函数参数。
本函数供process函数调用。
●voidprocess():
完成求前n项的工作,并将它们存放发到p指向的动态数组中。
●voidshow():
输出n和x,并将前n项以每行4个数的形式输出到屏幕上。
(3)在主函数中完成对该类的测试。
先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,并输出多项式前num项的值。
二、系统设计
1、概要设计
通过类PP的成员函数process()来求多项式Pn(x)的前n项的值,其中用fun()函数来求第n项的值,根据n的大小来给数据成员p分配动态空间,程序结束前释放为items分配的动态空间。
2、详细设计
①类的定义如下:
classPP
{
intn;
doublex;
double*p;
public:
PP(intnum,doublex1){}
voidprocess(){}
voidshow(){}
};
②类的主要成员函数的设计
doublefun(intn1,doublex)//设计函数来求Pn(x)
{
if(n1==0)return1;
elseif(n1==1)returnx;
return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;
}
三、系统测试
用以测试的数据为:
34
预期的输出结果为:
n=3x=4
1423.5154
四、实践小结
这道题主要是把题目看懂,其实只是一些简单的函数定义而已。
五、参考文献
[1]潘克勤,华伟,VisualC++程序设计北京:
中国铁道出版社2008
六、源程序清单
#include<
iostream.h>
PP(intnum,doublex1){
n=num;
x=x1;
p=newdouble[n+1];
}
~PP(){if(p)delete[]p;
doublefun(intn1,doublex)
if(n1==0)return1;
voidprocess()
for(inti=0;
i<
n+1;
i++)
{
p[i]=fun(i,x);
}
voidshow()
cout<
<
"
n="
n<
'
\t'
x="
x<
\n'
;
cout<
p[i]<
if((i+1)%4==0)
cout<
voidmain()
intnum;
doublex1;
cin>
>
num>
x1;
PPitems(num,x1);
items.fun(num,x1);
items.process();
items.show();
实践任务二(第2题)
试建立一个类SP,求f(n,k)=1k+2k+3k+…+nk,另有辅助函数power(m,n)用于求mn。
具体要求如下:
(1)私有成员函数。
●intn,k:
存放公式中n和k的值;
(2)公有成员函数。
●SP(intn1,intk1):
构造函数,初始化成员数据n和k。
●intpower(intm,intn):
求mn。
●intfun():
求公式的累加和。
输出求得的结果。
(3)在主程序中定义对象s,对该类进行测试。
通过类SP的成员函数power()求出m的n次方的值,再通过成员函数fun()调用power()函数求出f(n,k)的值。
classSP
intn,k;
public:
SP(intn1,intk1){}
intpower(intm,intn){}
intfun(){}
voidshow()
};
intpower(intm,intn)
intp=1;
//用for循环语句来实现求mn的值
for(inti=1;
p=p*m;
returnp;
intfun(intn,intk)
s=0;
//用for循环语句来实现公式的累加和
for(intj=1;
j<
=n;
j++)
s+=power(j,k);
returns;
23
9
这道题值得注意的是在成员函数fun()中调用了函数power(),还有对for循环语句的熟练运用。
[1]张晓如,王芳,VisualC++程序设计解析与实训北京:
#include<
intn,k,s;
SP(intn1,intk1){
n=n1;
k=k1;
intpower(intm,intn){
intp=1;
for(inti=1;
p=p*m;
returnp;
intfun(intn,intk){
s=0;
for(intj=1;
s+=power(j,k);
returns;
和为"
s<
endl;
{
intn,k;
n>
k;
SPs(n,k);
s.power(n,k);
s.fun(n,k);
s.show();
实践任务三(第3题)
建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。
(1)私有成员函数
●int*array:
一维整型数组。
●intn:
数组中元素的个数。
(2)公有成员函数
●MOVE(intb[],intm):
构造函数,初始化成员数据。
●voidexchange():
输出平均值,并将数组中的元素按要求重新放置。
●voidprint():
输出一维数组。
●~MOVE:
析构函数。
(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对
该类进行测试。
根据数组中元素的个数开辟一个动态数组空间array,通过类MOVE的成员函数exchange()输出一维数组的平均值,并把数组中最大元素和最小元素的位置相互交换,并把新的数组放在开辟的动态数组空间中。
程序结束前释放为array分配的动态空间。
classMOVE
int*array;
MOVE(intb[],intm){}
voidexchange(){}
voidprint(){}
~MOVE(){}
voidexchange()
floatp,s=0;
for(inti=0;
n;
s+=array[i];
p=s/n;
//求数组中所有元素之和的平均值
inta,b,min=array[0],max=array[0];
cout<
平均值:
p<
for(i=0;
if(max<
array[i])
max=array[i];
a=i;
}//求所有元素中的最大值
if(min>
min=array[i];
b=i;
}
}//求所有元素中的最小值
array[a]=min;
array[b]=max;
21654387128444973255
平均值:
54
21654387978444123255
这道题主要是求数组中所有元素的平均值以及元素中的最大值和最小值,同时还要注意析构函数的运用。
MOVE(intb[],intm)
n=m;
array=newint[n];
array[i]=b[i];
voidexchange()
floatp,s=0;
s+=array[i];
p=s/n;
for(i=0;
fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序设计 实践 报告