1. 程式人生 > >C++面向物件程式設計50道程式設計題(第05題)

C++面向物件程式設計50道程式設計題(第05題)

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();
}

五、心得感受

可以在評論處寫下思考和程式設計此題的感受