VC++程序设计课程实践基础题(3)

2019-08-30 13:35

1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9

具体要求如下: (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对该类进行测试。

9.定义一个字符串类CString,并设计一个算法对该串中各个不同字符出现的频率进行统计。具体要求如下: (1)私有数据成员

? char *str:指向要统计的字符串。

? char (*p)[2]:动态分配二维空间,用以存放str所指字符串中出现的

字符及其出现的次数(次数在存放时,用该数字对应的ASCII值存放;在输出次数时,输出该ASCII字符对应的ASCII值即可)。 ? int size:存放字符串中出现的所有不同的字符的个数。

(2)公有成员函数

? CString (char *s) :根据s参数初始化数据成员str;p和size初始值为

0。

? void Count():p根据s所指字符串长度分配空间。然后把str所指字符

串中的每个字符放入p数组中,设置每个字符的出现次数为1。根据p数组统计不同字符出现的频率,并求得size的实际大小。最后根据size的实际大小,重新分配p所指空间,并把不同字符及其出现次数重新放回p数组(提示:可以借助临时数组或指针来实现)。 ? void Show():屏幕显示字符串、字符串的每个字符和与之对应的次数。 ? ~CString():释放动态分配的空间。

(3)在主程序中定义字符串char s[]=”abdabcdesffffd”。定义一个CString类对

象test,用s以初始化test,完成对该类的测试。

10.定义一个字符串类CString,并设计一个算法实现,给定关键字str1在字符串str

10

中出现时用关键字str2进行替换的功能。 具体要求如下: (1)私有数据成员

? char *str; 原始字符串。 ? char *str1; 目标关键字。 ? char *str2; 替换关键字。

? int flag; 标记替换是否完成替换。

(2)公有成员函数

? CString (char *s,char s1[ ],char *s2) :用给定的参数s、s1和s2相对应

的初始化数据成员str、str1和str2。flag设置缺省0。

? void Replace () :判断str字符串中是否出现str1,若出现就用str2替

换,否则什么都不做。若替换成功了标记flag为1,若替换不成功则标记flag为0。

? void Show( ) :若替换成功,则在屏幕上显示目标关键字、替换关键

字和替换后的原始字符串;若不成功则显示原始字符串。 ? ~ CString() :释放动态分配的空间。

(3) 在主程序中定义字符串char s[]=”I am student, you are student too, we are

all student.”作为原始字符串,定义char s1[]=” student”作为目标关键字,定义char s2[]=”teacher”作为替换关键字。定义一个CString类对象test,用s,s1和s2初始化test,完成对该类的测试。

11.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串

等长)。例如将字符串“abcde” 交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。 具体要求如下: (1)私有数据成员

? char str1[80] :存放被插入的字符串。 ? char str2[40] :存放待插入的字符串。 (2)公有成员函数

? STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。 ? void process():将str2中的字符串插入到str1中。 ? void print():输出插入后的字符串。

(3)在主程序中定义STRING类的对象test对该类进行测试。

12.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串

不等长)。例如将字符串“abcde” 交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。 具体要求如下:

(1)私有数据成员

? char str1[60] :存放被插入的字符串。 ? char str2[40] :存放待插入的字符串。 ? char str3[100] :存放插入后的字符串。

11

(2)公有成员函数

? STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。 ? void process():将str2中的字符串插入到str1中,存放到str3中。 ? void print():输出插入后的字符串。

(3)在主程序中定义STRING类的对象test对该类进行测试。

13.建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后

三个元素移到最前面。 具体要求如下: (1)私有数据成员

? int array[20]:一维整型数组。 ? int n:数组中元素的个数。 (2)公有成员函数

? MOVE(int b[],int m):构造函数,初始化成员数据。 ? void change():进行循环换位。 ? void print():输出一维数组。

(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。 14.建立一个类MOVE,实现将数组中大字字母元素放在小写字母元素的左边。 具体要求如下:

(1)私有数据成员

? char *array:一维字符数组。 ? int n:数组中元素的个数。 (2)公有成员函数

? MOVE(char b[],int m):构造函数,初始化成员数据。 ? void change():进行排序换位。 ? void print():输出一维数组。 ? ~MOVE():析构函数。

(3)在主程序中用数据\对该类进行测试。

15.定义一个一维数组类Carray,并根据给定算法实现对原始一维数组进行线性变换。这里给定的线性变换算法为:T(bx) = bT(x) + i; 其中,b为变换常量,x为变量,i为当前类中成员数组的下标值。根据该算法,原始数组在变化后,当前数组元素的值是由常量b和i下标来决定的。 具体要求如下: (1)私有数据成员

? int *a:指针a指向一个动态分配的原始数组。 ? int n:n表示该数组的大小。 ? int b:线性变换的常量。

(2)公有成员函数

? Carray (int a[ ],int n,int x) :用给定的参数a、n和x初始化数据成员a、

n和b。缺省都设置为0。

? void Transform () :根据上述变化算法,求解数组变换。

12

? void Show( ) :在屏幕上显示数组元素。 ? ~ Carray () :释放动态分配的空间。

(3)在主程序中定义数组int arr[ ]={1,2,3,4,5,6,7,8,9,10}作为原始数组,int b;

由键盘输入,作为线性变换的常量。定义一个Carray类对象test,用arr初始化test,完成对该类的测试。

16.定义一个方阵类CMatrix,并根据给定算法实现方阵的线性变换。方阵的变换形式为:

F=W*fT

f为原始矩阵,fT为原始矩阵的转置,w为变换矩阵,这里设定为

1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1

具体要求如下: (1)私有数据成员

? int (*a)[4]:a指向方阵数组。 ? int w[4][4]:w为变换矩阵。 ? int m:m表示方阵的行和列数。

(2)公有成员函数

? CMatrix (int a[][4],int m) :用给定的参数a和m 初始化数据成员a和m;

对变换矩阵w进行初始化,要求必须用循环实现。

? void Transform () :根据上述变换算法,求出变换后的数组形式,存放

在原始数组内。

? void show( ) :在屏幕上显示数组元素。 ? ~ CMatrix () :释放动态分配的空间。

(3)在主程序中定义数组int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作

为原始数组。定义一个CMatrix类对象test,用arr初始化test,完成对该类的测试。 17.定义一个类SIN,求sin(x)?x/1?x3/3!?x5/5!?x7/7!?....?(?1)n?1x(2n?1)/(2n?1)! 具体要求如下:

(1)私有成员数据。

? int x:输入公式中x的值,求sin(x)。 ? int n:输入公式中n的值。 (2)公有成员函数。

? SIN(int x, int n ):构造函数,用于初始化x和n的值。 ? int power( int q):求q!的值。

? int mi( int m,int n):求m的值。 ? int fun( ):用于求SIN(X)的值。

13

n? void show( ):输出求得的结果。

(3)在主程序中定义对象test,对该类进行测试。

18.试建立一个类VAR,用于求n(n?100)个数的均方差。均方差的计算公式

(xi?x)2为d??,其中平均值为x?ni?0n?1?xi?0n?1in。

具体要求如下:

(1)私有成员数据。

? double a[100]:用于存放输入的n个数。 ? int n:实际输入数的个数n。 (2)公有成员函数。

? VAR(double x[], int n1):构造函数,初始化成员数据a和个数n。 ? double average(double x[], int n):求平均值,数组x具有n个元素。 ? void variance(double x[],int n):求均方差,数组x具有n个元素。 ? void show():输出求得的均方差。

(3)在主程序中定义一个对象test,对该类进行测试。

19.定义一个方阵类Array,实现对方阵进行顺时针90度旋转。如图所示。

1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4

具体要求如下:

(1)私有数据成员

? int a[4][4]:用于存放方阵。

(2)公有成员函数

? Array (int a1[][4],int n) :构造函数,用给定的参数a1初始化数据成员

a。

? void xuanzhuan ( ) :实现对方阵a进行顺时针90度的旋转。 ? void show( ) :在屏幕上显示数组元素。

(3) 在主程序中定义数组int b[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为

原始数组。定义一个Array类对象test,用b初始化test,完成对该类的测试。

20.定义一个方阵类Array,实现对方阵进行逆时针90度旋转。如图所示。

1 2 3 4 4 8 12 16 5 6 7 8 3 7 11 15

14


VC++程序设计课程实践基础题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二期绿带测试题答案(IC)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: