C++面向对象程序设计50道编程题(第22题)
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();
}
五、心得感受
可以在评论处写下思考和编程此题的感受