1、面向对象程序设计实验指导书面向对象程序设计实验指导书实验1 熟悉VC开发环境,函数重载实验目的:熟悉VC开发环境,掌握函数重载实验内容:1建立如图界面2编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现,数据定义如下 int a = 1, 3, 2, 5, 6, 9, 0, 6; / 定义a float b = 1.6, 3.3, 2.8, 5.6, 6.8, 9.6, 0.6, 6.8; / 定义b double c = 1.2, 3.1, 2.6, 5.8, 6.8, 9.8, 0.8, 6.2;/ 定义c3.点击运行按钮排序,
2、并用编辑框输出结果参考程序void CFirstvcDlg:OnRun() / TODO: Add your control notification handler code here CString message; CEdit * pEdit; pEdit=(CEdit*)this-GetDlgItem(IDC_MES); /找到编辑框空间 pEdit-SetSel(0,-1); /先清屏 pEdit-Clear(); int i=0; for(i=0;iSetSel(-1,-1); /自动卷屏到底端 pEdit-ReplaceSel(message); 实验2 类和对象实验目的:熟悉C
3、+类的定义和对象生成,掌握函数重载,掌握类、类的成员函数、类的成员函数的定义方式。理解类成员的访问控制方式。掌握对象的定义和操作对象的方法。理解构造函数和析构函数的定义与执行过程。掌握重载构造函数的方法。实验内容:编写设计一个People(人)类。该类的数据成员有姓名(name)、年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、显示(Show)和显示人数(ShowNum)。其中构造函数由已知参数姓名(nm)、年龄(a)、身高(h)和体重(w)构造对象,进食函
4、数使体重加1,运动函数使身高加1,显示函数用于显示人的姓名、年龄、身高、体重,显示人数函数为静态成员函数,用于显示人数。假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个对象,通过对象直接访问类的所有非静态成员函数,通过类访问静态成员函数。在如下界面中显示信息参考程序:#include / 编译预处理命令using namespace std; / 使用命名空间std class Peopleprivate:/ 数据成员 char name9; / 姓名 int age; / 年龄 int
5、height; / 身高 double weight; / 体重 static int num; / 人数public:/ 公有函数 People(char nm = 路人甲, int a = 16, int h = 168, int w = 118): age(a), height(h), weight(w) strcpy(name, nm); num+; void Eatting() weight+; / 进食 void Sporting() height+; / 运动 void Show() const / 显示信息 cout 个人信息: endl; cout 姓名: name endl
6、; cout 年龄: age 岁 endl; cout 身高: height 厘米 endl; cout 体重: weight 市斤 endl endl; static void ShowNum() / 显示人数 cout 人数: num endl; ;int People:num = 0; / 初始化静态数据成员num int main() / 主函数main() People p1; / 定义对象 p1.Show(); / 显示信息 People p2(李敏, 18, 170, 108); / 定义对象 p2.Eatting(); / 进食 p2.Sporting(); / 运动 p2.S
7、how(); / 显示信息 People:ShowNum(); / 显示人数 system(PAUSE); / 调用库函数system( ),输出提示信息 return 0; / 返回值, 返回操作系统实验3 模板实验目的:掌握类模板与函数模板掌握模板类和模板函数的定义。实验内容:编写一个使用数组类模板Array对数组求最大值和求元素和的程序,要求编写出测试程序。 参考程序:#include / 编译预处理命令using namespace std; / 使用命名空间std / 声明数组类模板template class Arrayprivate:/ 数据成员 ElemType *elem;
8、/ 存储数据元素值 int size; / 数组元素个数public:/ 公有函数 Array(int sz): size(sz) elem = new ElemTypesize; / 构造函数 Array() delete elem; / 析构函数 void SetElem(ElemType e, int i); / 设置元素值 ElemType GetElem(int i) const; / 求元素值 ElemType Max() const; / 求最大值 ElemType Sum() const; / 求元素之和;template void Array:SetElem(ElemType
9、 e, int i) / 设置元素值 if (i = size) cout 元素位置错! endl; exit(1); / 退出程序的运行,返回到操作系统 elemi = e; / 设置元素值为e template ElemType Array:GetElem(int i) const / 求元素值 if (i = size) cout 元素位置错! endl; exit(2); / 退出程序的运行,返回到操作系统 return elemi; / 返回元素值elemi int main() / 主函数main() int a = 1, 9, 7, 5, 6, 3; / 定义数组a int n
10、= 6; / 数组元素个数 Array obj(n); / 定义数组对象 int i; / 定义变量 for (i = 0; i n; i+) obj.SetElem(ai, i); / 设置数组元素值 for (i = 0; i n; i+) cout obj.GetElem(i) ; / 输出元素值 cout endl; / 换行 cout 最大值为: obj.Max() endl; / 输出最大值 cout 各元素和为: obj.Sum() endl; / 输出各元素之和 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值,
11、返回操作系统实验4 派生与继承实验目的:理解类的继承的概念,能够定义和使用类的继承关系。掌握派生类的声明与定义方法。熟悉公有派生类和私有派生类的访问特性。学习虚基类在解决二义性问题中的作用。实验内容:编程实现:有一个汽车类Vehicle,它具有一个需传递参数的构造函数,还拥有保护数据成员车轮个数wheels和车重weight。小汽车类Car是Vehicle的私有派生类,其中包含载人数passengerLoad。卡车类Truck是Vehicle的私有派生类,其中包含载人数passengerLoad和载重量payload。每个类都有相关数据的输出函数Show()。 参考程序:#include /
12、编译预处理命令using namespace std; / 使用命名空间std / 声明汽车类class Vehicleprotected:/ 保护成员 int wheel; / 车轮个数 double weight; / 车重public:/ 公有函数 Vehicle(int wh = 4, double wt = 1000): wheel(wh), weight(wt) void Show() const / 输出相关信息 cout 车轮个数: wheel endl; cout 车重: weight 公斤 endl; ;/ 声明小汽车类class Car: private Vehicle
13、private:/ 私有成员 int passengerLoad; / 载人数public:/ 公有函数 Car(int wh = 4, double wt = 1000, int p = 5): Vehicle(wh, wt), passengerLoad(p) / 构造函数 void Show() const / 输出相关信息 Vehicle:Show(); / 调用基类的Show() cout 载人数: passengerLoad endl; ;/ 声明卡车类class Truck: private Vehicle private:/ 私有成员 int passengerLoad; /
14、载人数 double payload; / 载重量public:/ 公有函数 Truck(int wh = 4, double wt = 1000, int p = 5, double pay = 2000): Vehicle(wh, wt), passengerLoad(p), payload(pay) void Show() const / 输出相关信息 Vehicle:Show(); / 调用基类的Show() cout 载人数: passengerLoad endl; cout 载重量: payload 公斤 endl; ;int main() / 主函数main() Vehicle
15、v; / 定义对象 cout 汽车信息: endl; / 输出提示 v.Show(); / 输出信息 Car c; / 定义对象 cout endl 小汽车信息: endl; / 输出提示 c.Show(); / 输出信息 Truck t; / 定义对象 cout endl 卡车车信息: endl; / 输出提示 t.Show(); / 输出信息 system(PAUSE); / 调用库函数system( ),输出系统提示信息 return 0; / 返回值, 返回操作系统 实验5 多态性实验目的:理解静态和动态多态性。掌握运算符重载的基本方法。掌握虚函数的定义与使用方法。实验内容:编写程序,
16、定义抽象基类Shape(形状),由它派生出2个派生类: Circle(圆形)和Square (正方形),用函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。要求用基类指针数组,数组的每个元素指向一个派生类对象。 参考程序:#include / 编译预处理命令using namespace std; / 使用命名空间std const double PI = 3.1415926; / 常量PIconst int NUM = 2; / 常量NUM/ 声明形状抽象类class Shapepublic:/ 公有成员: virtual Shape() / 虚析构函数 virt
17、ual void ShowArea() const = 0; / 纯虚函数, 显示面积;/ 声明矩形类class Rectangle: public Shapeprivate:/ 数据成员: double height; / 高 double width; / 宽public:/ 公有函数: Rectangle(double h, double w): height(h), width(w) / 构造函数 void ShowArea() const / 显示面积 cout 矩形面积: height * width endl; ;/ 声明圆形类class Circle: public Shape
18、private:/ 数据成员: double radius; / 半径public:/ 公有函数: Circle(double r): radius(r) / 构造函数 void ShowArea() const / 显示面积 cout 圆面积: PI * radius * radius endl; ;int main() / 主函数main() Shape *aNUM; / 抽象基类Shape指针数组 int i, select; / 定义整型变量 for (i = 0; i NUM; i+) / 依次产生各个图形 cout select; / 输入选择 while (select 2) c
19、out select; / 输入选择 if (select = 1) double h; / 高 double w; / 宽 cout h; / 输入高 cout w; / 输入宽 ai = new Rectangle(h, w); / ai指向矩形对象 else double r; / 半径 cout r; / 输入半径 ai = new Circle(r); / ai指向圆对象 for (i = 0; i ShowArea(); / 显示面积 delete ai; / 释放临时对象 system(PAUSE); / 调用库函数system( ),输出系统提示 return 0; / 返回值
20、, 返回操作系统实验6 文件操作实验目的:掌握文件操作的基本技巧,文件的建立,打开,定位,读写和关闭实验内容:有一个整型数组,含10个整数,将这些数据存入到一个二进制文件中,然后再从这个文件中读出这些数据并显示在屏幕上。int main(void) / 主函数main() int a = 1, 5, 78, 90, 25, 16, 18, 86, 91, 10, n = 10, x; fstream f; / 定义文件对象 f.open(my_file.dat, ios:out | ios:binary);/以输出方式打开文件 if (f.fail() / 打开文件失败 cout 打开文件失败
21、! endl; exit(1); / 退出程序 for (int i = 0; i n; i+) f.write(char *)&ai, sizeof(int); / 写数据到文件中 f.close(); / 关闭文件 f.open(my_file.dat, ios:in | ios:binary);/ 以输入方式打开文件 if (f.fail() / 打开文件失败 cout 打开文件失败! endl; exit(2); / 退出程序 f.read(char *)&x, sizeof(int); / 从文件中读出数据到x while (!f.eof() cout x ; / 输出x到屏幕 f.
22、read(char *)&x, sizeof(int); / 从文件中读出数据到x cout endl; / 换行 f.close(); / 关闭文件 system(PAUSE); / 输出系统提示并返回操作系统 return 0; / 返回值0, 返回操作系统实验7 基于对话框程序设计实验目的:掌握基于MFC程序设计基本技巧,掌握基本控件的实验内容:设计一个加法器,主要要求如下2要求输入密码:3主程序界面如下:实验8 基于单文档程序设计实验目的:掌握单文档程序的基本架构,掌握菜单项的添加,成员函数的定义实验内容:建立单文档程序,要求如下,启动界面如下1建立如下启动界面,保持2秒:2 建立菜单:计算器,调用计算器程序3 建立如下界面, 点击添加人员信息,则弹出如下对话框输入信息后,在编辑框中显示
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1