江苏科技大学
课程实践报告
设计题目: 程序设计(VC++)实践 设计时间: 至 学 院: 专业班级: 学生姓名: 学号 指导老师:
1.试建立一个类PP,求出下列多项式的前n项的值。 具体要求如下: (1)私有数据成员
? int n:前若干项的项数。 ? double x:存放x的值。
? double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。 (2)公有成员函数
? PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。
? ~PP():析构函数,释放p指向的动态内存空间。
? double fun(int n1,double x):递归函数,用于求多项式 的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。
? void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。 ? void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。
(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。
程序源代码
#include
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 double[num+1]; }
pp::~pp() {
delete []p; }
double pp::fun(int n1,double x) {
if(n1==0)return 1;
if(n1==1)return x;
if(n1>1)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() {
cout<<\ for(int i=0,m=1;i void main() { int num; double x1; cout<<\ cin>>num>>x1; pp items(num,x1); items.process(); items.show(); } 运行结果 2.试建立一个类SP,求 ,另有辅助函数power(m,n)用于求 。 具体要求如下: (1)私有成员数据。 ? int n,k:存放公式中n和k的值; (2)公有成员函数。 ? SP(int n1,int k1):构造函数,初始化成员数据n和k。 ? int power(int m, int n):求mn。 ? int fun( ):求公式的累加和。 ? void show( ):输出求得的结果。 (3)在主程序中定义对象s,对该类进行测试。 程序源代码 #include SP::SP(int n1,int k1) { n=n1; k=k1; } int SP::power(int m,int n) { int i; if(n==0)return 1; else for(i=1;i int SP::fun() { int y=0,x; for(x=1;x<=n;x++) y+=power(x,k); return y; } void SP::show() { cout<<\前n项的和为:\ } void main() { int n1,k1; cout<<\输入n1和k1的值\ cin>>n1>>k1; SP s(n1,k1); s.fun(); s.show(); } 运行结果: 3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。 具体要求如下: (1)私有数据成员 ? float array[20]:一维整型数组。 ? int n:数组中元素的个数。 (2)公有成员函数 ? MOVE(float b[],int m):构造函数,初始化成员数据。 ? void average():输出平均值,并将数组中的元素按要求重新放置。 ? void print():输出一维数组。 (3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。 程序源代码 #include float array[20]; int n; public: MOVE(float b[],int m); void average(); void print(); }; MOVE::MOVE(float b[],int m) {