实验六 数组、指针与字符串 评讲
数组、指针与字符串
姓名: 学号: 班级: 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 <iostream>
using namespace std;
void move (int matrix[3][3])
{
int i, j, k;
for(i=0; i<3; i++)
for (j=0; j<i; j++)
{
k = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = k;
}
}
int main()
{
int i, j;
int data[3][3];
cout << "输入矩阵的元素" << endl;
for(i=0; i<3; i++)
for (j=0; j<3; j++)
{
cout << "第" << i+1 << "行第" << j+1<<"个元素为:";
cin >> data[i][j];
}
cout << "输入的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << data[i][j] << " ";
cout << endl;
}
move(data);
cout << "转置后的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << data[i][j] << " ";
cout << endl;
}
}
数组、指针与字符串
5)使用动态内存分配生成动态数组来重新完成第(4)题,使用指针实现函数功能(结果与4题同)
#include <iostream>
using namespace std;
void move (int *matrix)
{
int i, j, k;
for(i=0; i<3; i++)
for (j=0; j<i; j++)
{
k = *(matrix + i*3 + j);
*(matrix + i*3 + j) = *(matrix + j*3 + i);
*(matrix + j*3 + i) = k;
}
}
int main()
{
int i, j;
int *p = new int[3*3];
cout << "输入矩阵的元素" << endl;
for(i=0; i<3; i++)
for (j=0; j<3; j++)
{
cout << "第" << i+1 << "行第" << j+1 <<"个元素为:"; cin >> p[i*3 + j];
}
cout << "输入的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << p[i*3 + j] << " ";
cout << endl;
}
move(p);
cout << "转置后的矩阵的为:" << endl;
for(i=0; i<3; i++)
{
for (j=0; j<3; j++)
cout << p[i*3 + j] << " ";
cout << endl;
}
}
6)编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。
数组、指针与字符串
#include <iostream>
using namespace std;
int main()
{
int i=0,j=0;
char s1[200],s2[100];
cout << "请输入第一个字符串:";
cin >> s1;
cout << "请输入第二个字符串:";
cin >>s2;
while(s1[i])
i++;
while(s2[j])
s1[i++] = s2[j++];
s1[i] = '\0'; //注释该句会有什么结果
cout << "连接后的字符串为:" << s1 << endl;
}
7) 使用string类声明字符串对象,重新实现第(6)(结果同6)。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1;
string s2;
cout << "请输入第一个字符串:";
cin >> s1;
cout << "请输入第二个字符串:";
cin >>s2;
s1 += s2;
cout << "连接后的字符串为:" << s1 << endl;
}
8)声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()改变对象的姓名属性,实现并测试这个类。
//employee.h
#include
<iostream>
数组、指针与字符串
#include <string>
using namespace std;
class Employee
{
private:
char name[30];
char street[30];
char city[18];
char zip[7];
public:
Employee(char *n, char *str, char *ct, char *z);
void change_name(char *n);
void display();
};
Employee::Employee (char *n,char *str,char *ct, char *z)
{
strcpy(name, n);
strcpy(street, str);
strcpy(city, ct);
strcpy(zip, z);
}
void Employee::change_name (char *n)
{
strcpy(name, n);
}
void Employee::display ()
{
cout << name << " " << street << " ";
cout << city << " "<< zip << endl;
}
// lab6_5.cpp
#include "employee.h"
int main()
{
Employee e1("张三"," …… 此处隐藏:5052字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




