C++面向对象程序设计50道编程题(第05题)

版权声明:版权所有,尊重原创。转载请注明出处: https://blog.csdn.net/qq_36426650/article/details/84582369

C++面向对象程序设计50道编程题(第05题)

摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
  本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
  读者请先独立思考哦,再与参考程序进行比对检查。

一、问题描述

在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类数据成员和成员函数的理解,简单的数组运算、数学运算。

三、难度等级

难度等级:★☆☆☆☆

四、参考程序

#include <iostream.h>
class Array{
 	int * p,k;
 	float *s;
public:
	Array(int*ptr,int n)	{
		k=n;
		p=new int[k];//分配空间
		for(int i=0;i<k;i++) {p[i]=ptr[i];}//初始化
		s=new float(0);
	}
	int fun(int n);
	void sum( ); 
	void show( );
	~Array(){delete[]p;delete[]s; }
};
int Array::fun(int n){
	if(n==0||n==1)return 0;
	for(int i=2;i<n;i++)
		if(n%i==0)return 0;
	return 1;
}
void Array::sum( ){
	for(int i=0,j=0;i<k;i++)
		if(fun(p[i])){
			*s+=p[i];
			j++;
		}
	*s/=j;
}
void Array::show( ){
	cout<<"数组个数为:"<<k<<endl;
	cout<<"数组为:"<<endl;
	for(int i=0,j=1;i<k;i++,j++){
		cout<<p[i]<<'\t';
		if(j%5==0)cout<<endl; 
	}
	cout<<endl;
	cout<<"和为:"<<*s<<endl;
}
void main( ){
	int a[20]={5,2,7,4,8,23,65,1,40};
	Array arr(a,9);
	arr.sum();
	arr.show();
}

五、心得感受

可以在评论处写下思考和编程此题的感受

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84582369