资源预览内容
第1页 / 共68页
第2页 / 共68页
第3页 / 共68页
第4页 / 共68页
第5页 / 共68页
第6页 / 共68页
第7页 / 共68页
第8页 / 共68页
第9页 / 共68页
第10页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
江苏科技大学 课程实践报告设计题目: 程序设计(VC+)实践 设计时间: 至 学 院: 专业班级: 学生姓名: 学号 指导老师: 1试建立一个类PP,求出下列多项式的前n项的值。 具体要求如下:(1)私有数据成员lint n:前若干项的项数。ldouble x:存放x的值。ldouble *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数lPP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。lPP():析构函数,释放p指向的动态内存空间。ldouble fun(int n1,double x):递归函数,用于求多项式 的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。lvoid process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。lvoid show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。程序源代码#includeclass ppint n;double x;double *p;public:pp(int num,double x1);pp();double fun(int n1,double x);void process();void show();pp:pp(int num,double x1)n=num;x=x1;p=new doublenum+1;pp:pp()delete p;double pp:fun(int n1,double x)if(n1=0)return 1;if(n1=1)return x;if(n11)return (2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1;void pp:process()int i;for(i=0;i=n;i+)*(p+i)=fun(i,x);void pp:show()coutn=ntx=xendl;for(int i=0,m=1;in;i+,m+)cout*(p+i)t;if(m%4=0)coutn;void main()int num;double x1;coutput in num and x1numx1;pp items(num,x1);items.process();items.show();运行结果2试建立一个类SP,求 ,另有辅助函数power(m,n)用于求 。具体要求如下:(1)私有成员数据。lint n,k:存放公式中n和k的值;(2)公有成员函数。lSP(int n1,int k1):构造函数,初始化成员数据n和k。lint power(int m, int n):求mn。lint fun( ):求公式的累加和。lvoid show( ):输出求得的结果。(3)在主程序中定义对象s,对该类进行测试。程序源代码#includeclass SPint n,k;public:SP(int n1,int k1);int power(int m,int n);int fun();void show();SP:SP(int n1,int k1)n=n1;k=k1;int SP:power(int m,int n)int i;if(n=0)return 1;elsefor(i=1;in;i+)m*=m;return m;int SP:fun()int y=0,x;for(x=1;x=n;x+)y+=power(x,k);return y;void SP:show()cout前n项的和为:fun()endl;void main()int n1,k1;cout输入n1和k1的值n1k1;SP s(n1,k1);s.fun();s.show();运行结果:3建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。具体要求如下:(1)私有数据成员lfloat array20:一维整型数组。lint n:数组中元素的个数。(2)公有成员函数lMOVE(float b,int m):构造函数,初始化成员数据。lvoid average():输出平均值,并将数组中的元素按要求重新放置。lvoid print():输出一维数组。(3)在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。程序源代码#includeclass MOVEfloat array20;int n;public:MOVE(float b,int m);void average();void print();MOVE:MOVE(float b,int m)int i;n=m;for(i=0;im;i+)arrayi=bi;void MOVE:average()int i,x;float a=0;for(i=0;in;i+)a+=arrayi;a/=n;cout平均值为aendl;float ff20;for(i=0,x=0;in;i+)if(arrayia)ffx=arrayi;x+;for(i=0;ia)ffx=arrayi;x+;for(i=0;in;i+)arrayi=ffi;void MOVE:print()int q,p=1;for(q=0;qn;q+)coutarrayqt;if(p%5=0)coutn;p+;void main()float b=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3;int m=9;MOVE aa(b,m);aa.average();aa.print();运行结果4建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。具体要求如下:(1)私有数据成员lint *array:一维整型数组。lint n:数组中元素的个数。(2)公有成员函数lMOVE(int b,int m):构造函数,初始化成员数据。lvoid exchange():输出平均值,并将数组中的元素按要求重新放置。lvoid print():输出一维数组。lMOVE():析构函数。(3)在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。程序源代码#includeclass MOVEint *array;int n;public:MOVE(int b,int m);void exchange();void print();MOVE();MOVE:MOVE(int b,int m)n=m;array=new intn;for(int x=0;xn;x+)arrayx=bx;void MOVE:exchange()float a=0;int i,*p1,*p2;for(i=0;in;i+)a+=arrayi;a/=n;coutThe average of the number is:aendl;p1=p2=&array0;for(i=0;in;i+)if(arrayi*p2)p2=&arrayi;i=*p1;*p1=*p2;*p2=i;void MOVE:print()int i,num=1;for(i=0;in;i+)coutarrayit;if(num%5=0)coutn;num+;MOVE:MOVE()delete array;void main()int b=21,65,43,87,12,84,44,97,32,55,n=10;MOVE ff(b,n);ff.exchange();ff.print();运行结果5定义一个类Palindrome,实现绝对回文数。设计一个算法实现对任意整型数字判断是否为绝对回文数。所谓绝对回文数,是指十进制数和二进制数均对称的数。具体要求如下:(1)私有数据成员 lint n:整型数字。lint y: 标记是否为回文数。(2)公有成员函数lPalindrome (int x) :构造函数,根据x参数初始化数据成员n,y初始化为0。lvoid huiwen () :判断数n是否为绝对回文数。lvoid show( ) :若该数为回文数,则在屏幕显示。 (3)在主程序中定义int a,由键盘输入数字。定义一个Palindrome类对象p,用a初始化p,完成对该类的测试。程序源代码#includeclass palindromeint n;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号