江苏科技大学VC++程序实践答案

上传人:仙*** 文档编号:114518471 上传时间:2022-06-28 格式:DOC 页数:14 大小:105.04KB
返回 下载 相关 举报
江苏科技大学VC++程序实践答案_第1页
第1页 / 共14页
江苏科技大学VC++程序实践答案_第2页
第2页 / 共14页
江苏科技大学VC++程序实践答案_第3页
第3页 / 共14页
点击查看更多>>
资源描述
江苏科技大学VC+实践报告一、实践任务 任务一(第2题):试建立一个类SP,求f(n,k)=1k+2k+3k+nK,另有辅助函数power(m,n),用于求mn。具体要求如下:(1) 私有成员数据:int n,k:存放公式中n和k得值。(2) 公有成员函数:SP(int n1,int k1):构造函数,初始化成员数据n和k。int power(int m,int n):求mn。int fun( ):求公式的累加和。void show( ):输出求的结果。(3) 在主程序中定义对象s,对该类进行测试。任务一分析1、 任务分析 通过SP的成员函数power( )可求出mn的值,再通过累加函数fun(),可求出累加和。类的定义如下:#include class SPint n,k;public:SP()int power()int fun()void show();2、 算法设计 求mn:定义变量P=1,循环n次,每次循环P乘以m 求累加和:定义变量S=0,通过for循环,将power()函数计算的结果累加。3、 系统测试 在主函数中用整数初始化SP的对象,并调用成员函数show()输出结果。主函数定义如下:void main()SP a(2,3);a.power(2,3);a.fun();a.show();用以测试的数据为:n=2,k=3;预期的输出结果为:当n=2,k=3时,f(n,k)=9任务一程序 #include class SPint n,k;public:SP(int n1,int k1)n=n1;k=k1;int power(int m,int n)int p=1;for (int i=1;i=n;i+)p*=m;return p;int fun()int s=0;for (int i=1;i=n;i+)s+=power(i,k);return s;void show()cout当n=n,k=k时,f(n,k)=fun()endl;void main()SP a(2,3);a.power(2,3);a.fun();a.show();任务二(第24题):建立一个NUM,并统计特定序列中相同的字符的个数。具体要求如下:(1)、私有数据成员l char data25: 随机生成25个字符。l int num128: 储存每个字符出现的个数。(2) 公有成员函数l NUM(int data):构造函数,同时初始化数组data。l void process():统计data中没得字符出现的个数,并保存到数组num中。l void print ():输出每个出现过的额字符及其出现的个数,每行输出5个,没有出 现过的字符不显示(3) 在主程序中定义一个对象,对该类进行测试。 1、任务(系统)分析由利用头文件#include,程序会自动产生随机的整数,在主函数中将整数转化为字符,用字符初始化类的对象,用循环语句遍历真个字符数组,用这些字符的ASCII字判断它们所出现的次数,然后输出。类的定义如下:class NUMchar data25;int num128;public:NUM(char a25)void process()void print();任务二分析(1)将程序随机产生的整数利用循环语句转换为字符,保存在数组a中(2)将num数组中的每一个元素初始化为0,然后利用这些字符的ASCII字判断它们所出现的次数,保存在num中;3. 系统测试在主函数中用数组a初始化Move的对象,并调用其成员函数,print()输出测试结果。主函数定义如下:void main()char a25;for(int i=0;i24;i+)ai=rand()%128;a24=0;NUM t(a);t.process();t.print();输出结果为: 任务二程序#include class NUM char data25;int num128;public:NUM (int data)for (int i=0;idatai=rand()%128;void process()for (int i=0;i128;i+)numi=0;for ( i=0;i25;i+)numdatai+;void print()for (int i=0;i25;i+)coutdatait;if (i+1)%5=0) coutendl; int k=0;for ( i=0;i128;i+) if (numi!=0) char temp=i; couttemp(i)出现numi次t; k+;if (k%5=0) coutendl;void main ()NUM test (1);test.process();test.print();任务三(第13题):建立一个类MOVE,对数组中的元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。具体要求如下:(1) 私有数据成员 int array20:一维整型数组。 int n:数组中元素的个数。(2) 公有成员函数 MOVE(int b,int m):构造函数,初始化成员数据。 void change ():进行循环换位。 void print():输出一维数组。(3) 在主程序中用数据21,65,43,87,12,84,44,97,32,55 对该类进行测试。任务三分析1、任务分析 初始化对象数组,定义3个变量依次存放对象数组的最后3个元素。通过循环语句将前面的元素依次后移3个单位。最后再把3个变量中的元素值赋给最前的三个数。类的定义如下:#include class MOVEint array20;int n;public:MOVE (int b,int m)void change()void print();2、算法设计 初始化对象数组,定义3个变量a,b,c,依次将array数组的最后三个元素赋给它们。再通过for循环语句,依次把前面的元素后移3位。最后再把3个变量中的元素值赋给最前的三个数。3、系统测试 在主函数中初始化对象数组,并调用其成员函数print()输出结果。主函数的定义如下:void main()int a=21,65,43,87,12,84,44,97,32,55;MOVE s(a,10);s.change();s.print();用以测试的数据为:21,65,43,87,12,84,44,97,32,55预期的结果为:97,32,55,21,65,43,87,12,84,44任务三程序 #include class MOVEint array20;int n;public:MOVE (int b,int m)n=m;for (int i=0;i=0;t-)arrayt-1=arrayt-4;array0=c;array1=b;array2=a;void print()for (int i=0;in;i+)coutarrayi ;coutendl;void main()int a=21,65,43,87,12,84,44,97,32,55;MOVE s(a,10);s.change();s.print();任务四(第4题):建立一个类MOVE,将数组中最大元素的值与最小元素的值进行互换。具体要求如下:(1) 私有成员数据 int *array:一维整型数组。 int n:数组中元素的个数。(2) 公有成员函数 MOVE(float b,int m):构造函数,初始化成员数据。 void exchange():输出平均值,并将数组中的元素按照要求重新放置。 void print():输出一维数组。 MOVE():析构函数。(3)在主程序中用数据21,65,43,87,12,84,44,97,32,55 对该类进行测试。任务四分析1、任务分析给成员数据array分配合适大小的动态空间。初始化后,通过for从句计算得出所有元素的和,之后求出平均值。通过互换函数exchange()互换最值。最后释放动态空间。类的定义如下:#include class MOVEint *array;int n;public:MOVE(int b,int m)void exchange() void print()MOVE();2、算法设计初始化后,通过for从句计算得出所有元素的和,之后求出平均值。 互换最值:将第一个元素array0分别赋给最大值max和最小值min。通过for从句,依次将后续元素和最值比较。若比最大值大,则将该元素的值赋给max,同时记录元素位置,记为arrayx;若比最小值小,则将该元素的值赋给min,同时记录元素位置arrayy。遍阅完毕后,互换最值。 1、 系统测试在主函数中初始化对象数组,并调用其成员函数print()输出结果。主函数的定义如下:void main()int b=21,65,43,87,12,84,44,97,32,55;MOVE test(b,10);test.exchange();test.print();用以测试的数据为:21,65,43,87,12,84,44,97,32,55预期的结果为:21,65,43,87,97,84,44,12,32,55任务四程序 #include class MOVEint *array;int n;public:MOVE(int b,int m)n=m; array=new intn;for(int i=0;in;i+)arrayi=bi;void exchange()int s=0,max,min,x,y;float ave;max=min=array0;for(int i=0;imax)max=arrayi;x=i;if(arrayimin)min=arrayi;y=i;ave=s/n;cout该数组的平均值为:aveendl;arrayy=max;arrayx=min; void print()for(int i=0;in;i+)coutarrayi ;MOVE()delete array;void main()int b=21,65,43,87,12,84,44,97,32,55;MOVE test(b,10);test.exchange();test.print();任务五(第6题):定义一个字符窜类String,实现判断该字符窜是否为回文字符窜,所谓回文字符窜就是指该字符窜左右对称。具体要求如下:(1) 私有数据成员 char *str; nt y:标记是否为回文字符窜(2) 公有成员函数 String (char *s):构造函数,用给定的参数s初始化成员数据str。Y初始化为0. void huiwen ():判断str所指的字符窜是否为回文字符窜。 void show ():在屏幕上显示字符窜。(3) 在主程序中定义字符窜char s=”ababcedbaba”作为原始字符窜。定义一个String类对象test,用s初始化test,完成对该类的测试。任务五分析1、任务分析 给数据成员str分配合适大小的动态空间。初始化后,通过回文字符窜判断函数huiwen()进行判断。输出字符窜,最后释放动态空间。类的定义如下:#include #include class Stringchar *str;int y;public:String (char *s)void huiwen()void show()String()delete str;2、算法设计 初始化后,定义变量y=1。将字符窜str赋值给数组t,让数组t指针自增到指向最后一个元素。同时让指针q指向原数组str的第一个元素。通过for语句和if语句判断,循环时让t自减,q自增。若循环过程中出现两指针所指元素不相等,则y=0。最后通过switch语句输出判断提示语。3、 系统测试在主函数中初始化对象数组,并调用其成员函数show()输出结果。主函数的定义如下:void main()char s=ababcedbaba;String test(s);test.show();test.huiwen();用以测试的数据为:ababcedbaba预期的结果为:ababcedbaba 该数组不是回文字符窜。任务五程序 #include #include class Stringchar *str;int y;public:String (char *s)y=0;str=new charstrlen(s)+1;strcpy(str,s);void huiwen()char *t,*q=str;int y=1;t=str;while(*t)t+;t-; for (;qt;)if(q+!=t-)y=0;switch(y) case 1: cout该数组为回文数组.endl;break; case 0: cout该数组不是回文数组.endl;break;void show()coutstrendl;String()delete str;void main()char s=ababcedbaba;String test(s);test.show();test.huiwen();任务六(第11题):建立一个STRING,将一个字符窜交叉插入到另一个字符窜中(假定字符窜等长)。例如将字符窜”abcde”交叉插入字符窜”ABCDE”的结果为”aAbBcCdDeE”或是”AaBbCcDdEe”。具体要求如下:(1) 私有数据成员 char str180:存放被插入的字符窜。 char str240: 存放待插入的字符窜。(2) 公有成员函数 STRING(char *s1,char *s2):构造函数,用s1和s2初始化str1和str2。 void process():将str2中的字符串插入到str1中。 void print ():输出插入后的字符串。(3) 在主程序中定义STRING类的对象test对该类进行测试。任务六分析1、任务分析 定义2个字符数组,保存需要交相出入的2个字符串。再临时定义第三个字符串t用以保存被插入的字符串str1。通过循环语句把需插入的字符串str2插入到被插入字符串str1中。类的定义如下:#include #include class STRINGchar str180;char str240;public:STRING(char *s1,char *s2)void process()void print();2、算法设计 初始化2个字符串str1和str2。定义第三个字符串t,将被插入字符串str1复制到t中。通过 while语句,让指向str1的指针在每被插入一次字符就自增一次。插入字符串str2和t在每次插入一个字符之后都自增一次。3、系统测试在主函数中初始化对象数组,并调用其成员函数print()输出结果。主函数的定义如下:void main()char s120=abcde;char s220=ABCDE;STRING test(s1,s2);test.process();test.print();用以测试的数据为:abcde ABCDE预期的结果为:”aAbBcCdDeE”任务六程序 #include #include class STRINGchar str180;char str240;public:STRING(char *s1,char *s2)strcpy(str1,s1);strcpy(str2,s2);void process()char t80;strcpy(t,str1);int i=0,j=0;while(str2i)str1j+=str2i;str1j+=ti;i+;str1j=0;void print()coutstr1endl;void main()char s120=abcde;char s220=ABCDE;STRING test(s1,s2);test.process();test.print();
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!