实验六数组指针与字符串评讲电子教案.docx
- 文档编号:8652975
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:134.46KB
实验六数组指针与字符串评讲电子教案.docx
《实验六数组指针与字符串评讲电子教案.docx》由会员分享,可在线阅读,更多相关《实验六数组指针与字符串评讲电子教案.docx(15页珍藏版)》请在冰豆网上搜索。
实验六数组指针与字符串评讲电子教案
实验六--数组、指针与字符串-评讲
姓名:
学号:
班级:
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(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数组 指针 字符串 电子 教案