void main( ) {
int s[ ]={21,65,43,87,12,84,44,97,32,55}; MOVE move(s,10); move.exchange( ); move.print( ); }
用以测试的数据为:
21 65 43 87 12 84 44 97 32 55 预期的输出结果为: 平均值:54
21 65 43 87 97 84 44 12 32 55
四、实践小结
这道题主要是求数组中所有元素的平均值以及元素中的最大值和最小值,同时还要注意析构函数的运用。
五、源程序清单
#include
int *array; int n; public:
MOVE(int b[],int m) { n=m; array=new int[n]; for(int i=0;i void exchange() { float p,s=0; for(int i=0;i int a,b,min=array[0],max=array[0]; cout<<\平均值:\ for(i=0;i if(max a=i; } } for(i=0;i array[a]=min; array[b]=max; } void print() { for(int i=0;i void main() { int s[]={21,65,43,87,12,84,44,97,32,55}; MOVE move(s,10); move.exchange(); move.print(); } 试题三 一、程序设计基本题 定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文 字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。 具体要求如下: (1)私有成员函数 ? char*str; ? int y:标记是否为回文字符串。 (2)公有成员函数 ? String(char*s):构造函数,用给定的参数s初始化数据成员str。 Y初始化为0。 ? void huiwen():判断str所指向的字符串是否为回文字符串。 ? void show():在屏幕上显示字符串。 (3)在主程序中定义字符串char s[]=“ababcedbaba”作为原始字符串。定 义一个String类对象test,用s初始化test,完成对该类的测试。 二、系统设计 1、概要设计 通过回文函数来进行判断,然后将函数判断结果进行输出。 2、详细设计 ①类的定义如下: class String { char *str; int b; public: String(char *s){} void huiwen( ){} void show( ){} ~String( ){} }; ②类的主要成员函数的设计 void huiwen() { char *p1=str,*p2=str; while(*p2)p2++;p2--; for(;p1 三、系统测试 在主程序中定义字符串char s[]=“ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,并调用其成员函数huiwen( )和show( )。 void main( ) { char *s=\ String test(s); test.huiwen( ); test.show( ); } 用以测试的字符串为: ababcedbaba 预期的输出结果为: ababcedbaba不是回文字符串 四、实践小结 这道题困难在于用指针来操作字符串,定义了两个指针,分别指向字符串的首尾,通过比较两个指针所指的字符是否相等来判断是否为回文字符串。相等则前一个指针自增,后一个自减。若不等则不是回文字符串。 五、源程序清单 #include char *str; int b; public: String(char *s) { str=new char[strlen(s)+1]; strcpy(str,s); b=0; } void huiwen() { char *p1=str,*p2=str; while(*p2)p2++;p2--; for(;p1 void show() { if(b) cout< ~String() { if(str)delete[]str; } }; void main() { char *s=\ String test(s); test.huiwen(); test.show(); } 试题四 一、程序设计基本题 建立一个类MOVE,实现将数组中大写字母元素放在小写字母元素的左边。 具体要求如下: (1)私有数据成员 ● char*array:一维字符数组。 ● int n:数据中元素的个数。 (2)公有成员函数 ● MOVE(char b[ ],int m) :构造函数,初始化成员数据。 ● void change( ):进行排序换位。 ● void print( ):输出一维数组。 ● ~MOVE( ):析构函数。 (3)在主程序中用数据“fdsUFfsTjfsKFEkWC”对该类进行测试。 二、系统设计 1、概要设计 为array开辟一个动态数组空间,通过类MOVE的成员函数change( )来实现将数组中的大写字母元素放在小写字母元素的左边的功能。程序结束前释放为array分配的动态空间。 2、详细设计 类的定义如下: class MOVE{ char *array; int n; public: MOVE(char ,int ); void change( ); void print( ); ~MOVE( ); }; 三、系统测试 在主函数中初始化类MOVE的对象,并调用其成员函数print()输出测试