? void show( ) :在屏幕上显示字符串。
(3)在主程序中定义字符串char s[]=”ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。
程序源代码
#include
string::string(char *s) { str=new char[strlen(s)]; strcpy(str,s); y=0; }
void string::huiwen() { char *p1,*p2; p2=p1=str; for(int i=0;str[i];i++,p2++); p2--; for(;p1!=p2;p1++,p2--) { if(*p1!=*p2) {y=0;break;} else y=1; } }
void string::show() {
cout<<”字符串为:”< void main() { char s[]=\ string test(s); test.huiwen(); test.show(); } 运行结果: 7.建立一个类PHALANX,生成并显示一个折叠方阵。折叠方阵如下图所示。折叠方阵的生成过程为:起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。 具体要求如下: (1)私有数据成员 ? int (*p)[20]:指向按照折叠规律存放方阵的二维整型数组。 ? int startnum:折叠方阵的起始数。 ? int n:存放方针的层数。 (2)公有成员函数 ? PHALANX (int s, int m ):构造函数,初始化成员数据。 ? void process():生成起始数为startnum的n行方阵。 ? void print():输出折叠方阵。 ? ~ PHALANX( ):析构函数。 (3)在主程序中对该类进行测试。 程序源代码 #include phalanx::phalanx(int s,int m) { starnum=s; n=m; } void phalanx::process() { int num=starnum; int y=n,i,j,x; p=new int[20][20]; for(x=0;x void phalanx::print() { int i,j,m=0; for(i=0;i phalanx::~phalanx() { delete []p; } void main() { int s,m; cout<<\输入s和m的值\ cin>>s>>m; phalanx pp(s,m); pp.process(); pp.print(); } 运行结果 8.建立一个MATRIX,生成并显示一个螺旋方阵。螺旋方阵如下图所示,起始数置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。 具体要求如下: (1)私有数据成员 ? int a[20] [20]:二维整型数组存放螺旋方阵。 ? int startnum:螺旋方阵的起始数。 ? int n:存放方针的层数。 (2)公有成员函数 ? MATRIX (int s, int m ):构造函数,初始化成员数据startnum和n。 ? void process():生成起始数为startnum的n行螺旋方阵。 ? void print():输出螺旋方阵。 (3)在主程序中定义MATRIX类的对象t对该类进行测试。 程序源代码 #include matrix::matrix(int s,int m) { starnum=s; n=m; } void matrix::process() { int st=starnum; int i,j,x=0,y=n; for(;x<=(y-1)/2;x++) { for(i=x,j=x;j<(y-x-1);j++) { a[i][j]=st; st++; } for(;i<(y-x-1);i++) { a[i][j]=st; st++; } for(;j>x;j--) { a[i][j]=st; st++; } for(;i>x;i--) { a[i][j]=st; st++; } if(x==(y-1)/2)a[i][j]=st; } } void matrix::print() { int i,j; for(i=0;i