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

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

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

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

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

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

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

实验二函数的应用(2学时)
一、实验目的:
1.掌握函数的定义和调用方法;
2.练习重载函数、内联函数的定义和使用以及引用的使用方法;
3.学习VC++的debug调试功能:使用step into 追踪到函数内部。

二、实验内容:
1.编写重载函数Max1,分别求出两个整数,两个双精度数,三个整数,三个双精度数的最大值。

2.使用重载函数模板重新实现上面的函数Max1。

要求:(1)练习重载函数的使用;(2) 练习函数模板的使用。

实验三类与对象(2学时)
一、实验目的:
1.掌握类的定义和对象的声明;
2.复习具有不同访问属性的成员的访问方式;
3.观察构造函数和析构函数的执行过程;
4.学习类的聚集使用方法;
5.使用VC++的debug调试功能观察程序流程:跟踪观察类的构造函数、析构函数和成员函数的执行顺序。

二、实验内容:(1-4题可任选一)
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.编写程序,实现并测试客户机(Client)类。

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

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

2、在实验4编写的人员类中设计适当的方法来实现类中数据的共享性,并采用多文件结构实现程序。

3.(选做)定义类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。

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

实验五继承和派生(2学时)
一、实验目的:
1.学习定义和使用类的继承关系、定义派生类;
2.熟悉不同继承方式下对基类成员的访问控制。

二、实验内容:
1.设计并定义一个交通工具类,并通过该类派生出新的类,编写程序定义这些类并测试它;
2.(选做)声明一个基类Shape,在此基础上派生Rectangle和Circle,二者都有GetArea()函数计算对象的面积,编写程序测试。

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

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

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

并设计相应的成员函数。

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

并设计相应的成员函数。

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

实验六小型学生管理系统的设计与实现1(2学时)
一、实验目的:
利用所学知识设计并编写比较实用的综合性程序。

二、实验内容:
设计学生类、课程类、成绩类及相应得成员函数。

要求能实现学生的信息、课程信息和成绩信息的增加、修改、删除与查询。

实验七多态性(2学时)
一、实验目的:
1.掌握运算符重载的方法;
2.学习使用虚函数实现动态多态性。

二、实验内容:
1.定义Point类,有坐标X和Y两个成员变量,对Point类重载++和――运算符,实现对坐标值的改变。

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

要求:1.掌握运算符重载的使用方法; 2.学习使用虚函数实现动态联编。

实验八流类库与输入/输出(2学时)
一、实验目的:
1.流类库中常用的类及其成员函数的用法;
2.标准输入输出及格式控制;
3.对文件的应用方法(二进制、文本)。

二、实验内容:
1.编写程序,以二进制方式打开指定的一个英文文本文件,统计各个字符出现的频率并在每一行前加行号。

要求:(1).熟悉流类库中常用的类及其成员函数的用法;(2).学习标准输入
输出及格式控制;(3).学习对文件的应用方法。

实验九小型学生管理系统的设计与实现2(2学时)
一、实验目的:
利用所学知识设计并编写比较实用的综合性程序。

二、实验内容:
在实验九(一)的基础上,利用流类库机制实现文件存取。

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

相关主题