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

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

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

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

一、问题描述

在这里插入图片描述
在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,字符串处理。

三、难度等级

难度等级:★★★☆☆

四、参考程序

#include <iostream.h>
class NUM{
	int a[5],n;
public:
	NUM(int t[],int n1)
	{
		for(int i=0;i<n1;i++)
			a[i]=t[i];
		n=n1;
	}
	void sort(int t[],int n);
	int convert(int n);
	void fun();
	void print()
	{
		for(int i=0;i<n;i++)
			cout<<a[i]<<'\t';
		cout<<'\n';
	}
};
void NUM::sort(int t[],int n)
{
	int k;
	for(int i=0;i<n-1;i++)
		for(int j=i+1;j<n;j++)
			if(t[i]>t[j])
			{
				k=a[i];a[i]=a[j];a[j]=k;
			}
}

int NUM::convert(int n)
{
	int b[10],a[10];
	int k=n,j=0,m,s,x,y;
	while(k)
	{
		b[j++]=k%10;
		k/=10;
	}
	m=0;
	for(s=j-1;s>=0;s--)
		a[m++]=b[s];
	for(x=0;x<m-1;x++)
	{
		for(y=x+1;y<m;y++)
		if(a[x]==a[y])
		{
			for(k=y;k<m;k++)
				a[k]=a[k+1];
			m--;
			if(a[x]==a[y])y--;
		}
	
	}
	int t=0;
	for(j=0;j<m;j++)
		t=t*10+a[j];
	return t;
	
}

void NUM::fun()
{
	for(int i=0;i<n;i++)
		a[i]=convert(a[i]);
	sort(a,n);
}


void main()
{
	int p[5]={1213,65666,212313,12434,34435};
	NUM test(p,5);
	test.print();
	test.fun();
	test.print();
}

五、心得感受

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

猜你喜欢

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