《实践报告答案江苏科技大学c++.pdf》由会员分享,可在线阅读,更多相关《实践报告答案江苏科技大学c++.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、江苏科技大学课程实践报告设计题目:程序设计(VC+)实践设计时间至学院(系):专业班级:学生姓名:学号指导老师:2013 年 12 月任务一任务一一、实践任务一、实践任务2试建立一个类 SP,求求。,另有辅助函数 power(m,n)用于二、详细设计二、详细设计1、类的描述与定义(1)私有数据成员int n,k:存放公式中 n 和 k 的值;(2)公有成员函数SP(int n1,int k1):构造函数,初始化成员数据n 和 k。int power(int m,int n):求 m。int fun():求公式的累加和。void show():输出求得的结果。n2、主要函数设计在主程序中定义对象
2、 s,对该类进行测试。三、源程序清单三、源程序清单#include class SPint n,k;public:SP(int n1,int k1)n=n1;k=k1;int power(int m,int n)int fun()void A()coutn=n,k=k,f(n,k)=fun()endl;int s=0;for(int i=1;in+1;i+)s+=power(i,k);int p=1;for(int i=1;in+1;i+)p*=m;return p;return s;void main()SP a(3,3);(3,3);();();四、实践小结四、实践小结掌握用循环语句求 m
3、n,和 m!,熟练掌握函数的调用。五、运行结果五、运行结果任务二任务二一、实践任务一、实践任务3建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。二、详细设计二、详细设计1、类的描述与定义(1)私有数据成员float array20:一维整型数组。int n:数组中元素的个数。(2)公有成员函数MOVE(float b,int m):构造函数,初始化成员数据。void average():输出平均值,并将数组中的元素按要求重新放置。void print():输出一维数组。2、主要函数设计在主程序中用数据,3,对该类进行测试。三、源程序清单三
4、、源程序清单#include#includeclass MOVEclass MOVEfloat array20;float array20;int n;int n;public:public:MOVE(float b,int m)MOVE(float b,int m)void average()void average()float t=0;float t=0;for(int i=0;in;i+)for(int i=0;in;i+)t+=arrayi;t+=arrayi;n=m;n=m;for(int i=0;im;i+)for(int i=0;im;i+)arrayi=bi;arrayi=b
5、i;float D=(t/n);float D=(t/n);coutcout平均值为:平均值为:Dendl;Dendl;int j=n-1;int j=n-1;for(i=0;ij;i+,j-)for(i=0;ij;i+,j-);while(arrayi=D)i+;while(arrayiD)j-;while(arrayjD)j-;t=arrayi;t=arrayi;arrayi=arrayj;arrayi=arrayj;arrayj=t;arrayj=t;void print()void print()for(int i=0;in;i+)for(int i=0;in;i+)coutarray
6、it;coutarrayit;coutendl;coutendl;void main()void main()float b1=,3,;float b1=,3,;int num;int num;num=sizeof(b1)/sizeof(float);num=sizeof(b1)/sizeof(float);MOVE s(b1,num);MOVE s(b1,num);();();();();四、实践小结四、实践小结应熟练掌握数组与指针的应用。五、运行结果五、运行结果任务三任务三一、实践任务一、实践任务4建立一个类 MOVE,将数组中最大元素的值与最小元素的值互换。二、详细设计二、详细设计1、类
7、的描述与定义(1)私有数据成员int*array:一维整型数组。int n:数组中元素的个数。(2)公有成员函数MOVE(int b,int m):构造函数,初始化成员数据。void exchange():输出平均值,并将数组中的元素按要求重新放置。void print():输出一维数组。MOVE():析构函数。2、主要函数设计在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。三、源程序清单三、源程序清单#include#include class MOVEclass MOVE int*array;int*array;int n;int n;public
8、:public:MOVE(int b,int m)MOVE(int b,int m)n=m;n=m;array=new intn;array=new intn;s+=arrayi;s+=arrayi;if(arrayimax)max=arrayi;x=i;if(arrayimax)max=arrayi;x=i;int s=0,max,min,x,y;int s=0,max,min,x,y;float ave;float ave;max=min=array0;max=min=array0;for(int i=0;in;i+)for(int i=0;in;i+)void exchange()voi
9、d exchange()for(int i=0;in;i+)for(int i=0;in;i+)arrayi=bi;arrayi=bi;if(arrayimin)min=arrayi;y=i;if(arrayimin)min=arrayi;y=i;ave=s/n;ave=s/n;cout cout平均值为平均值为:aveendl;:aveendl;arrayy=max;arrayx=min;arrayy=max;arrayx=min;for(int i=0;in;i+)for(int i=0;in;i+)coutarrayi;coutarrayi;void print()void print(
10、);void main()void main()int B=21,65,43,87,12,84,44,97,32,55;int B=21,65,43,87,12,84,44,97,32,55;MOVE test(B,10);MOVE test(B,10);();();();();delete array;delete array;MOVE()MOVE()四、实践小结四、实践小结学会求数组中最大元素与最小元素方法,并实现交换。五、运行结果五、运行结果任务四任务四一、实践任务一、实践任务6定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符
11、串“123321”是回文字符串。二、详细设计二、详细设计1、类的描述与定义(1)私有数据成员char*str;int y:标记是否为回文字符串。(2)公有成员函数String(char*s):构造函数,用给定的参数 s 初始化数据成员 str。y初始化为 0。void huiwen():判断 str 所指向的字符串是否为回文字符串。void show():在屏幕上显示字符串。2、主要函数设计在主程序中定义字符串char s=”ababcedbaba”作为原始字符串。定义一个String 类对象 test,用 s 初始化 test,完成对该类的测试。三、源程序清单三、源程序清单#include#
12、include#include#includeclass Stringclass String char*str;char*str;int y;int y;public:public:String(char*s)String(char*s)void huiwen()void huiwen()char*p1=str,*p2=str;char*p1=str,*p2=str;while(*p2)p2+;p2-;while(*p2)p2+;p2-;for(;p1p2;p1+,p2-)for(;p1p2;p1+,p2-)if(*p1!=*p2)if(*p1!=*p2)y=1;y=1;str=new ch
13、arstrlen(s)+1;str=new charstrlen(s)+1;strcpy(str,s);strcpy(str,s);y=0;y=0;break;break;void show()void show()if(y)if(y)coutstrcoutstr不是回文字符串不是回文字符串n;n;else coutstrelse coutstr是回文字符串是回文字符串n;n;void main()void main()String A(1253321);String A(1253321);();();();();四、实践小结四、实践小结掌握判断回文字符串的一般形式。五、运行结果五、运行结果任
14、务五任务五一、实践任务一、实践任务11建立一个 STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。例如将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。二、详细设计二、详细设计1、类的描述与定义(1)私有数据成员char str180:存放被插入的字符串。char str240:存放待插入的字符串。(2)公有成员函数STRING(char*s1,char*s2):构造函数,用 s1 和 s2 初始化 str1 和 str2。void process():将 str2 中的字符串插入到 str1 中。void pr
15、int():输出插入后的字符串。2、主要函数设计在主程序中定义 STRING 类的对象 test 对该类进行测试。三、源程序清单三、源程序清单#include#include class STRINGchar str180,str240;public:STRING(char*s1,char*s2)void process()void print()int i=0,j=0;char t80;strcpy(t,str1);while(str2j)str1i=0;str1i+=tj;str1i+=str2j;j+;strcpy(str1,s1);strcpy(str2,s2);coutstr1end
16、l;void main()char s180,s240;cout请输入被插入字符串endl;(s1,79);cout请输入待插入字符串endl;(s2,39);STRING test(s1,s2);();();四、实践小结四、实践小结发现字符插入的规律,再依次放入相应字符位置。五、运行结果五、运行结果任务六任务六一、实践任务一、实践任务14建立一个类 MOVE,实现将数组中大字字母元素放在小写字母元素的左边。二、详细设计二、详细设计1、类的描述与定义(1)私有数据成员char*array:一维字符数组。int n:数组中元素的个数。(2)公有成员函数MOVE(char b,int m):构造函
17、数,初始化成员数据。void change():进行排序换位。void print():输出一维数组。MOVE():析构函数。2、主要函数设计在主程序中用数据fdsUFfsTjfsKFEkWC对该类进行测试。三、源程序清单三、源程序清单#includeclass MOVEchar*array;int n;public:MOVE(char b,int m)void change()char a;for(int i=1;i=a&arrayi-1=z)a=arrayi-1;for(int j=i-1;jn;j+)arrayj=arrayj+1;n=m;array=new charn;for(int i=0;in;i+)arrayi=bi;arrayn-1=a;i-;void print()MOVE()if(array)deletearray;for(int i=0;in;i+)coutarrayi;coutendl;void main()char*arr=fdsUFfsTjfsKFEkWC;MOVE test(arr,17);();();四、实践小结四、实践小结利用临时数组,分别保存大写与小写字母,再实现功能。五、运行结果五、运行结果
限制150内