面向对象程序设计实验指导书
可在其中输出提示信息。在主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序.以及成员函数的调用.程序名:lab4_2.cpp。
5.使用debug调试功能观察lab4_2.cpp程序的运行流程.跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。
14
面向对象程序设计实验指导书
实验五 C++程序的结构
(2学时)
一、实验目的
1.观察程序运行中变量的作用域、生存期。 2.学习类的静态成员的使用。
3.学习多文件结构在C++程序中的使用。
二、实验任务
1.运行下面的程序,观察变量x、y的值。 #lab5-1.cpp
#include
cout<<\...\ cout<<\ cout<<\
cout<<\ int x=10,y=20;
cout<<\ cout<<\
cout<<\ fnl();
cout<<\ cout<<\ cout<<\ return 0; }
void fnl() {
int y=200;
cout <<\ cout<<\}
2.实现客户机(CLIENT)类。定义字符型静态数据成员ServerName。保存其服务器名称;整型静态数据成员(ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()
15
面向对象程序设计实验指导书
改变服务器名称。在头文件client.h中定义类,在文件(client.cpp内实现.在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。
三、实验步骤
1.运行lab5-1程序,观察程序输出。 全局变量的作用域为文件作用域,在整个程序运行期间有效,但如果在局部模块中定义同名的变量,则在局部中,可见的是局部变量,此时,全局变量不可风;而局部变量的生存存期只限于相应的程序模块中,离开相应的程序模块,局部变量x、y就不再存在,此时同名的局变量重新可见。
2.新建一个空的项门lab5-2,添加头文件cliellf.h,在其中定义类CLIENT,注意使用编译预处理命令;再添加源程序文件client.cpp,在其中实现(CLIENT类,注意静态成员变量的使用方法;再添加文件lab5-2.cpp,在其中定义main()函数,测试CLIENT类,观察相应的成变量取值的变化情况。
16
面向对象程序设计实验指导书
实验六 数组、指针与字符串
(4学时)
一、实验目的
1.学习使用数组。
2.学习字符串数据的组织和处理。 3.学习标准C++库的使用。 4.掌握指针的使用方法。
5.练习通过debug观察指针的内容及其所指的对象的内容。
6.练习通过动态内存分配实现动态数组,并体会指针在其中的作用。 7.分别使用字符数组和标准C++库练习处理字符串的方法。
二、实验任务
1.编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。
2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。
5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change—name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change—name()改变对象的姓名属性。实现并测试这个类。
6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。
7.(选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名 char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。
三、实验步骤
1.编写矩阵转置函数,输人参数为3×3整型数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6—1.cpp。
2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过debug观察指针的内容及其所指的对象中的内容。程序名:lab6—2.cpp。
3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6—3.cpp。用cin
17
面向对象程序设计实验指导书
实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+:”实现字符串的连接,可以使用这个功能。程序名:lab6—4.cpp。
5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,都可以用字符型数组来表示,在成员函数中,构造函数用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数strcpy(char*,char*name);display()中使用cout显示姓名、街道地址、城市和邮编等属性,change—name()改变类中表示姓名属性的字符数组类型的数据成员。在主程序中定义这个类的对象并对其进行操作。程序名:
lab6—5.cpp。
6.使用上一小题中定义的Employee类定义对象数组emp[5],使用循环语句把数据 显示出来。程序名:1ab6—6.cpp。
18