江苏科技大学 c++实验报告

  • 格式:doc
  • 大小:301.46 KB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏科技大学

课程实践报告

设计题目:计算机程序设计实验(C++)

设计时间: 2016年10月3日至2016年10月4日学院:计算机科学与工程学院

专业班级:通信工程 1522107041

学生姓名:周祯楠学号:************

****:***

一、第三题

(一)题目:

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

(1)私有数据成员。

○1float array[20]:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数

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

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

○3void print():输出一维数组。

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

(二)源程序:

#include

class MOVE

{

float array[20];

int n;

public:

MOVE(float b[],int m);

void average();

void print();

};

MOVE::MOVE(float b[],int m)

{

int i;

n=m;

for(i=0;i

array[i]=b[i];

}

void MOVE::average()

{

int i,x;

float a = 0;

for(i=0;i

a+=array[i];

a/=n;

cout<<"平均值为:"<

float f[20];

for(i=0,x=0;i

if(array[i]

{

f[x] = array[i];

x++;

}

for(i=0;i

if(array[i]>a)

{

f[x] = array[i];

x++;

} //○2

for(i=0;i

array[i] = f[i]; //○3

}

void MOVE::print()

{

int i;

for(i=0;i

{

cout<

if((i+1)%5==0) cout<

}

cout<

}

void main()

{

float b[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};

int m = 9;

MOVE ff(b,m);

ff.average();

ff.print();

}

(三)运行结果:

(四)基本分析:

1.就结构而言,定义类以及成员函数按照题目要求写即可,注意类作用域符::不可缺失。

2.就算法而言:

○1求数组中的数的平均值,就是先求和,再除总个数。

○2“小于平均值的放左边,大于平均值的放右边。”先新建一个数组f[20]用于存放排列后的数组,通过if条件判断语句进行排序,这里大于平均值和小于平均值是有先后顺序的,因为是依次放入f[20]中,所以要等小于平均值的放完,再放大于平均值的。

○3再把f[20]赋值给array[20],这样array[20]就是排序后的符合题目要求的新数组。

○4每行5个输出,i的初始值是0,所以if条件判断中应该是if((i+1)%5 == 0),直接用i,无需定义其他变量。

二、第四题

(一)题目:

4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。具体要求如下:

(1)私有数据成员

○1int *array:一维整型数组。

○2int n:数组中元素的个数。

(2)公有成员函数

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

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

○3void print():输出一维数组。

○4~MOVE():析构函数。

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

#include

class MOVE

{

int *array;

int n;

public:

MOVE(int b[],int m);

void exchange();

void print();

~MOVE();

};

MOVE::MOVE(int b[],int m)

{

n = m;

array = new int[n]; //○1

for(int i=0;i

array[i] = b[i];

}

void MOVE::exchange()