当前位置:文档之家› 《c++语言程序设计》实验讲义

《c++语言程序设计》实验讲义

《C++程序设计》实验讲义黑龙江大学软件学院《C++程序设计》实验讲义根据《C++程序设计》实验大纲编写,共有十三实验,其中前九个实验为必做实验,后四个为选作实验,总计24学时。

实验一VC++6.0开发环境应用入门(2学时)一、实验目的:1.了解Visual C++6.0的特点;2.熟悉Visual C++6.0的开发环境;3.学习用Visual C++6.0编写标准C++控制台程序;二、实验内容:1.使用VC++建立一个非图形化的标准C++程序,编译、运行教材中例2-1程序。

2.使用VC++建立一个非图形化的标准C++程序,编译、运行教材中例2-6程序。

实验二C++简单程序设计(2学时)一、实验目的:1.学会编写简单的C++程序;2.复习数据类型、变量、常量、运算符、表达式等的应用;3.复习结构化程序设计基本控制结构的运用、自定义数据类型的应用;简单的输入输出;4.观察头文件的作用;5.学习VC++的debug调试功能:单步执行、设置断点、观察变量值。

二、实验内容:1.编程计算图形的面积。

程序可以计算圆形、长方形、正方形的面积、运行时先提示用户选择图形类型,然后,对圆形要求用户输入半径、对长方形要求用户输入长和宽的值,对正方形要求用户输入边长,计算出面积后将其显示出来。

要求使用debug调试功能观察程序运行中变量值的变化情况。

2.定义一个表示时间的结构体,可以精确的表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

实验三函数的应用(2学时)一、实验目的:1.掌握函数的定义和调用方法。

2.练习重载函数、内联函数的定义和使用以及引用的使用方法;3.学习VC++的debug调试功能:使用step into 追踪到函数内部。

二、实验内容:1.编写内联函数实现求n的阶乘,其中n由用户输入。

2.编写重载函数Max1,分别求出两个整数,两个双精度数,三个整数,三个双精度数的最大值。

3.编写函数,交换两个整数的值,要求参数使用引用。

注:对这几个题目,学会用step into 追踪到函数内部。

实验四类与对象(4学时)一、实验目的:1.掌握类的定义和对象的声明;2.复习具有不同访问属性的成员的访问方式;3.观察构造函数和析构函数的执行过程;4.学习类的聚集使用方法;5.使用VC++的debug调试功能观察程序流程:跟踪观察类的构造函数、析构函数和成员函数的执行顺序;二、实验内容:1.声明一个Dog类,包含age、weight等属性,以及对这些属性操作的方法。

实现并测试这个类。

2.设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两个点的坐标,有成员函数能计算矩形的面积。

3.定义一个CPU类,包含等级、频率,电压等属性,并编写构造函数、析构函数,以及成员函数run、stop模拟CPU的状态。

其中,等级为整型,频率为单位是兆赫兹的整数,电压为浮点型。

要求自己设计各个属性的标识。

4.定义一个简单的Computer类,包含数据成员cpu、ram、cdrom等等,有两个成员函数run、stop。

其中cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM 类的一个对象,定义并实现这个类。

5.设计一个用于人事管理的People类。

考虑到通用性,可以只抽象出所有人员都具有的属性:number(编号),sex(性别) ,birthday(出生日期),id(身份证号)等等。

其中“出生日期”定义为一个“日期”类内嵌子对象。

用成员函数实现对人员函数的录入和显示。

要求包括:编写构造函数和析构函数、拷贝构造函数、内联成员函数,类的组合。

实验五C++程序的结构(2学时)一、实验目的:1.观察程序运行中变量的作用域、生存性和可见性;2.学习类的静态成员和友元函数的使用;3.学习多文件结构在C++程序中的使用;二、实验内容:1.编译、运行教材例5-2,观察变量的生存期和可见性。

2.编译、运行教材例5-3,观察具有静态、动态生存期对象的特点。

3.编写程序,实现并测试客户机(Client)类。

定义字符型静态数据成员ServerName[10],保存其服务器名称;整型静态数据成员ClientNum,记录定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。

在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量的取值的变化情况。

4.定义类X、Y、Z,函数h(X *),满足:类X有私有成员i,Y的成员函数g(X *)是X的友元函数,实现对X的成员i加1,类Z是类X的友元类,其成员函数f(X *)实现对X的成员i加5,函数h(X *)是X的友元函数,实现对X的成员i加10。

在一个文件中声明类,在一个文件中实现类,在另一个文件中测试类。

实验六数组、指针与字符串(4学时)一、实验目的:1.学习使用数组、字符串数据的组织和处理;2.学习标准C++库的使用;3.掌握指针的使用、通过debug观察指针的内容及其所指的对象的内容;4.练习通过动态内存分配实现动态数组,体会指针在其中的作用;5.分别使用字符数组和标准C++库练习处理字符串的方法;二、实验内容:1.编写实现一个3×3矩阵转置的函数,在main()函数中输入数据。

2.编写实现一个矩阵转置的函数,矩阵的行数、列数在程序中由用户输入。

3.编程实现两个m行n列矩阵的加法,其中m和n由用户输入。

4.修改实验四第5题的程序,要求类中加入一个成员age(年龄),在程序中使用对象数组求出若干人员的最高年龄和平均年龄,并将具有最高年龄的人员信息输出。

实验七继承和派生(4学时)一、实验目的:1.学习定义和使用类的继承关系、定义派生类;2.熟悉不同继承方式下对基类成员的访问控制;二、实验内容:1.声明一个基类Shape,在此基础上派生Rectangle和Circle,二者都有GetArea()函数计算对象的面积,编写程序测试。

2.声明一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。

3.完善实验五第4题的程序,具体要求如下:任务1:从people(人员)类派生出student(学生)类,添加属性:学校、学院、专业、班号、入学成绩,设计相应的成员函数(构造函数,拷贝构造函数,录入函数,显示函数)。

任务2:从people类派生出teacher(教师)类,添加属性:职务,部门,职称。

并设计相应的成员函数。

任务3:从student类派生出graduate(研究生)类,添加属性:导师,研究方向。

并设计相应的成员函数。

任务4:编写程序来测试这个类。

实验八多态性(2学时)一、实验目的:1.掌握运算符重载的方法;2.学习使用虚函数实现动态多态性;二、实验内容:1.定义Point类,有坐标X和Y两个成员变量,对Point类重载++和――运算符,实现对坐标值的改变。

2.定义一个车(Vehicle)类,有run,stop等成员函数,由此派生出自行车(bicycle)类、汽车(motocar)类,由bicycle类和motocar类派生出摩托车类,它们都run,stop 等成员函数,编写相应的虚函数并测试。

实验九流类库与输入/输出(2学时)一、实验目的:1.流类库中常用的类及其成员函数的用法。

2.标准输入输出及格式控制。

3.对文件的应用方法(二进制、文本)。

二、实验内容:1.编译、运行教材习题11-7,观察运行结果。

2.编写程序提示用户输入一个十进制整数,分别用十进制、八进制和十六进制形式输出。

3.编写程序实现如下功能:打开制定的文本文件,在每一行前加行号。

实验十虚基类的使用(2学时)一、实验目的:1.学习虚基类的设计和使用方法。

二、实验内容:从实验七第3题中的graduate类和teacher类派生出TA(助教)类,注意虚基类的使用。

并设计相应的成员函数,编写程序实现并测试。

实验十一异常处理(2学时)一、实验目的:1.正确理解C++的异常处理机制;2.学习异常处理的定义和执行过程;二、实验内容:定义一个异常类CException,有成员函数Reason(),用来显示异常的类型。

在子函数中触发异常,在主程序中处理异常,观察程序的执行过程。

实验十二Windows程序设计初步(2学时)一、实验目的:简单了解Windows程序设计的方法二、实验内容:练习使用VC++的AppWizard(应用程序向导)生成一个最简单的Windows应用程序。

实验十三学生成绩管理模拟(4学时)一、实验目的:利用所学知识设计并编写比较实用的综合性程序。

二、实验内容:设计Sudent(学生)类、Teacher(教师)类、Course(课程)类和Score(成绩)类,并模拟一个学生成绩管理系统。

选用教材及参考书实验教材:《C++语言程序设计实验讲义》参考书:《C++语言程序设计习题与实验指导》郑莉,董渊清华大学出版社。

相关主题