实践报告答案江苏科技大学c++.docx
- 文档编号:14521014
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:19
- 大小:157.34KB
实践报告答案江苏科技大学c++.docx
《实践报告答案江苏科技大学c++.docx》由会员分享,可在线阅读,更多相关《实践报告答案江苏科技大学c++.docx(19页珍藏版)》请在冰点文库上搜索。
实践报告答案江苏科技大学c++
江苏科技大学
课程实践报告
设计题目:
程序设计(VC++)实践
设计时间至
学院(系):
专业班级:
学生姓名:
学号
指导老师:
2013年12月
任务一
一、实践任务
2.试建立一个类SP,求
,另有辅助函数power(m,n)用于求
。
二、详细设计
1、类的描述与定义
(1)私有数据成员
intn,k:
存放公式中n和k的值;
(2)公有成员函数
SP(intn1,intk1):
构造函数,初始化成员数据n和k。
intpower(intm,intn):
求mn。
intfun():
求公式的累加和。
voidshow():
输出求得的结果。
2、主要函数设计
在主程序中定义对象s,对该类进行测试。
三、源程序清单
#include<>
classSP
{
intn,k;
public:
SP(intn1,intk1)
{
n=n1;k=k1;
}
intpower(intm,intn)
{
intp=1;
for(inti=1;i p*=m; returnp; } intfun() { ints=0; for(inti=1;i s+=power(i,k); returns; } voidA() { cout<<"n="< } }; voidmain() { SPa(3,3); (3,3); (); (); }四、实践小结 掌握用循环语句求m^n,和m! ,熟练掌握函数的调用。 五、运行结果 任务二 一、实践任务 3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。 二、详细设计 1、类的描述与定义 (1)私有数据成员 floatarray[20]: 一维整型数组。 intn: 数组中元素的个数。 (2)公有成员函数 MOVE(floatb[],intm): 构造函数,初始化成员数据。 voidaverage(): 输出平均值,并将数组中的元素按要求重新放置。 voidprint(): 输出一维数组。 2、主要函数设计 在主程序中用数据{,,3,,,,,,}对该类进行测试。 三、源程序清单 #include<> classMOVE{ floatarray[20]; intn; public: MOVE(floatb[],intm) { n=m; for(inti=0;i array[i]=b[i]; } voidaverage() { floatt=0; for(inti=0;i t+=array[i]; floatD=(t/n); cout<<"平均值为: "< intj=n-1; for(i=0;i { while(array[i]<=D)i++; while(array[j]>D)j--; t=array[i]; array[i]=array[j]; array[j]=t; } } voidprint() { for(inti=0;i cout< cout< } }; voidmain() { floatb1[]={,,3,,,,,,}; intnum; num=sizeof(b1)/sizeof(float); MOVEs(b1,num); (); (); } 四、实践小结 应熟练掌握数组与指针的应用。 五、运行结果 任务三 一、实践任务 4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。 二、详细设计 1、类的描述与定义 (1)私有数据成员 int*array: 一维整型数组。 intn: 数组中元素的个数。 (2)公有成员函数 MOVE(intb[],intm): 构造函数,初始化成员数据。 voidexchange(): 输出平均值,并将数组中的元素按要求重新放置。 voidprint(): 输出一维数组。 ~MOVE(): 析构函数。 2、主要函数设计 在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。 三、源程序清单 #include<> classMOVE { int*array; intn; public: MOVE(intb[],intm) { n=m; array=newint[n]; for(inti=0;i array[i]=b[i]; } voidexchange() { ints=0,max,min,x,y; floatave; max=min=array[0]; for(inti=0;i { s+=array[i]; if(array[i]>max){max=array[i];x=i;} if(array[i] } ave=s/n; cout<<"平均值为: "< array[y]=max;array[x]=min; } voidprint() { for(inti=0;i cout< } ~MOVE() { delete[]array; } }; voidmain() { intB[]={21,65,43,87,12,84,44,97,32,55}; MOVEtest(B,10); (); (); } 四、实践小结 学会求数组中最大元素与最小元素方法,并实现交换。 五、运行结果 任务四 一、实践任务 6.定义一个字符串类String,实现判断该字符串是否为回文字符串。 所谓回文字符串,是指该字符串左右对称。 例如字符串“123321”是回文字符串。 二、详细设计 1、类的描述与定义 (1)私有数据成员 char*str; inty: 标记是否为回文字符串。 (2)公有成员函数 String(char*s): 构造函数,用给定的参数s初始化数据成员str。 y初始化为0。 voidhuiwen(): 判断str所指向的字符串是否为回文字符串。 voidshow(): 在屏幕上显示字符串。 2、主要函数设计 在主程序中定义字符串chars[]=”ababcedbaba”作为原始字符串。 定义一个String类对象test,用s初始化test,完成对该类的测试。 三、源程序清单 #include<> #include<> classString { char*str; inty; public: String(char*s) { str=newchar[strlen(s)+1]; strcpy(str,s); y=0; } voidhuiwen() { char*p1=str,*p2=str; while(*p2)p2++;p2--; for(;p1 if(*p1! =*p2) { y=1; break; } } voidshow() { if(y) cout< elsecout< } }; voidmain() { StringA("1253321"); (); (); } 四、实践小结 掌握判断回文字符串的一般形式。 五、运行结果 任务五 一、实践任务 11.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。 例如将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。 二、详细设计 1、类的描述与定义 (1)私有数据成员 charstr1[80]: 存放被插入的字符串。 charstr2[40]: 存放待插入的字符串。 (2)公有成员函数 STRING(char*s1,char*s2): 构造函数,用s1和s2初始化str1和str2。 voidprocess(): 将str2中的字符串插入到str1中。 voidprint(): 输出插入后的字符串。 2、主要函数设计 在主程序中定义STRING类的对象test对该类进行测试。 三、源程序清单 #include<> #include<> classSTRING{ charstr1[80],str2[40]; public: STRING(char*s1,char*s2) { strcpy(str1,s1); strcpy(str2,s2); } voidprocess() { inti=0,j=0; chart[80]; strcpy(t,str1); while(str2[j]) { str1[i++]=t[j]; str1[i++]=str2[j]; j++; } str1[i]='\0'; } voidprint() { cout< } }; voidmain() { chars1[80],s2[40]; cout<<"请输入被插入字符串"< (s1,79); cout<<"请输入待插入字符串"< (s2,39); STRINGtest(s1,s2); (); (); }四、实践小结 发现字符插入的规律,再依次放入相应字符位置。 五、运行结果 任务六 一、实践任务 14.建立一个类MOVE,实现将数组中大字字母元素放在小写字母元素的左边。 二、详细设计 1、类的描述与定义 (1)私有数据成员 char*array: 一维字符数组。 intn: 数组中元素的个数。 (2)公有成员函数 MOVE(charb[],intm): 构造函数,初始化成员数据。 voidchange(): 进行排序换位。 voidprint(): 输出一维数组。 ~MOVE(): 析构函数。 2、主要函数设计 在主程序中用数据"fdsUFfsTjfsKFEkWC"对该类进行测试。 三、源程序清单 #include<> classMOVE { char*array; intn; public: MOVE(charb[],intm) { n=m; array=newchar[n]; for(inti=0;i array[i]=b[i]; } voidchange() { chara; for(inti=1;i { if(array[i-1]>='a'&&array[i-1]<='z') { a=array[i-1]; for(intj=i-1;j { array[j]=array[j+1]; } array[n-1]=a; i--; } } } voidprint() { for(inti=0;i cout< cout< } ~MOVE() { if(array)delete[]array; } }; voidmain() { char*arr="fdsUFfsTjfsKFEkWC"; MOVEtest(arr,17); (); (); }四、实践小结 利用临时数组,分别保存大写与小写字母,再实现功能。 五、运行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实践 报告 答案 江苏 科技大学 c+