C++程序设计-实践报告

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

.

课程实践报告

设计题目: 程序设计(VC++)实践设计时间2013-1- 至2013-1- 学院(系): 计算机科学与工程学院

2013年1月

一.实践任务

选择题目,创新性题目可只选择1 题,仅选提高题应不少于3 题,仅选基础题应不少于6 题,也可组合选题,还可自行选择感兴趣的题目(须经指导老师审定)。对于提高题、创新题及游戏题可组成团队开发,但应制定详细的项目分工说明。

二.实验步骤及记录(题目,源程序代码及运行结果)

1.与学号对应的题(必做题):基础题12

题目:

建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不

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

具体要求如下:

(1)私有数据成员

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

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

char str3[100] :存放插入后的字符串。

(2)公有成员函数

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

void process():将str2 中的字符串插入到str1 中,存放到str3 中。

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

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

源程序代码:

#include

#include

class STRING{

char str1[60];

char str2[40];

char str3[100];

public:

STRING(char *s1,char *s2){

strcpy(str1,s1);

strcpy(str2,s2);

}

void process(){

char *p1=str1,*p2=str2;

for(int i=0;*p2;i=i+2){

for(int k=strlen(str1);k>=i;k--){

str1[k+1]=str1[k];

}

*p1=*p2;

p1=p1+2;

p2++;

}

}

void print(){

strcpy(str3,str1);

cout<

}

};

void main(){

char s1[60]="ABCDEFG";

char s2[40]="abcde";

cout<<"原字符串:"<

cout<<"交叉插入后的字符串:";

STRING test(s1,s2);

test.process();

test.print();

}

运行结果:

2-6为选做题,其中2,3,4为基础题;5,6为提高题。

2.基础题4

题目:

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

具体要求如下:

(1)私有数据成员

int *array:一维整型数组。

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

(2)公有成员函数

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

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

~MOVE():析构函数。

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

#include

class MOVE{

int *array;

public:

MOVE(int b[],int m){

n=m;

array=new int[m];

for(int i=0;i

array[i]=b[i];

}

void exchange(){

int b[10];

for(int k=0;k

b[k]=array[k];

for(int i=0;i

for(int j=i+1;j

if(b[j]>=b[i]){

int temp=b[i];

b[i]=b[j];

b[j]=temp;

}

int max=b[0],min=b[n-1];

for(int p=0;p

if(array[p]==max)array[p]=min;

else if(array[p]==min)array[p]=max;

}

}

void print(){

for(int i=0;i

cout<

cout<

}

~MOVE(){delete [n]array;}

};

void main(){

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

cout<<"原数组:"<

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

cout<

cout<

cout<<"交换最大值和最小值后的数组:"<

MOVE a1(a,10);

a1.exchange();

a1.print();

}

相关文档
最新文档