实验六数组指针与字符串评讲电子教案.docx

上传人:b****7 文档编号:8652975 上传时间:2023-02-01 格式:DOCX 页数:15 大小:134.46KB
下载 相关 举报
实验六数组指针与字符串评讲电子教案.docx_第1页
第1页 / 共15页
实验六数组指针与字符串评讲电子教案.docx_第2页
第2页 / 共15页
实验六数组指针与字符串评讲电子教案.docx_第3页
第3页 / 共15页
实验六数组指针与字符串评讲电子教案.docx_第4页
第4页 / 共15页
实验六数组指针与字符串评讲电子教案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验六数组指针与字符串评讲电子教案.docx

《实验六数组指针与字符串评讲电子教案.docx》由会员分享,可在线阅读,更多相关《实验六数组指针与字符串评讲电子教案.docx(15页珍藏版)》请在冰豆网上搜索。

实验六数组指针与字符串评讲电子教案.docx

实验六数组指针与字符串评讲电子教案

 

实验六--数组、指针与字符串-评讲

姓名:

学号:

班级:

2012计本

实验六数组、指针与字符串(4学时)

⏹实验目的

(1)学习使用数组数据对象

(2)学习字符串数据的组织和处理

(3)学习标准C++库的使用

(4)掌握指针的使用方法

(5)练习通过Debug观察指针的内容及其所指的对象的内容

(6)练习通过动态内存分配实现动态数组,并体会指针在其中的作用

(7)分别使用字符数组和标准C++库练习处理字符串的方法

⏹实验任务

1)以例6-3为基础,观察对象数组的声明与引用过程,并与单对象的引用过程的区别。

2)以例6-10为基础,观察用指针作为函数参数传递数据的方法,进一步理解值传递与引用传递的思想

3)以例5-11为基础,完成例5-25,比较二者的异同

4)编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

5)使用动态内存分配生成动态数组来重新完成第(4)题,使用指针实现函数功能

6)编程实现两字符串的连接。

要求使用字符数组保存字符串,不要使用系统函数。

7)使用string类声明字符串对象,重新实现第(6)。

8)声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()改变对象的姓名属性,实现并测试这个类。

9)声明包含5个元素的对象数组,每个元素都是Employee类型对象。

⏹评讲部分

4)编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

#include

usingnamespacestd;

voidmove(intmatrix[3][3])

{

inti,j,k;

for(i=0;i<3;i++)

for(j=0;j

{

k=matrix[i][j];

matrix[i][j]=matrix[j][i];

matrix[j][i]=k;

}

}

intmain()

{

inti,j;

intdata[3][3];

cout<<"输入矩阵的元素"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

cout<<"第"<

";

cin>>data[i][j];

}

cout<<"输入的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

move(data);

cout<<"转置后的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

5)使用动态内存分配生成动态数组来重新完成第(4)题,使用指针实现函数功能(结果与4题同)

#include

usingnamespacestd;

voidmove(int*matrix)

{

inti,j,k;

for(i=0;i<3;i++)

for(j=0;j

{

k=*(matrix+i*3+j);

*(matrix+i*3+j)=*(matrix+j*3+i);

*(matrix+j*3+i)=k;

}

}

intmain()

{

inti,j;

int*p=newint[3*3];

cout<<"输入矩阵的元素"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

cout<<"第"<

";

cin>>p[i*3+j];

}

cout<<"输入的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

move(p);

cout<<"转置后的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

 

6)编程实现两字符串的连接。

要求使用字符数组保存字符串,不要使用系统函数。

#include

usingnamespacestd;

intmain()

{

inti=0,j=0;

chars1[200],s2[100];

cout<<"请输入第一个字符串:

";

cin>>s1;

cout<<"请输入第二个字符串:

";

cin>>s2;

while(s1[i])

i++;

while(s2[j])

s1[i++]=s2[j++];

s1[i]='\0';//注释该句会有什么结果

cout<<"连接后的字符串为:

"<

}

7)使用string类声明字符串对象,重新实现第(6)(结果同6)。

#include

#include

usingnamespacestd;

intmain()

{

strings1;

strings2;

cout<<"请输入第一个字符串:

";

cin>>s1;

cout<<"请输入第二个字符串:

";

cin>>s2;

s1+=s2;

cout<<"连接后的字符串为:

"<

}

8)声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()改变对象的姓名属性,实现并测试这个类。

//employee.h

#include

#include

usingnamespacestd;

classEmployee

{

private:

charname[30];

charstreet[30];

charcity[18];

charzip[7];

public:

Employee(char*n,char*str,char*ct,char*z);

voidchange_name(char*n);

voiddisplay();

};

Employee:

:

Employee(char*n,char*str,char*ct,char*z)

{

strcpy(name,n);

strcpy(street,str);

strcpy(city,ct);

strcpy(zip,z);

}

voidEmployee:

:

change_name(char*n)

{

strcpy(name,n);

}

voidEmployee:

:

display()

{

cout<

cout<

}

//lab6_5.cpp

#include"employee.h"

intmain()

{

Employeee1("张三","平安大街号","北京","100000");

e1.display();

cout<

e1.change_name("李四");

e1.display();

cout<

}

 

9)声明包含5个元素的对象数组,每个元素都是Employee类型对象。

//lab6_6.cpp

#include"employee.h"

intmain()

{

Employeeemp[5]=

{Employee("张三","平安大街号","北京","100000"),

Employee("李四","王府井大街号","北京","100000"),

Employee("赵刚","中山路号","重庆","400000"),

Employee("陈芳","南京路号","上海","200000"),

Employee("周欣","人民东路号","重庆","400000")};

for(inti=0;i<5;i++)

emp[i].display();

}

 

姓名:

学号:

班级:

2012计本

实验六数组、指针与字符串(4学时)

⏹实验目的

(1)学习使用数组数据对象

(2)学习字符串数据的组织和处理

(3)学习标准C++库的使用

(4)掌握指针的使用方法

(5)练习通过Debug观察指针的内容及其所指的对象的内容

(6)练习通过动态内存分配实现动态数组,并体会指针在其中的作用

(7)分别使用字符数组和标准C++库练习处理字符串的方法

⏹实验任务

10)以例6-3为基础,观察对象数组的声明与引用过程,并与单对象的引用过程的区别。

11)以例6-10为基础,观察用指针作为函数参数传递数据的方法,进一步理解值传递与引用传递的思想

12)以例5-11为基础,完成例5-25,比较二者的异同

13)编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

14)使用动态内存分配生成动态数组来重新完成第(4)题,使用指针实现函数功能

15)编程实现两字符串的连接。

要求使用字符数组保存字符串,不要使用系统函数。

16)使用string类声明字符串对象,重新实现第(6)。

17)声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()改变对象的姓名属性,实现并测试这个类。

18)声明包含5个元素的对象数组,每个元素都是Employee类型对象。

⏹评讲部分

4)编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

#include

usingnamespacestd;

voidmove(intmatrix[3][3])

{

inti,j,k;

for(i=0;i<3;i++)

for(j=0;j

{

k=matrix[i][j];

matrix[i][j]=matrix[j][i];

matrix[j][i]=k;

}

}

intmain()

{

inti,j;

intdata[3][3];

cout<<"输入矩阵的元素"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

cout<<"第"<

";

cin>>data[i][j];

}

cout<<"输入的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

move(data);

cout<<"转置后的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

5)使用动态内存分配生成动态数组来重新完成第(4)题,使用指针实现函数功能(结果与4题同)

#include

usingnamespacestd;

voidmove(int*matrix)

{

inti,j,k;

for(i=0;i<3;i++)

for(j=0;j

{

k=*(matrix+i*3+j);

*(matrix+i*3+j)=*(matrix+j*3+i);

*(matrix+j*3+i)=k;

}

}

intmain()

{

inti,j;

int*p=newint[3*3];

cout<<"输入矩阵的元素"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

cout<<"第"<

";

cin>>p[i*3+j];

}

cout<<"输入的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

move(p);

cout<<"转置后的矩阵的为:

"<

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout<

cout<

}

}

 

6)编程实现两字符串的连接。

要求使用字符数组保存字符串,不要使用系统函数。

#include

usingnamespacestd;

intmain()

{

inti=0,j=0;

chars1[200],s2[100];

cout<<"请输入第一个字符串:

";

cin>>s1;

cout<<"请输入第二个字符串:

";

cin>>s2;

while(s1[i])

i++;

while(s2[j])

s1[i++]=s2[j++];

s1[i]='\0';//注释该句会有什么结果

cout<<"连接后的字符串为:

"<

}

8)使用string类声明字符串对象,重新实现第(6)(结果同6)。

#include

#include

usingnamespacestd;

intmain()

{

strings1;

strings2;

cout<<"请输入第一个字符串:

";

cin>>s1;

cout<<"请输入第二个字符串:

";

cin>>s2;

s1+=s2;

cout<<"连接后的字符串为:

"<

}

8)声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()改变对象的姓名属性,实现并测试这个类。

//employee.h

#include

#include

usingnamespacestd;

classEmployee

{

private:

charname[30];

charstreet[30];

charcity[18];

charzip[7];

public:

Employee(char*n,char*str,char*ct,char*z);

voidchange_name(char*n);

voiddisplay();

};

Employee:

:

Employee(char*n,char*str,char*ct,char*z)

{

strcpy(name,n);

strcpy(street,str);

strcpy(city,ct);

strcpy(zip,z);

}

voidEmployee:

:

change_name(char*n)

{

strcpy(name,n);

}

voidEmployee:

:

display()

{

cout<

cout<

}

//lab6_5.cpp

#include"employee.h"

intmain()

{

Employeee1("张三","平安大街号","北京","100000");

e1.display();

cout<

e1.change_name("李四");

e1.display();

cout<

}

 

9)声明包含5个元素的对象数组,每个元素都是Employee类型对象。

//lab6_6.cpp

#include"employee.h"

intmain()

{

Employeeemp[5]=

{Employee("张三","平安大街号","北京","100000"),

Employee("李四","王府井大街号","北京","100000"),

Employee("赵刚","中山路号","重庆","400000"),

Employee("陈芳","南京路号","上海","200000"),

Employee("周欣","人民东路号","重庆","400000")};

for(inti=0;i<5;i++)

emp[i].display();

}

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

当前位置:首页 > 高等教育 > 工学

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

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