好文档 - 专业文书写作范文服务资料分享网站

C++上机实验报告实验四

天下 分享 时间: 加入收藏 我要投稿 点赞

实验四数组、指针与字符串

1. 实验目的 1. 学习使用数组

2. 学习字符串数据的组织和处理 3?学习标准C++库的使用 4. 掌握指针的使用方法

5. 练习通过 Debug 观察指针的内容及其所指的对象的内容 6. 联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7?分别使用字符数组和标准 C++库练习处理字符串的方法 2. 实验要求

1?编写并测试3*3矩阵转置函数,使用数组保存

3*3矩阵。

2?使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3?编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4?使用string类定义字符串对象,重新实现上一小题。 5.

Display。显示姓名、街道地址、城市和邮编等属性, 对象的姓名属性。实现并测试这个类。 6.

定义包含5个元素的对象数组,每个元素都是Employee类型的对象。

char

定义一个Employeechange_name()改变

类,其中包括姓名、街道地址、城市和邮编等属性, 以及change_name() 和display。等函数。

7. (选做)修改实验 4中的选做实验中的 people (人员)类。具有的属性如下:姓名

name[11]、编号 char number[7]、性别 char sex[3]、生日 birthday、身份证号 char id[16]。其 中“出生日期” 定义为一个 “日期”类内嵌对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义 people 类的对象数组,录入数据并显示。 3. 实验内容及实验步骤 1.

编写矩阵转置函数,输入参数为 3*3整形数组,使用循环语

句实现矩阵元素的行列对调, 注意在循环语句中究竟需要对哪些元素进行操作, 编写 main ()函数实现输入、 输出。 程序 名:Iab6_1.cpp。 2.

数,参数为整型指针,使用指针对数组元素进行操作,在 名:Iab6_2.cpp。

3. 编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符 串,实现两个字符串的连接,最后用 输入,注意,字符串的结束标志是

cout语句显示输出。程序名:lab6_3.cpp。用cin实现 ASCII码0,使用循环语句进行字符串间的字符拷贝。

lab6_4.cpp。

改写矩阵转置函main ()函数中 使

用 new 操作符分配内存生成动态数组。通过 Debug 观察指针的内容及其所指的对象中的 内容。程序

4. 使用 string 类定义字符串对象,编程实现两字符串的连接。在 string 类中已重载了运算符 “+=”实现字符串的连接,可以使用这个功能。程序名:

5. 在employee.h文件中定义 Employee类。Employee类具有姓名、街道地址、城市和邮编等 私有数据成员,在成员函数中,构造函数用来初始化所有数据成员 ;display()中使用cout显示 姓名、街道地址、城市和邮编等属性,change_name()改变类中表示姓名属性的数据成员。 在 主程序中定义这个类的对象并对其进行操作。程序名: 程序名: lab6_6.cpp。

lab6_5.cpp。

6. 使用上一小题中定义的 Employee 类定义对象数组 emp[5] ,使用循环语句把数据显示出来。

4. 思考题

1.如何存储和处理字符串?

(1)可以利用字符数组存储和处理字符串; ( 2)利用系统提供的 string 类存储和处理字符串。 2?头文件和头文件有何区别?

包含头文件后,可以使用系统的字符串处理函数,如 后,则可以定义string类,并且使用系统提供的 类型的对象进行处理。

3. 有几种方法来表示和处理数组元素? ( 1)数组下标方法,如 a[i] (2)指针的方法,如 int* p=&a[0] 5. 源程序 1.lab6_1.cpp #include using namespace std; int a[3][3]; void showTrans()

{

strcat (连接).strcpy (复 string类操作符对string

制).strcmp (比较).strlen (求长度).strlwr (转换为小写).strupr (转换为大写)等等; 而包含头文件

int i,j;

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

{

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

{

cout<

}

cout<

}

}

void input()

{

int i,j; cout<<\for(i=0;i<3;i++)

{

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

{

cin>>a[i][j];

}

}

}

int main()

{

input();

showTrans(); return 0;

}

2.lab6_2.cpp

#include using namespace std;

int* p[9]; void showTrans()

{

int i,j;

cout<<\

{

for(j=i;j<9;j=j+3)

{

cout<<*p[j]; cout<<\

}

cout<

}

}

void input()

{

int i,n;

cout<<\

{

cin>>n; p[i]=new int(n);

}

}

int main()

{

input();

showTrans(); int i;

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

{

delete p[i];

}

return 0;

}

3.lab6_3.cpp

#include

// 不使用系统自带函数 strcpy using namespace std; char a[20]={\int main()

{

int i,j,k; cout<<\cout<<\int m=0,n=0;

// 将数组 a 中的字符串拷贝到数组 c 中 for(k=0;k<45,a[m]!='\\0';k++,m++) {

c[k]=a[m];

}

//将数组b中的字符串接着a,拷贝到数组c中 for(;k<45,b[n]!='\\0';k++,n++)

{

c[k]=b[n]; cout<

}

}

4. lab6_4.cpp

#include #include using namespace std; char a[20]={\int main()

{

cout<<\cout<<\string s1=a; string s2=b; string s3=s1+s2; cout<

}

5. Employee.h

#ifndef Employee_H_INCLUDED #define Employee_H_INCLUDED class Employee

{

private:

char name[15]; char address[25]; char city[10]; int postcode; public:

Employee();

Employee(char n,char a,char c,int p); ~Employee(); void change_name(); void change_address(); void change_city(); void change_postcode(); void display(); };

#endif // Employee_H_INCLUDED Employee.cpp #include

#include\Employee::Employee(){}

Employee::Employee(char n,char a,char c,int p) {

name[0]=n; name[1]='\\0'; address[0]=a; address[1]='\\0'; city[0]=c;

city[1]='\\0'; postcode=p;

}

Employee::~Employee(){}

void Employee::change_name()

{

cout<<\

}

void Employee::change_address()

{

cout<<\

}

void Employee::change_city()

{

cout<<\

}

void Employee::change_postcode()

{

cout<<\

}

void Employee::display()

{

cout<<\cout<<\cout<<\

}

int main()

Employee person(1,1,1,1); person.display(); person.change_name(); person.change_address(); person.change_city(); person.change_postcode(); person.display(); return 0;

{

}

6. Employee.h #ifndef Employee_H_INCLUDED #define Employee_H_INCLUDED class Employee

{

private: char name[15]; char address[25]; char city[10]; int postcode;

Employee();

Employee(char n,char a,char c,int p); ~Employee(); void change_name(); void change_address(); void change_city(); void change_postcode(); void display();

public:

};

#endif // Employee_H_INCLUDED Employee.cpp #include

#include\Employee::Employee(){}

Employee::Employee(char n,char a,char c,int p)

{

name[0]=n; name[1]='\\0'; address[0]=a; address[1]='\\0'; city[0]=c;

city[1]='\\0'; postcode=p;

}

Employee::~Employee(){}

void Employee::change_name()

{

cout<<\

}

void Employee::change_address()

{

cout<<\

}

void Employee::change_city()

{

C++上机实验报告实验四

实验四数组、指针与字符串1.实验目的1.学习使用数组2.学习字符串数据的组织和处理3?学习标准C++库的使用4.掌握指针的使用方法5.练习通过Debug观察指针的内容及其所指的对象的内容6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用7?分别使用字符数组和标准C++库练习处理字符串的方法2.实验要求
推荐度:
点击下载文档文档为doc格式
6wz4r2d4ll423gj8gje700kc52051d00ki8
领取福利

微信扫码领取福利

微信扫码分享