实践报告答案江苏科技大学c++

时间:2020-11-15 09:21:36 手机站 来源:网友投稿

江苏科技大学

课程实践报告

设计题目: 程序设计(VC++)实践

设计时间 至

学院(系):

专业班级:

学生姓名: 学号

指导老师:

2013年12月

任务

一、实践任务

,另有辅助函数2 .试建立一个类 SP,求

,另有辅助函数

power(m,n)用于求

、详细设计

1、类的描述与定义

(1)私有数据成员

intn , k:存放公式中n和k的值;

(2)公有成员函数

n和k

n和k。

int power(int m, int n) :求 m。

int fun() :求公式的累加和。

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

2、主要函数设计

在主程序中定义对象 s,对该类进行测试。

三、源程序清单

#in elude <>

class SP

{

int n ,k;

public:

SP(i nt n 1,i nt k1)

{

n=n 1;k=k1;

}

int power(i nt m,i nt n)

{

int p=1;

for (i nt i=1;i <n +1;i++)

p*=m;

return p;

}

int fun ()

int s=0;

for (int i=1;i<n+1;i++)

s+=power(i,k);

return s;

}

void A()

{

cout<<"n="<<n<<",k="<<k<<",f(n,k)="<<fun()<<endl;

}

};

void main()

{

SP a(3,3);

(3,3);

();

();

}四、实践小结

掌握用循环语句求m",和m!,熟练掌握函数的调用

五、运行结果

'C:\U5ers\thinkpad ■.Desktop\Debug\Cpp2 [1).exe"

11=3, lc=3,f Cni ,k>=36

Press aimy key to contin uie

任务二

一、 实践任务

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

二、 详细设计

1类的描述与定义

私有数据成员

float array[20] :—维整型数组。

intn :数组中元素的个数。

公有成员函数

MOVE(float b[],i nt m) :构造函数,初始化成员数据。

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

void prin t() :输出一维数组。

2、主要函数设计

在主程序中用数据 {,,3,,,,,,} 对该类进行测试。

三、源程序清单

#include<> class MOVE{

float array[20];

int n;

public:

MOVE(float b[],int m)

{

n=m;

for(int i=0;i<m;i++) array[i]=b[i];

}

void average()

{

float t=0;

for(int i=0;i<n;i++) t+=array[i];

float D=(t/n);

cout<<" 平均值为: "<<D<<endl; int j=n-1;

for(i=0;i<j;i++,j--)

{

while(array[i]<=D)i++;

while(array[j]>D)j--;

t=array[i];

array[i]=array[j]; array[j]=t;

}

}

void print()

{

for(int i=0;i<n;i++)

cout<<array[i]<<'\t'; cout<<endl;

}

};

void main()

{

float b1[]={,,3,,,,,,};

int num;

num=sizeof(b1)/sizeof(float);

MOVE s(b1,num);

();

();

}

四、实践小结

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

五、运行结果

任务三

一、 实践任务

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

二、 详细设计

1类的描述与定义

私有数据成员

int *array :—维整型数组。

intn :数组中元素的个数。

公有成员函数

MOVE(i nt b[],i nt m) :构造函数,初始化成员数据。

void excha nge():输出平均值,并将数组中的元素按要求重新放置。

void prin t() :输出一维数组。

~MOVE():析构函数。

2、主要函数设计

}

}

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

对该类进行测试。

三、源程序清单

#include <> class MOVE

{

int *array;

int n;

public:

MOVE(int b[],int m)

{

n=m; array=new int[n];

for(int i=0;i<n;i++) array[i]=b[i];

}

void exchange()

{

int s=0,max,min,x,y; float ave;

max=min=array[0];

for(int i=0;i<n;i++)

{

s+=array[i]; if(array[i]>max){max=array[i];x=i;} if(array[i]<min){min=array[i];y=i;}

ave=s/n;

cout<<" 平均值为 :"<<ave<<endl; array[y]=max;array[x]=min;

}

void print()

{

for(int i=0;i<n;i++)

cout<<array[i]<<" ";

}

~MOVE()

{

delete []array;

}

};

void main()

{

int B[]={21,65,43,87,12,84,44,97,32,55};

MOVE test(B,10);

();

();

}

四、实践小结

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

五、运行结果

任务四

一、 实践任务

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

指该字符串左右对称。例如字符串“ 123321”是回文字符串。

二、 详细设计

1、类的描述与定义

私有数据成员

char *str;

int y :标记是否为回文字符串。

公有成员函数

String (char *s) :构造函数,用给定的参数 s初始化数据成员 str 。y

初始化为0。

void huiwen () :判断str所指向的字符串是否为回文字符串。

void show()

void show() :在屏幕上显示字符串。

2、主要函数设计

在主程序中定义字符串 char s[]= ” ababcedbaba"作为原始字符串。定义一个

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

三、源程序清单

#in clude<> #in clude<> class String

{

char *str;

int y;

public:

Strin g(char *s)

{

str=new char[strle n( s)+1];

strcpy(str,s);

y=0;

}

void huiwe n()

{

char *p1=str,*p2=str;

while(*p2)p2++;p2--;

for(;p1<p2;p1++,p2--) if(*p1!=*p2)

{

y=1;

break;

}

void show()

{

if(y)

cout<<str<<" 不是回文字符串 "<<'\n';

else cout<<str<<" 是回文字符串 "<<'\n';

}

};

void main()

{

String A("1253321");

();

();

}

四、实践小结

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

五、运行结果

任务五

一、 实践任务

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

例如将字符串“abcde” 交叉插入字符串“ABCD”的结果为“aAbBcCdDe'E或

“AaBbCcDdEe。

二、 详细设计

1、类的描述与定义

(1) 私有数据成员

char str1[80] :存放被插入的字符串。

char str2[40] :存放待插入的字符串。

(2) 公有成员函数

STRING(char *s1, char *s2 ):构造函数,用 s1 和 s2 初始化 str1 和 str2。

void process。

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

:输出插入后的字符串。void prin t()

:输出插入后的字符串。

2、主要函数设计

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

三、源程序清单

#include<>

#include <>

class STRING{

char str1[80],str2[40];

public:

STRING(char *s1,char *s2) {

strcpy(str1,s1);

strcpy(str2,s2);

}

void process()

{

int i=0,j=0;

char t[80]; strcpy(t,str1);

while(str2[j])

{

str1[i++]=t[j];

str1[i++]=str2[j]; j++;

}

str1[i]='\0';

}

void print()

cout<<str1<<endl;

}

};

void main()

{

char s1[80],s2[40];

cout<<" 请输入被插入字符串 "<<endl;

(s1,79);

cout<<" 请输入待插入字符串 "<<endl;

(s2,39);

STRING test(s1,s2);

();

();

}四、实践小结

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

五、运行结果

青输入被插入字符串

ABCDE

青输入待插入字符串

a be de

AaBbCcDdEe

Press an9 key to continue

半二

任务六

一、 实践任务

14?建立一个类MOVE实现将数组中大字字母元素放在小写字母元素的左边。

二、 详细设计

1、类的描述与定义

私有数据成员

char *array :—维字符数组。

intn :数组中元素的个数。

公有成员函数

MOVE(char b[],i nt m):构造函数,初始化成员数据。

void chan ge():进行排序换位。

void prin t() :输出一维数组。

~MOVE():析构函数。

2、主要函数设计

在主程序中用数据 "fdsUFfsTjfsKFEkWC" 对该类进行测试。

三、源程序清单

#include<>

class MOVE

{

char*array;

int n;

public:

MOVE(char b[],int m)

{

n=m;

array=new char[n];

for(int i=0;i<n;i++)

array[i]=b[i];

}

void change()

{

char a;

for(int i=1;i<n/2;i++)

{

if(array[i-1]>='a'&&array[i-1]<='z')

{

a=array[i-1];

for(int j=i-1;j<n;j++)

array[j]=array[j+1];

}

}

array[n-1]=a;

i--;

}

}

}

void print()

{

for(int i=0;i<n;i++)

cout<<array[i];

cout<<endl;

}

~MOVE()

{

if(array)delete[]array;

}

};

void main()

{

char*arr="fdsUFfsTjfsKFEkWC";

MOVE test(arr,17);

();

();

}四、实践小结

利用临时数组,分别保存大写与小写字母,再实现功能

五、运行结果

推荐访问:实践报告 江苏 科技大学 实践 实践报告答案江苏科技大学c++

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。