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

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

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

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

一、问题描述

在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,理解并掌握重载运算符,简单的数组运算。

三、难度等级

难度等级:★★★☆☆

四、参考程序

#include<iostream.h>
class SET{
	int *a;
	int len; 
public:
	SET(int *p,int n); 
	int operator ==(int m); 
	friend int operator ==(SET &s1, SET &s2);
	void print();
	~SET();
};
SET::SET(int *p,int n){
	len=n;
	a=new int[len];
	for(int i=0;i<len;i++)
		a[i]=p[i];
}
int SET::operator ==(int m){
	for(int i=0;i<len;i++)
		if(m==a[i])return 1;
	return 0;
}
int operator ==(SET &s1, SET &s2){
	if(s1.len!=s2.len)return 0;
	for(int i=0;i<s1.len;i++)
		if(!(s2==s1.a[i]))
			return 0;
	return 1;
}
void SET::print(){
	for(int i=0;i<len;i++)
		cout<<a[i]<<'\t';
	cout<<'\n';
}
SET::~SET(){if(a)delete[]a;}
void main(){
	int a[]={1,2,3,4,5},b[]={1,2,3,4,5},c[]={1,2,3,4,5,6},d[]={1,3,5,7,9};
	SET s1(a,5),s2(b,5),s3(c,6),s4(d,5);
	cout<<"a:\t";s1.print();
	cout<<"b:\t";s2.print();
	cout<<"c:\t";s3.print();
	cout<<"d:\t";s4.print();
	if(s1==s2)cout<<"a==b\n";
	else cout<<"a!=b\n";
	if(s1==s3)cout<<"a==c\n";
	else cout<<"a!=c\n";
	if(s1==s4)cout<<"a==d\n";
	else cout<<"a!=d\n";
}

五、心得感受

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

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84626835
今日推荐