《面向对象程序设计》实验指导书.docx
- 文档编号:24581189
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:16
- 大小:82.01KB
《面向对象程序设计》实验指导书.docx
《《面向对象程序设计》实验指导书.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验指导书.docx(16页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计》实验指导书
《面向对象程序设计》实验指导书
实验1熟悉VC开发环境,函数重载
实验目的:
熟悉VC开发环境,掌握函数重载
实验内容:
1建立如图界面
2编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现,数据定义如下
inta[]={1,3,2,5,6,9,0,6};//定义a
floatb[]={1.6,3.3,2.8,5.6,6.8,9.6,0.6,6.8};//定义b
doublec[]={1.2,3.1,2.6,5.8,6.8,9.8,0.8,6.2};//定义c
3.点击运行按钮排序,并用编辑框输出结果
参考程序
voidCFirstvcDlg:
:
OnRun()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CStringmessage;
CEdit*pEdit;
pEdit=(CEdit*)this->GetDlgItem(IDC_MES);//找到编辑框空间
pEdit->SetSel(0,-1);//先清屏
pEdit->Clear();
inti=0;
for(i=0;i<100;i++)
{
message.Format("第%d个数\r\n",i);//打印结果
pEdit->SetSel(-1,-1);//自动卷屏到底端
pEdit->ReplaceSel(message);
}
}
实验2类和对象
实验目的:
熟悉C++类的定义和对象生成,掌握函数重载,掌握类、类的成员函数、类的成员函数的定义方式。
理解类成员的访问控制方式。
掌握对象的定义和操作对象的方法。
理解构造函数和析构函数的定义与执行过程。
掌握重载构造函数的方法。
实验内容:
编写设计一个People(人)类。
该类的数据成员有姓名(name)、年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、显示(Show)和显示人数(ShowNum)。
其中构造函数由已知参数姓名(nm)、年龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,显示函数用于显示人的姓名、年龄、身高、体重,显示人数函数为静态成员函数,用于显示人数。
假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个对象,通过对象直接访问类的所有非静态成员函数,通过类访问静态成员函数。
在如下界面中显示信息
参考程序:
#include
usingnamespacestd;//使用命名空间std
classPeople
{
private:
//数据成员
charname[9];//姓名
intage;//年龄
intheight;//身高
doubleweight;//体重
staticintnum;//人数
public:
//公有函数
People(charnm[]="路人甲",inta=16,inth=168,intw=118):
age(a),height(h),weight(w){strcpy(name,nm);num++;}voidEatting(){weight++;}//进食
voidSporting(){height++;}//运动
voidShow()const//显示信息
{
cout<<"个人信息:
"< cout<<"姓名: "< cout<<"年龄: "< cout<<"身高: "< cout<<"体重: "< } staticvoidShowNum()//显示人数 {cout<<"人数: "< }; intPeople: : num=0;//初始化静态数据成员num intmain()//主函数main() { Peoplep1;//定义对象 p1.Show();//显示信息 Peoplep2("李敏",18,170,108);//定义对象 p2.Eatting();//进食 p2.Sporting();//运动 p2.Show();//显示信息 People: : ShowNum();//显示人数 system("PAUSE");//调用库函数system(),输出提示信息 return0;//返回值,返回操作系统 } 实验3模板 实验目的: 掌握类模板与函数模板掌握模板类和模板函数的定义。 实验内容: 编写一个使用数组类模板Array对数组求最大值和求元素和的程序,要求编写出测试程序。 参考程序: #include usingnamespacestd;//使用命名空间std //声明数组类模板 template classArray { private: //数据成员 ElemType*elem;//存储数据元素值 intsize;//数组元素个数 public: //公有函数 Array(intsz): size(sz){elem=newElemType[size];}//构造函数 ~Array(){deleteelem;}//析构函数 voidSetElem(ElemTypee,inti);//设置元素值 ElemTypeGetElem(inti)const;//求元素值 ElemTypeMax()const;//求最大值 ElemTypeSum()const;//求元素之和 }; template voidArray : SetElem(ElemTypee,inti)//设置元素值 { if(i<0||i>=size) { cout<<"元素位置错! "< exit (1);//退出程序的运行,返回到操作系统 } elem[i]=e;//设置元素值为e } template ElemTypeArray : GetElem(inti)const//求元素值 { if(i<0||i>=size) { cout<<"元素位置错! "< exit (2);//退出程序的运行,返回到操作系统 } returnelem[i];//返回元素值elem[i] } intmain()//主函数main() { inta[]={1,9,7,5,6,3};//定义数组a intn=6;//数组元素个数 Array inti;//定义变量 for(i=0;i obj.SetElem(a[i],i);//设置数组元素值 for(i=0;i cout< cout< cout<<"最大值为: "< cout<<"各元素和为: "< system("PAUSE");//调用库函数system(),输出系统提示信息 return0;//返回值,返回操作系统 } 实验4派生与继承 实验目的: 理解类的继承的概念,能够定义和使用类的继承关系。 掌握派生类的声明与定义方法。 熟悉公有派生类和私有派生类的访问特性。 学习虚基类在解决二义性问题中的作用。 实验内容: 编程实现: 有一个汽车类Vehicle,它具有一个需传递参数的构造函数,还拥有保护数据成员车轮个数wheels和车重weight。 小汽车类Car是Vehicle的私有派生类,其中包含载人数passengerLoad。 卡车类Truck是Vehicle的私有派生类,其中包含载人数passengerLoad和载重量payload。 每个类都有相关数据的输出函数Show()。 参考程序: #include usingnamespacestd;//使用命名空间std //声明汽车类 classVehicle { protected: //保护成员 intwheel;//车轮个数 doubleweight;//车重 public: //公有函数 Vehicle(intwh=4,doublewt=1000): wheel(wh),weight(wt){} voidShow()const//输出相关信息 { cout<<"车轮个数: "< cout<<"车重: "< } }; //声明小汽车类 classCar: privateVehicle { private: //私有成员 intpassengerLoad;//载人数 public: //公有函数 Car(intwh=4,doublewt=1000,intp=5): Vehicle(wh,wt),passengerLoad(p){}//构造函数 voidShow()const//输出相关信息 { Vehicle: : Show();//调用基类的Show() cout<<"载人数: "< } }; //声明卡车类 classTruck: privateVehicle { private: //私有成员 intpassengerLoad;//载人数 doublepayload;//载重量 public: //公有函数 Truck(intwh=4,doublewt=1000,intp=5,doublepay=2000): Vehicle(wh,wt),passengerLoad(p),payload(pay){} voidShow()const//输出相关信息 { Vehicle: : Show();//调用基类的Show() cout<<"载人数: "< cout<<"载重量: "< } }; intmain()//主函数main() { Vehiclev;//定义对象 cout<<"汽车信息: "< v.Show();//输出信息 Carc;//定义对象 cout< "< c.Show();//输出信息 Truckt;//定义对象 cout< "< t.Show();//输出信息 system("PAUSE");//调用库函数system(),输出系统提示信息 return0;//返回值,返回操作系统 } 实验5多态性 实验目的: 理解静态和动态多态性。 掌握运算符重载的基本方法。 掌握虚函数的定义与使用方法。 实验内容: 编写程序,定义抽象基类Shape(形状),由它派生出2个派生类: Circle(圆形)和Square(正方形),用函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。 要求用基类指针数组,数组的每个元素指向一个派生类对象。 参考程序: #include usingnamespacestd;//使用命名空间std constdoublePI=3.1415926;//常量PI constintNUM=2;//常量NUM //声明形状抽象类 classShape { public: //公有成员: virtual~Shape(){}//虚析构函数 virtualvoidShowArea()const=0;//纯虚函数,显示面积 }; //声明矩形类 classRectangle: publicShape { private: //数据成员: doubleheight;//高 doublewidth;//宽 public: //公有函数: Rectangle(doubleh,doublew): height(h),width(w){}//构造函数 voidShowArea()const//显示面积 { cout<<"矩形面积: "< } }; //声明圆形类 classCircle: publicShape { private: //数据成员: doubleradius;//半径 public: //公有函数: Circle(doubler): radius(r){}//构造函数 voidShowArea()const//显示面积 { cout<<"圆面积: "< } }; intmain()//主函数main() { Shape*a[NUM];//抽象基类Shape指针数组 inti,select;//定义整型变量 for(i=0;i {//依次产生各个图形 cout<<"输入图形类型(1: 矩形,2: 圆形): ";//输入提示 cin>>select;//输入选择 while(select<1||select>2) { cout<<"重新输入图形类型(1: 矩形,2: 圆形): "; cin>>select;//输入选择 } if(select==1) { doubleh;//高 doublew;//宽 cout<<"高: ";//输入提示 cin>>h;//输入高 cout<<"宽: ";//输入提示 cin>>w;//输入宽 a[i]=newRectangle(h,w);//a[i]指向矩形对象 } else { doubler;//半径 cout<<"半径: ";//输入提示 cin>>r;//输入半径 a[i]=newCircle(r);//a[i]指向圆对象 } } for(i=0;i {//依次显示面积及释放临时对象 a[i]->ShowArea();//显示面积 deletea[i];//释放临时对象 } system("PAUSE");//调用库函数system(),输出系统提示 return0;//返回值,返回操作系统 } 实验6文件操作 实验目的: 掌握文件操作的基本技巧,文件的建立,打开,定位,读写和关闭 实验内容: 有一个整型数组,含10个整数,将这些数据存入到一个二进制文件中,然后再从这个文件中读出这些数据并显示在屏幕上。 intmain(void)//主函数main() { inta[]={1,5,78,90,25,16,18,86,91,10},n=10,x; fstreamf;//定义文件对象 f.open("my_file.dat",ios: : out|ios: : binary);//以输出方式打开文件 if(f.fail()) {//打开文件失败 cout<<"打开文件失败! "< exit (1);//退出程序 } for(inti=0;i f.write((char*)&a[i],sizeof(int));//写数据到文件中 f.close();//关闭文件 f.open("my_file.dat",ios: : in|ios: : binary);//以输入方式打开文件 if(f.fail()) {//打开文件失败 cout<<"打开文件失败! "< exit (2);//退出程序 } f.read((char*)&x,sizeof(int));//从文件中读出数据到x while(! f.eof()) { cout< f.read((char*)&x,sizeof(int));//从文件中读出数据到x } cout< f.close();//关闭文件 system("PAUSE");//输出系统提示并返回操作系统 return0;//返回值0,返回操作系统 } 实验7基于对话框程序设计 实验目的: 掌握基于MFC程序设计基本技巧,掌握基本控件的 实验内容: 设计一个加法器,主要要求如下 2要求输入密码: 3主程序界面如下: 实验8基于单文档程序设计 实验目的: 掌握单文档程序的基本架构,掌握菜单项的添加,成员函数的定义 实验内容: 建立单文档程序,要求如下,启动界面如下 1建立如下启动界面,保持2秒: 2建立菜单: 计算器,调用计算器程序 3建立如下界面, 点击添加人员信息,则弹出如下对话框 输入信息后,在编辑框中显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)