目录 实验一熟悉 Visual c++开发环境及上机过程 实验二类的定义和对象的使用 实验三多文件结构及静态成员和对象数组的使用. 1679 实验四类的继承和派生. 实验五多继承 11 实验六虚函数的使用 实验七抽象类的使用.. 实验八运算符重载和友元 18 实验九STL的使用 实验十利用 AppWizard向导生成 Windows应用程序 21
目 录 实验一 熟悉 Visual C++开发环境及上机过程 ...........................1 实验二 类的定义和对象的使用........................................6 实验三 多文件结构及静态成员和对象数组的使用........................7 实验四 类的继承和派生..............................................9 实验五 多继承.....................................................11 实验六 虚函数的使用...............................................13 实验七 抽象类的使用...............................................16 实验八 运算符重载和友元...........................................18 实验九 STL 的使用 .................................................19 实验十 利用 AppWizard 向导生成 Windows 应用程序.....................21
C++实验上机指导 实验一熟悉 Visua1C++开发环境及上机过程 实验目的 1、了解和使用VC集成开发环境; 2、熟悉VC环境的基本命令和功能键; 3、熟悉常用的功能菜单命令 4、学习使用VC++环境的帮助 5、学习完整的C艹+程序开发过程 6、理解简单的C++程序结构。 二、实验内容 使用 Visual c艹-6.0集成环境来编辑、编译并运行程序1 #include iostream> using namespace std class tAdd TAdd (int a, int b x=a; y=b cout<< constructor. <<end cout<<x<< ,<<y<endl TAdd cout<< destructor, <<endl cout<<x<< ,<<y<endl int addo freturn x+y: I private int maino TAdd p1 (3, 4) cout<< x+y="<<pl. add (<<endl TAdd p2(30,40) cout<< X+y="<<p2. add (<<endl return 三、实验步骤
C++实验上机指导 1 实验一 熟悉 Visual C++开发环境及上机过程 一、实验目的 1、 了解和使用 VC 集成开发环境; 2、 熟悉 VC 环境的基本命令和功能键; 3、 熟悉常用的功能菜单命令; 4、 学习使用 VC++环境的帮助; 5、 学习完整的 C++程序开发过程; 6、 理解简单的 C++程序结构。 二、实验内容 使用 Visual C++ 6.0 集成环境来编辑、编译并运行程序 1: #include using namespace std; class TAdd { public: TAdd(int a,int b) { x=a;y=b; cout<<"constructor."<<endl; cout<<x<<","<<y<<endl; } ~TAdd() { cout<<"destructor."<<endl; cout<<x<<","<<y<<endl; } int add(){return x+y;} private: int x,y; }; int main() { TAdd p1(3,4); cout<<"x+y="<<p1.add()<<endl; TAdd p2(30,40); cout<<"x+y="<<p2.add()<<endl; return 0; } 三、实验步骤
C++实验上机指导 启动 Visual c++6.0——选择菜单“开始/程序/ Microsoft visual studio 6.0/ Microsoft visual c++6.0”,启动后的用户界面如图1-1所示。 创天中文v+ 文件编辑查看插入工程编译工具E口帮助 I编译人调试入查找文件1入查我文件2]4 Ready 图1-1 Visual c++6.0用户界面 l、创建新工程 (1)单击菜单“文件/新建”,显示“新建:对话框,如图1-2所示。 (2)在此对话框的列表栏中,选择“Win32 Console application”(Win32控 制台应用程序”)。在“工程”栏中输入一个工程名,如实验一。在位置文本框 中选择工程所在的路径,如图中所示H:\C++实验\实验一。单击“确定”按钮。 文件工程|工作区|其它文档 ATL COM Appwizard 工程 c位置 Iss Extended Stored Proc Wizard HC+实验实验一 RISAPI Extension Wizard MFC Appwizard [dll) GB创建新工作区 CA添加至现有工作区 图win32 Static Library P平台 图1-2“新建”对话框 (3)在弹出的“Win32 Consol application- Step l of1”对话框中选择Ar 2
C++实验上机指导 2 启动 Visual C++ 6.0——选择菜单“开始/程序/Microsoft Visual Studio 6.0/Microsoft Visual C++ 6.0”,启动后的用户界面如图 1-1 所示。 图 1-1 Visual C++ 6.0 用户界面 1、创建新工程 (1)单击菜单“文件/新建”,显示“新建:对话框,如图 1-2 所示。 (2)在此对话框的列表栏中,选择“Win32 Console Application”(Win32 控 制台应用程序”)。在 “工程”栏中输入一个工程名,如实验一。在位置文本框 中选择工程所在的路径,如图中所示 H:\C++实验\实验一。单击“确定”按钮。 图 1-2 “新建”对话框 (3)在弹出的“Win32 Consol Application-Step 1 of 1” 对话框中选择 An
C++实验上机指导 empty project单选项。然后单击“ Finish”按钮,如图1-3所示。 win32 Console Applicati ep 1 ? What kind of Console Application do you want to create? c An empty project. CA C AHello, World! application C An application that supports mFc <B上 王完成取消 图1-3“Win32 Consol Application- Step l of1”对话框 (4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。 2、创建C艹+源程序文件 (1)编辑C艹+源程序:编辑C艹源程序时,选择“文件”菜单项,在弹出的子菜 单中选择新建(热键为Ctrl+N),出现如图1-4所示的窗口 文件|工程|工作区|其它文档 A添加工程: 实验一 ce File 文件 图1-4“新建”窗口 (2)选择“文件”选项卡,在此属性页中选择“C++ Source file”,如图1-4 所示,单击“确定”,出现如图1-5所示的编辑屏幕
C++实验上机指导 3 empty project 单选项。然后单击“Finish”按钮,如图 1-3 所示。 图 1-3 “Win32 Consol Application-Step 1 of 1” 对话框 (4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。 2、创建 C++源程序文件 (1)编辑 C++源程序:编辑 C++源程序时,选择“文件”菜单项,在弹出的子菜 单中选择新建(热键为 Ctrl+N),出现如图 1-4 所示的窗口。 图 1-4 “新建”窗口 (2) 选择“文件”选项卡,在此属性页中选择“C++ Source File”,如图 1-4 所示,单击“确定”,出现如图 1-5 所示的编辑屏幕
C++实验上机指导 实验二-创天中文v+ 文件幽辑查看折入工程译工具翻口助 幽还!回西 的→回|,g,国曾MEN 四联验一 classes LDN编译人调试入查文件1入查找文件2J 图 源程序编辑 (3)在“C艹源程序编辑”窗口下编辑C艹+源程序。在编辑窗口键入C艹源程序。 如图1-6所示,输入以下源程序: 实验一创天中文v++ 文件纵亞看入工程病译工具口助 出!西 x D编译人入查我文件1入查我支袢2]」 Ln 6, Col 1 REC CoL JOvA RE 图1-6编辑C++源程序 3.编译连接和运行源程序 (1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择 “编译egl-l.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译 过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。错误信息包括 错误所在大致位置和错误的性质。用户可根据这些错误信息进行修改。上述程序 的“编译”窗口,如图1-7所示
C++实验上机指导 4 图 1-5 “C++”源程序编辑 (3)在“C++源程序编辑”窗口下编辑 C++源程序。在编辑窗口键入 C++源程序。 如图 1-6 所示,输入以下源程序: 图 1-6 编辑 C++源程序 3.编译连接和运行源程序 (1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择 “编译 eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译 过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。错误信息包括 错误所在大致位置和错误的性质。用户可根据这些错误信息进行修改。上述程序 的“编译”窗口,如图 1-7 所示
C++实验上机指导 Configuration: eg1-1- win32 Debug A编译人调试入查执文件1入查文件24 Ln 6. Col 1 REC CoL OVR READ. 图1-7“编辑”窗口 (2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下 拉菜单中的“构件eg1-l.exe”选项。“编译”窗口出现如图1-8所示的信息说 明编译连接成功,并生成以源文件名为名字的可执行文件(egl-1.exe)。 DA编译人调试入查找文件1)查牧文件2 Ready Ln 5, Col 1 REC CoLJoVR READ 图1-8编译连接信息 (3)执行可执行文件的方法是选择“编译”菜单项中“执行eg1-1.exe”选项。 这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗 口中,如图1-9所示。 区"王淮亭\++教材 ADebugeg1:1ee" This is a C++ program Press any key to continu 图1-9运行C++程序结果 4.关闭工作区、打开工作区 单击菜单“文件/关闭工作区”,关闭工作区。 单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:\C++实验\ 实验一\实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立 的工程文件进行修改。 5.根据实验步骤1-4,建立、编译并运行实验程序1 四、实验要求 123 复习教材有关内容。 掌握VC控制台应用程序的开发、调试步骤。 完成实验报告
C++实验上机指导 5 图 1-7 “编辑”窗口 (2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下 拉菜单中的“构件 eg1-1.exe”选项。“编译”窗口出现如图 1-8 所示的信息说 明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。 图 1-8 编译连接信息 (3)执行可执行文件的方法是选择“编译”菜单项中“执行 eg1-1.exe”选项。 这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗 口中,如图 1-9 所示。 图 1-9 运行 C++程序结果 4.关闭工作区、打开工作区 单击菜单“文件/关闭工作区”,关闭工作区。 单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:\C++实验\ 实验一\实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立 的工程文件进行修改。 5.根据实验步骤 1-4,建立、编译并运行实验程序 1。 四、实验要求 1. 复习教材有关内容。 2. 掌握 VC 控制台应用程序的开发、调试步骤。 3. 完成实验报告
C++实验上机指导 实验二类的定义和对象的使用 实验目的 1、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装 性 2、掌握类对象的定义; 3、理解类的成员的访问控制的含义,公有、私有和保护成员的区别 4、掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正 确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数 二、实验内容 1、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员 函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。 要求: (1)使用成员函数实现输入、输出 (2)使用构造函数和析构函数实现对数据的输入、输出; (3)编写主函数,定义对象,完成相应功能。 2、定义日期类Date。要求 (1)可以设置日期; (2)日期加一天操作 (3)输出函数,输出格式为“XXX年XX月XX日” (4)编写主函数,定义对象,完成相应功能。 、实验要求 1、写出程序,并调试程序,要给出测试数据和实验结果。 2、整理上机步骤,总结经验和体会。 3、完成实验报告和上交程序
C++实验上机指导 6 实验二 类的定义和对象的使用 一、实验目的 1、 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装 性; 2、 掌握类对象的定义; 3、 理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4、 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正 确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。 二、实验内容 1、定义一个学生类,其中有 3 个数据成员有学号、姓名、年龄,以及若干成员 函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。 要求: (1)使用成员函数实现输入、输出; (2)使用构造函数和析构函数实现对数据的输入、输出; (3)编写主函数,定义对象,完成相应功能。 2、定义日期类 Date。要求: (1)可以设置日期; (2)日期加一天操作; (3)输出函数,输出格式为“XXXX 年 XX 月 XX 日”; (4)编写主函数,定义对象,完成相应功能。 三、实验要求 1、 写出程序,并调试程序,要给出测试数据和实验结果。 2、 整理上机步骤,总结经验和体会。 3、 完成实验报告和上交程序
C++实验上机指导 实验三多文件结构及静态成员和对象数组的使用 实验目的 1、掌握自定义头文件的方法 2、学会建立和调试多文件程序 3、了解静态成员的使用; 4、掌握对象数组的使用 二、实验内容 1、编写一个函数,求从n个不同的数中取r个数的所有选择的种数 要求 (1)将 main(函数放在一个.cpp文件中 (2)将fn(intn),Cnr(intn,intr)放在另一个.cpp文件中 (3)将函数原型说明放在一个头文件中 (4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序 正常运行。 2、上机调试例2-30,在 Employee类中增加一个静态数据成员来设置本公司 员工编号基数,新增加的员工编号将在创建对象的同时自动在基数上增加。另外, 将 Employee类的声明部分和实现部分分成两个文件来实现。 3、上机调试例3-14,假设有一个点类 point,具有两个实数坐标。希望主程 序使用这个类完成下述功能 (1)主程序为类 point申请10个连续存储空间。 (2)要求调用一个函数SetO从键盘输入10个对象的属性,并顺序存入申请 的内存中。 (3)要求调用一个函数 Display o显示10个对象的值。 (4)要求调用一个函数 Lenth(,计算将这些点连成一条折线时,这条折线的 长度。 (5)程序结束时,删除申请的内存 (6)演示析构对象(动态对象或堆对象)的执行顺序 设计这个类和各个函数并验证运算结果的正确性
C++实验上机指导 7 实验三 多文件结构及静态成员和对象数组的使用 一、实验目的 1、掌握自定义头文件的方法; 2、学会建立和调试多文件程序; 3、了解静态成员的使用; 4、掌握对象数组的使用。 二、实验内容 1、编写一个函数,求从 n 个不同的数中取 r 个数的所有选择的种数。 要求: (1)将 main()函数放在一个.cpp 文件中; (2)将 fn(int n) ,Cnr(int n, int r)放在另一个.cpp 文件中; (3)将函数原型说明放在一个头文件中; (4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序 正常运行。 2、上机调试例 2-30,在 Employee 类中增加一个静态数据成员来设置本公司 员工编号基数,新增加的员工编号将在创建对象的同时自动在基数上增加。另外, 将 Employee 类的声明部分和实现部分分成两个文件来实现。 3、上机调试例 3-14,假设有一个点类 point,具有两个实数坐标。希望主程 序使用这个类完成下述功能: (l)主程序为类 point 申请 10 个连续存储空间。 (2)要求调用一个函数 Set()从键盘输入 10 个对象的属性,并顺序存入申请 的内存中。 (3)要求调用一个函数 Display()显示 10 个对象的值。 (4)要求调用一个函数 Lenth(),计算将这些点连成一条折线时,这条折线的 长度。 (5)程序结束时,删除申请的内存。 (6)演示析构对象(动态对象或堆对象)的执行顺序。 设计这个类和各个函数并验证运算结果的正确性
C++实验上机指导 三、实验要求 1、写出程序,并调试程序,要给出测试数据和实验结果 2、整理上机步骤,总结经验和体会。 完成实验报告和上交程序
C++实验上机指导 8 三、实验要求 1、写出程序,并调试程序,要给出测试数据和实验结果。 2、整理上机步骤,总结经验和体会。 3、完成实验报告和上交程序
C++实验上机指导 实验四类的继承和派生 实验目的 1、理解继承的含义,掌握派生类的定义方法和实现; 2、理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确 地访问继承层次中的各种类成员: 3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以 便派生类成员可以访问基类的部分非公开的成员 4、条件编译的运用。多文件结构的进一步使用 二、实验内容 1、编写一个程序计算出球、圆柱和圆锥的表面积和体积 要求 (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员; (2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函 数和输出函数; (3)编写主函数,求球、圆柱、圆锥的表面积和体积。 2、编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓 名、班级和成绩,教师数据有编号、姓名、职称和部门。 要求: (1)将编号、姓名输入和显示设计成一个类 person; (2)设计类 person的派生类:学生类 student和教师类 teacher (3)各个类的声明放在相应的头文件中(*h),类的实现放在相应的实现 文件中(米cp): person.h, person.cp, student.h, student.cpp, teacher.h teacher. cpp; (4)编写一个主文件(SY4_2.cpp),在该文件中分别定义 student、 teacher 的对象,完成相应功能。 三、实验要求 1、写出程序,并调试程序,要给出测试数据和实验结果 2、整理上机步骤,总结经验和体会
C++实验上机指导 9 实验四 类的继承和派生 一、实验目的 1、 理解继承的含义,掌握派生类的定义方法和实现; 2、 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确 地访问继承层次中的各种类成员; 3、 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以 便派生类成员可以访问基类的部分非公开的成员; 4、 条件编译的运用。多文件结构的进一步使用。 二、实验内容 1、编写一个程序计算出球、圆柱和圆锥的表面积和体积。 要求: (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员; (2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函 数和输出函数; (3)编写主函数,求球、圆柱、圆锥的表面积和体积。 2、编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓 名、班级和成绩,教师数据有编号、姓名、职称和部门。 要求: (1)将编号、姓名输入和显示设计成一个类 person; (2)设计类 person 的派生类:学生类 student 和教师类 teacher; (3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现 文件中(*.cpp):person.h,person.cpp,student.h,student.cpp,teacher.h, teacher.cpp; (4)编写一个主文件(SY4_2.cpp),在该文件中分别定义 student、teacher 的对象,完成相应功能。 三、实验要求 1、 写出程序,并调试程序,要给出测试数据和实验结果。 2、 整理上机步骤,总结经验和体会