C++面向对象程序设计50道编程题(第20题)
C++面向对象程序设计50道编程题(第20题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,简单的数学运算。
三、难度等级
难度等级:★★☆☆☆
四、参考程序
#include <iostream.h>
class Array{
int x[4][4];
int count;
public:
Array(int a[4][4]);
int fun(int);
int encode();
void print();
};
Array::Array(int a[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
x[i][j]=a[i][j];
count=0;
}
int Array::fun(int n)
{
if(n==0||n==1||n==2)return 0;
for(int j=2;j<n;j++)
if(n%j==0)return 0;
return 1;
}
int Array::encode()
{
for(int i=0;i<4;i++){
for(int j=0;j<=i;j++)
if(fun(x[i][j]))
{
count++;
while(1)
{
x[i][j]=x[i][j]+2;
if(fun(x[i][j]))
break;
}
}
}
return count;
}
void Array::print()
{
for(int i=0;i<4;i++){
for(int j=0;j<4;j++)
cout<<x[i][j]<<'\t';
cout<<'\n';
}
cout<<'\n';
}
void main()
{
int m[4][4]={3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23};
Array test(m);
test.print();
cout<<"count="<<test.encode()<<'\n';
test.print();
}
五、心得感受
可以在评论处写下思考和编程此题的感受