资源预览内容
第1页 / 共111页
第2页 / 共111页
第3页 / 共111页
第4页 / 共111页
第5页 / 共111页
第6页 / 共111页
第7页 / 共111页
第8页 / 共111页
第9页 / 共111页
第10页 / 共111页
亲,该文档总共111页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
xx科技大学课程实践报告设计题目: 程序设计(VC+)实践 设计时间 至 学院(系): 专业班级: 学生姓名: 学号 指导老师: 2016年02月 任务一一、实践任务1试建立一个类PP,求出下列多项式的前n项的值。 二、详细设计1、类的描述与定义(1)私有数据成员l int n:前若干项的项数。l double x:存放x的值。l double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数l PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。l PP():析构函数,释放p指向的动态内存空间。l double fun(int n1,double x):递归函数,用于求多项式的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。l void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。l void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。2、主要函数设计在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。三、源程序清单#includeclass PPprivate:int n;double x;double*p;public:PP(int num,double x1)n=num;x=x1;p=new doublen;PP()if(p) delete p;double fun(int n1,double x);void process();void show();double PP:fun(int n1,double x)if(n1=0) return 1;else if(n1=1) return x; else if(n11) return (2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1;void PP:process()for(int i=0;in;i+)pi=fun(i,x);void PP:show()coutn=nendlx=xendl;for(int i=0;in;i+)coutpitt;if(i+1)%4=0) coutendl;void main()int num;double x1;coutnumx1;PP items(num,x1);items.process();items.show();四、实践小结应熟练掌握递归函数的应用,写递归函数时应先进行递归结束条件的判定。五、运行结果任务二一、实践任务2试建立一个类SP,求,另有辅助函数power(m,n)用于求。二、详细设计1、类的描述与定义(1)私有数据成员l int n,k:存放公式中n和k的值;(2)公有成员函数l SP(int n1,int k1):构造函数,初始化成员数据n和k。l int power(int m, int n):求mn。l int fun( ):求公式的累加和。l void show( ):输出求得的结果。2、主要函数设计在主程序中定义对象s,对该类进行测试。三、源程序清单#includeclass SPprivate:int n,k;public:SP(int n1,int k1)n=n1;k=k1;int power(int m,int n);int fun();void show();int SP:power(int m,int n) int s=1;for(int i=0;in;i+) s*=m;return s;int SP:fun()int s=0;for(int i=1;i=n;i+)s+=power(i,k);return s;void SP:show()coutf(n,k)=fun()endl;void main()int n1,k1;coutn1k1;SP s(n1,k1);s.fun();s.show();四、实践小结掌握用循环语句求mn,和m!,熟练掌握函数的调用。五、运行结果任务三一、实践任务3建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。二、详细设计1、类的描述与定义(1)私有数据成员l float array20:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数l MOVE(float b,int m):构造函数,初始化成员数据。l void average():输出平均值,并将数组中的元素按要求重新放置。l void print():输出一维数组。2、主要函数设计在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。三、源程序清单#includeclass MOVEprivate:float array20;int n;public:MOVE(float b,int m)for(int i=0;im;i+)arrayi=bi;n=m;void average();void print();MOVE();void MOVE:average()float ave=0;int i,j;for(i=0;in;i+)ave+=arrayi;ave/=n;coutaveendl;float turn20;j=0;for(i=0;in;i+)if(arrayi=ave)turnj=arrayi;j+;j=0;for(i=0;iave)turnn-1-j=arrayi;j+;for(i=0;in;i+)arrayi=turni;void MOVE:print()for(int i=0;in;i+)coutarrayi ;void main()float b1=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3;int num;num=sizeof(b1)/sizeof(float);MOVE s(b1,num);s.average();s.print();四、实践小结应熟练掌握数组与指针的应用。五、运行结果任务四一、实践任务4建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。二、详细设计1、类的描述与定义(1)私有数据成员l int *array:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数l MOVE(int b,int m):构造函数,初始化成员数据。l void exchange():输出平均值,并将数组中的元素按要求重新放置。l void print():输出一维数组。l MOVE():析构函数。2、主要函数设计在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。三、源程序清单#includeclass MOVEprivate:int *array;int n;public:MOVE(int b,int m)array=new intm;n=m;for(int i=0;im;i+)arrayi=bi;void exchange();void print();MOVE()if(array) delete array;void MOVE:exchange() float ave=0; for(int i=0;in;i+)ave+=arrayi;ave/=n;cout平均值为aveendl;int max,min;max=min=array0;int m;for(i=0,m=0;i=max) m=i,max=arrayi;int l;for(i=0,l=0;in;i+) if(arrayimax) l=i,max=arrayi;i=arraym,arraym=arrayl,arrayl=i; void MOVE:print() for(int i=0;in;i+)coutarrayi ;void main() int text=21,65,43,87,12,84,44,97,32,55;int num;num=sizeof(text)/sizeof(int);MOVE s(text,num);s.print();coutendl;s.exchange();s.print();四、实践小结学会求数组中最大元素与最小元素方法,并实现交换。五、运行结果任务五一、实践任务5定义一个类Palindrome,实现绝对回文数。设计一个算法实现对任意整型数字判断是否为绝对回文数。所谓绝对回文数,是指
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号