1、C+课程实践报告试题及答案任务一一、实践任务1试建立一个类PP,求出下列多项式的前n项的值。-=-nxPnxxPnxxPnn/)()1()()12(1)(2n1110=nnn二、详细设计1、类的描述与定义(1)私有数据成员lintn:前若干项的项数。ldoublex:存放x的值。ldouble*p:根据n的大小动态申请存放Pn(x)前n项的数组空间。(2)公有成员函数lPP(intnum,doublex1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。lPP():析构函数,释放p指向的动态内存空间。ldoublefun(intn1,doublex):递归函数,用于求多项式)(x
2、Pn的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。lvoidprocess():完成求前n项的工作,并将它们存放到p指向的动态数组中。lvoidshow():输出n和x,并将前n项以每行4个数的形式输出到屏幕上。2、主要函数设计在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。三、源程序清单#includeclassPPprivate:intn;doublex;double*p;public:PP(intnum,doublex1
3、)n=num;x=x1;p=newdoublen;PP()if(p)deletep;doublefun(intn1,doublex);voidprocess();voidshow();doublePP:fun(intn1,doublex)if(n1=0)return1;elseif(n1=1)returnx;elseif(n11)return(2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1;voidPP:process()for(inti=0;inumx1;PPitems(num,x1);items.process();items.show();任务二一
4、、实践任务2试建立一个类SP,求kkkknknf+=.321),(,另有辅助函数power(m,n)用于求nm。二、详细设计1、类的描述与定义(1)私有数据成员lintn,k:存放公式中n和k的值;(2)公有成员函数lSP(intn1,intk1):构造函数,初始化成员数据n和k。lintpower(intm,intn):求mn。lintfun():求公式的累加和。lvoidshow():输出求得的结果。2、主要函数设计在主程序中定义对象s,对该类进行测试。三、源程序清单#includeclassSPprivate:intn,k;public:SP(intn1,intk1)n=n1;k=k1;
5、intpower(intm,intn);intfun();voidshow();intSP:power(intm,intn)ints=1;for(inti=0;in1k1;SPs(n1,k1);s.fun();s.show();任务三一、实践任务3建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。二、详细设计1、类的描述与定义(1)私有数据成员lfloatarray20:一维整型数组。lintn:数组中元素的个数。(2)公有成员函数lMOVE(floatb,intm):构造函数,初始化成员数据。lvoidaverage():输出平均值,并将
6、数组中的元素按要求重新放置。lvoidprint():输出一维数组。2、主要函数设计在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。三、源程序清单#includeclassMOVEprivate:floatarray20;intn;public:MOVE(floatb,intm)for(inti=0;iave)turnn-1-j=arrayi;j+;for(i=0;iclassMOVEprivate:int*array;intn;public:MOVE(intb,intm)array=newintm;n=m;for(inti=0;i=max)m
7、=i,max=arrayi;intl;for(i=0,l=0;iclassPalindromeprivate:intn;inty;public:Palindrome(intx)n=x;y=0;voidhuiwen();voidshow();voidPalindrome:huiwen()inti=0,j=0;intm;m=n;while(m)m/=10;i+;m=n;while(m)m/=2;j+;int*s10=newinti;int*s2=newintj;m=n;for(intk=0;ka;Palindromep(a);p.huiwen();p.show();任务六一、实践任务6定义一个字符
8、串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。二、详细设计1、类的描述与定义(1)私有数据成员lchar*str;linty:标记是否为回文字符串。(2)公有成员函数lString(char*s):构造函数,用给定的参数s初始化数据成员str。y初始化为0。lvoidhuiwen():判断str所指向的字符串是否为回文字符串。lvoidshow():在屏幕上显示字符串。2、主要函数设计在主程序中定义字符串chars=”ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test
9、,完成对该类的测试。三、源程序清单#include#includeclassStringprivate:char*str;inty;public:String(char*s)intn=strlen(s);str=newcharn+1;strcpy(str,s);y=0;voidhuiwen();voidshow();String()if(str)deletestr;voidString:huiwen()intn,judge=0;n=strlen(str);for(inti=0;iclassphalanxint(*p)20;intstartnum;intn;public:phalanx(ints2020,intm)startnum=1;p=s;n=m;voidprocess()p00=startnum;for(inti=0;ij)pij=1+i*i+i+i-j;elsepij=1+j*j+i;voidprint()for(inti=0;im;cout
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。