江苏科技大学-C++课程实践报告答案.doc

上传人:b****9 文档编号:74533 上传时间:2022-10-02 格式:DOC 页数:79 大小:2.16MB
下载 相关 举报
江苏科技大学-C++课程实践报告答案.doc_第1页
第1页 / 共79页
江苏科技大学-C++课程实践报告答案.doc_第2页
第2页 / 共79页
江苏科技大学-C++课程实践报告答案.doc_第3页
第3页 / 共79页
江苏科技大学-C++课程实践报告答案.doc_第4页
第4页 / 共79页
江苏科技大学-C++课程实践报告答案.doc_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

江苏科技大学-C++课程实践报告答案.doc

《江苏科技大学-C++课程实践报告答案.doc》由会员分享,可在线阅读,更多相关《江苏科技大学-C++课程实践报告答案.doc(79页珍藏版)》请在冰豆网上搜索。

江苏科技大学-C++课程实践报告答案.doc

江苏科技大学

课程实践报告

设计题目:

程序设计(VC++)实践

设计时间至

学院(系):

专业班级:

学生姓名:

学号

指导老师:

2013年12月

任务一

一、实践任务

2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lintn,k:

存放公式中n和k的值;

(2)公有成员函数

lSP(intn1,intk1):

构造函数,初始化成员数据n和k。

lintpower(intm,intn):

求mn。

lintfun():

求公式的累加和。

lvoidshow():

输出求得的结果。

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);

a.power(3,3);

a.fun();

a.A();

}四、实践小结

掌握用循环语句求m^n,和m!

,熟练掌握函数的调用。

五、运行结果

任务三

一、实践任务

3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lfloatarray[20]:

一维整型数组。

lintn:

数组中元素的个数。

(2)公有成员函数

lMOVE(floatb[],intm):

构造函数,初始化成员数据。

lvoidaverage():

输出平均值,并将数组中的元素按要求重新放置。

lvoidprint():

输出一维数组。

2、主要函数设计

在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

三、源程序清单

四、实践小结

应熟练掌握数组与指针的应用。

五、运行结果

任务四

一、实践任务

4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lint*array:

一维整型数组。

lintn:

数组中元素的个数。

(2)公有成员函数

lMOVE(intb[],intm):

构造函数,初始化成员数据。

lvoidexchange():

输出平均值,并将数组中的元素按要求重新放置。

lvoidprint():

输出一维数组。

l~MOVE():

析构函数。

2、主要函数设计

在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

三、源程序清单

四、实践小结

学会求数组中最大元素与最小元素方法,并实现交换。

五、运行结果

任务六

一、实践任务

6.定义一个字符串类String,实现判断该字符串是否为回文字符串。

所谓回文字符串,是指该字符串左右对称。

例如字符串“123321”是回文字符串。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lchar*str;

linty:

标记是否为回文字符串。

(2)公有成员函数

lString(char*s):

构造函数,用给定的参数s初始化数据成员str。

y初始化为0。

lvoidhuiwen():

判断str所指向的字符串是否为回文字符串。

lvoidshow():

在屏幕上显示字符串。

2、主要函数设计

在主程序中定义字符串chars[]=”ababcedbaba”作为原始字符串。

定义一个String类对象test,用s初始化test,完成对该类的测试。

三、源程序清单

四、实践小结

掌握判断回文字符串的一般形式。

五、运行结果

任务十一

一、实践任务

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

例如将字符串“abcde”交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lcharstr1[80]:

存放被插入的字符串。

lcharstr2[40]:

存放待插入的字符串。

(2)公有成员函数

lSTRING(char*s1,char*s2):

构造函数,用s1和s2初始化str1和str2。

lvoidprocess():

将str2中的字符串插入到str1中。

lvoidprint():

输出插入后的字符串。

2、主要函数设计

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

三、源程序清单

#include

#include

classSTRING{

private:

charstr1[80];//存放被插入的字符串;

charstr2[40];//存放待插入的字符串;

public:

STRING(char*s1,char*s2)

{

strcpy(str1,s1);

strcpy(str2,s2);

}

voidprocess();

voidprint();

};

voidSTRING:

:

process()

{

inti,j;

intn=strlen(str1);

if(strlen(str2)>strlen(str1))

{//当待插入的字符串ABCDEFG比被插入的字符串abcde长或相等时,逻辑算法:

abcde->abcde->空格处依次插入ABCDEFG->aAbBcCdDeEFG;

for(i=n-1;i>0;i--)

{

str1[i+i]=str1[i];//被插入的字符串由最后一位开始各位向后移动i位;

}

for(i=1,j=0;i<2*n;i+=2,j++)

{

str1[i]=str2[j];//在空出的位置处依次插入字符串;

}

i--;

for(;j<=strlen(str2);j++,i++)

{

str1[i]=str2[j];//将过长额字符串放入被插入的字符串尾部,完成插入;

}

}

else//当待插入的字符串abcde比被插入的字符串ABCDEFG短时,逻辑算法:

ABCDEFG->ABCDEFG->空格处插入abcde->AaBbCcDdEeFG;

{

for(i=n;i>strlen(str2)-1;i--)

{

str1[i+strlen(str2)]=str1[i];//比待插入的字符串长的部分均向后移strlen(str2)位;

}

for(i=strlen(str2)-1;i>0;i--)

{

str1[i+i]=str1[i];//之前的部分均向后移i位;

}

for(i=1,j=0;i<2*strlen(str2);i+=2,j++)

{

str1[i]=str2[j];//将待插入的字符串插入空格处,完成插入;

}

}

}

voidSTRING:

:

print()//输出插入后的字符串

{

cout<<"插入后的字符串为:

"<

}

voidmain()//测试

{

STRINGtest("ABCDE","abcde");

test.process();

test.print();

}

四、实践小结

发现字符插入的规律,再依次放入相应字符位置。

五、运行结果

任务十二

一、实践任务

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

例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。

二、详细设计

1、类的描述与定义

(1)私有数据成员

lcharstr1[60]:

存放被插入的字符串。

lcharstr2[40]:

存放待插入的字符串。

lcharstr3[100]:

存放插入后的字符串。

(2)公有成员函数

lSTRING(char*s1,char*s2):

构造函数,用s1和s2初始化str1和str2。

lvoidprocess():

将str2中的字符串插入到str1中,存放到str3中。

lvoidprint():

输出插入后的字符串。

2、主要函数设计

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

三、源程序清单

#include

#include

classSTRING{

private:

charstr1[60];

charstr2[40];

charstr3[100];

public:

STRING(char*s1,char*s2)

{

strcpy(str1,s1);

strcpy(str2,s2);

}

voidprocess();

voidprint();

};

voidSTRING:

:

process()

{

inti,j;

intn=strlen(str1);

if(strlen(str2)>strlen(str1))

{//当待插入的字符串ABCDEFG比被插入的字符串abcde长或相等时,逻辑算法:

abcde->abcde->空格处依次插入ABCDEFG->aAbBcCdDeEFG;

for(i=n-1;i>0;i--)

{

str1[i+i]=str1[i];//被插入的字符串由最后一位开始各位向后移动i位;

}

for(i=1,j=0;i<2*n;i+=2,j++)

{

str1[i]=str2[j];//在空出的位置处依次插入字符串;

}

i--;

for(;j<=strlen(str2);j++,i++)

{

str1[i]=str2[j];//将过长额字符串放入被插入的字符串尾部,完成插入;

}

}

else//当待插入的字符串abcde比被插入的字符串ABCDEFG短时,逻辑算法:

ABCDEFG->A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1