C++课程实践报告试题及答案(范文大全)
第一篇:C++课程实践报告试题及答案
任务一 一、实践任务 1.试建立一个类 PP,求出下列多项式的前 n 项的值。
            n x P n x xP nx x Pnn/))()1()()1 2((1)(2 n 1 -
110  nnn 二、详细设计 1、类的描述与定义(1)私有数据成员  int n:前若干项的项数。
  double
x:存放 x 的值。
  double *p:根据 n 的大小动态申请存放 P n(x)前 n 项的数组空间。
(2)公有成员函数  PP(int num,double x1):构造函数,初始化数据成员 n 和 x,使 p 指向动态申请的数组空间。
  ~PP():析构函数,释放 p 指向的动态内存空间。
  double fun(int n1,double x):递归函数,用于求多项式)(x P n 的第 n1 项。注意:将递归公式中的 n 用作函数参数。本函数供 process 函数调用。
  void process():完成求前 n 项的工作,并将它们存放到 p 指向的动态数组中。
  void show():输出 n 和 x,并将前 n 项以每行 4 个数的形式输出到屏幕上。
2、主要函数设计
在主函数中完成对该类的测试。先输入 num 和 x1,并定义一个 PP 类的对象 items,用 num 和 x1 初始化 items 的成员 n 和 x,调用 items 的成员函数,求出并输出多项式前 num 项的值。
三、源程序清单 #include class PP{ private:
int n;
double x;
double*p;public:
PP(int num,double x1)
{
n=num;
x=x1;
p=new double[n];
}
~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(n1>1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;} void PP::process(){
for(int i=0;i
{
p[i]=fun(i,x);
} } void PP::show(){
cout<<“n=”<
for(int i=0;i
{
cout<
if((i+1)%4==0)cout<
} } void main(){
int num;
double x1;
cout<<“请输入 num 和 x1:”;
cin>>num>>x1;
PP items(num,x1);
items.process();
items.show();}
任务二
一、实践任务 2.试建立一个类 SP,求k k k kn k n f          ....3 2 1),(,另有辅助函数 power(m,n)用于求nm。
二、详细设计 1、类的描述与定义(1)私有数据成员  int n,k:存放公式中 n 和 k 的值;(2)公有成员函数  SP(int n1,int k1):构造函数,初始化成员数据 n 和 k。
  int power(int m, int n):求 m n。
  int fun():求公式的累加和。
  void show():输出求得的结果。
2、主要函数设计 在主程序中定义对象 s,对该类进行测试。
三、源程序清单 #include class SP{
private:
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;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(){
cout<<“f(”<
int n1,k1;
cout<<“请输入 n1,k1:”;
cin>>n1>>k1;
SP s(n1,k1);
s.fun();
s.show();}
任务三
一、实践任务 3.建立一个类 MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。
二、详细设计 1、类的描述与定义(1)私有数据成员  float array[20]:一维整型数组。
  int n:数组中元素的个数。
(2)公有成员函数  MOVE(float b[],int m):构造函数,初始化成员数据。
  void average():输出平均值,并将数组中的元素按要求重新放置。
  void print():输出一维数组。
2、主要函数设计 在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。
三、源程序清单 #include class MOVE{ private:
float array[20];
int n;public:
进制数转换公式MOVE(float b[],int m)
{
for(int i=0;i
{
array[i]=b[i];
}
n=m;
}
void average();
void print();
~MOVE()
{};};void MOVE::average(){
float ave=0;
int i,j;
for(i=0;i
{
ave+=array[i];
}
ave/=n;
cout<
float turn[20];
j=0;
for(i=0;i
{
if(array[i]<=ave)
{
turn[j]=array[i];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。