ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:25.94KB ,
资源ID:11574308      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11574308.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象程序设计方法学》实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象程序设计方法学》实验指导书.docx

1、面向对象程序设计方法学实验指导书面向对象程序设计实验指导书实验类别: 设计 实验课程名称: 面向对象程序设计方法学实验室名称:软件基础实验室 实验课程编号: 3090104总学时: 56 学 分: 3.5适用专业: 计算机科学与技术、网络工程、软件工程 先修课程: 有一门程序设计语言基础实验在教学培养计划中地位、作用:面向对象程序设计方法学是一门实践性很强的课程,每个学生必须完成一定数量的上机实验。实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。本课程使学生熟悉C+的语法特性,了解C与C+的区别和兼容性;理解面向对象程序设计的基本原理,包括类、对象、

2、抽象、封装、继承和多态性等关键要素以及其关键语法特性类;掌握用C+编写面向对象程序的一般方法;了解VC+编程环境。通过上机实验进一步加深对课程基本内容的理解。同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。实验一 语句与程序流程(2学时)1、实验目的(1)了解C+开发工具的特点(2)熟悉C+开发环境(3)学会编写简单的C+程序。(4)练习使用简单的输入输出。(5)熟悉各种流程控制语句的功能。2、实验内容(1)输入并运行程序:用do-while语句编程,求自然数110之和。程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。(2)d

3、o-while语句用for语句代替,完成相同的功能。(3)编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。3、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。 4、实验步骤(1)启动Visual C+开发环境(2)创建一个项目1)单击File菜单中的New选项,显

4、示新建对话框2)选择Win32 Console Application(VC+)。3)选择项目所在路径及输入项目的名称lab1_14)依次按下一步直至完成为止。(3)至此,已经建立好工程相关的文件,在生成的main函数中写入必要的内容即可。(4)输入并运行程序:用do-while语句编程,求自然数110之和1)建立C+源程序文件 选菜单命令Project|Add to Project|New,弹出New对话框 在New对话框的Files选项卡中选择C+ Source File,并填入文件名称lab1_1,单击OK按钮,完成新建C+源程序文件2)编辑C+源程序文件 在文件编辑窗口中输入代码 完成

5、后,选择菜单File|Save保存这个文件3)建立并运行可执行程序 选择菜单命令Build,建立可执行程序如果你正确输入了源程序,此时便成功地生成了可执行程序。如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。 选择菜单命令Run,运行程序,观察屏幕显示内容。(5)程序正确运行之后,在源程序第一行”#include ”前面加注释标记”/”使之成为注释行,重新编译,观察编译的结果。(6)选择菜单命令File|Colse WorkSpace关闭工作空间,另建立一个项目lab1_2,包含一个C+源程序lab1_2.

6、cpp,将do-while语句用for语句代替,完成与实验内容1相同的功能。(7)选择菜单命令File|Colse WorkSpace关闭工作空间,建立项目lab1_3,包含一个C+源程序lab1_3.cpp,计算图形面积。圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。最后编译运行程序。参考程序如下:

7、 /lab3_3.cpp#include using namespace std;const float PI=3.1416;int main() int iType; float radius,a,b,area;coutiType; switch(iType) case 1:cout radius;area=PI*radius*radius;cout”面积为”areaendl;break; case 2:couta;coutb;area=a*b;cout”面积为:”areaendl;break; case 3:couta;area=a*a;cout”面积为:”areaendl;break;

8、default:cout”不是合法的输入值!”endl;return 0;实验二 函数与重载(2学时)1、实验目的(1)掌握函数的定义和调用方法。(2)练习重载函数使用。(3)练习缺省参数的函数使用(4)练习使用系统函数。2、实验内容:(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。(2)编写重载函数max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。(3)给求取两个整数最大值的重载函数max1赋缺省参数值0,并利用该函数来判断某个整数是否大于0,比如max1(-6)。(4)使用系统函数pow(x,y)计算xy的值,注意包含头文件cmat

9、h。3、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。4、实验步骤:(1)编写函数float Convert(float TempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名为lab2_1.cpp.(2)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab2_2.cpp。参考程序如下:#include usi

10、ng namespace std;int max1(int a=0,int b=0) return ab?a:b;int max1(int a,int b,int c) int tmp=max1(a,b); return tmpc?tmp:c;double max1(double a,double b) return ab?a:b;double max1(double a,double b,double c) double tmp=max1(a,b); return tmpc?tmp:c;int main() int n1,n2,n3; coutn1; if (max1(n1)=0) cout

11、这个数小于或等于0; else cout这个数大于0; coutn1n2; cout最大值为max1(n1,n2)endl; coutn1n2n3; cout最大值为max1(n1,n2,n3)endl; double d1,d2,d3; coutd1d2; cout最大值为max1(d1,d2)endl; coutd1d2d3; cout最大值为max1(d1,d2,d3)endl; return 0;(3)若将三个整数的函数给定缺省参数值0,重新编译,观察编译的结果。(4)在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果

12、,再显示出来。程序名:lab2_2.cpp。实验三 类的定义与使用(2学时)1、 实验目的(1)掌握类的定义和使用(2)掌握类的定义和对象的声明(3)观察构造函数和析构函数的执行过程。(4)观察具有不同访问属性的成员的访问方式。 2、实验内容(1)定义一个TDate类,包含年(year)、月(month)、日(day)等属性,有三个公有成员函数:SetDate来设置日期、AddOneDay来对日期进行加1天的操作、print来输出日期;(2)对构造函数或成员函数进行重载;(3)设置构造函数或成员函数的缺省参数(4)观察构造函数和析构函数的调用顺序;(5)观察具有不同访问属性的成员的访问方式。3

13、、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。4、实验步骤(1)添加一个头文件TDate.h来定义TDate类。包含:1)私有数据成员:年(year)、月(month)、日(day)等;2)定义2个构造函数,并对其中的一个构造函数设置缺省参数;3)定义1个析构函数。4)定义成员函数SetDate来设置日期,AddOneDay来对日期进行加1天的操作,print来输出日期。(2)添加一个源文件TDate.cpp来实现成员

14、函数。(3)在主程序中定义若干个TDate类的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。写在另外一个cpp文件中。(4)将成员函数print的访问属性设为private或protected后,重新编译,观察编译结果。/=日期类定义部分TDate.h=/#include using namespace std;#ifndef TDate_H#define TDate_Hclass TDatepublic: TDate() year=2014;month=1;day=1; cout调用缺省的构造函数endl; TDate(int y,int m=1,int d=1) y

15、ear=y;month=m;day=d; cout调用带参数的构造函数endl; ; void SetDate(int y,int m,int d); void AddOneDay(); void print(); TDate()cout调用析构函数endl;private: int year; int month; int day;#endif/=日期类实现部分TDate.cpp =/#include TDate.hint maxDays(int,int);void TDate:print()coutyear年month月day日maxDays(year,month) month=month

16、+1; day=1; if (month12) year=year+1; month=1; int maxDays(int y,int m) int days; switch(m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; /31天 break; case 2: if (y%4=0&y%100!=0)|y%400=0)/闰年29天 days=29; else days=28; break; / default:/30天 days=30; break; return days;/=主函数部分Lab3.cp

17、p =/int main() TDate d0; cout不带参数的日期对象:; d0.print(); TDate d1(2003); cout带1个参数的日期对象:; d1.print(); TDate d2(2003,12); cout带2个参数的日期对象:; d2.print(); TDate d3(2014,10,14); d3.AddOneDay(); cout带3个参数的日期对象加一天后:; d3.print(); d3.SetDate(2005,4,8); cout重新设定日期后:; d3.print(); return 0; 实验四 静态成员与常成员的使用(2学时)1、 实验

18、目的(1)学习静态成员的使用(2)学习常成员的使用(3)掌握静态数据成员与常数据成员的初始化2、实验内容(1)某商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记录下目前库存的货物的总重量,现在要求设计一个Goods类并使用静态成员来模拟商店货物购进和卖出的情况;(2)为上面的Goods类添加一个常数据成员(货物名称),并对货物名称进行初始化;(3)将前面已定义的某些成员函数改写为常成员函数,观察是否该类中所有的成员函数是否都可设定为常成员函数。3、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所

19、布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。4、实验步骤(1)添加一个头文件Goods.h来定义Goods类。包含:1)私有数据成员货物重量(weight)、私有静态数据成员库存总重量(totalWeight);2)定义构造函数来描述进货过程;3)定义成员函数Sell来描述货物卖出过程,成员函数GetWeight来获取当前货物重量。4)定义静态成员函数GetTotalWeight来读取当前货物的库存总重量。5)自定义若干个成员函数。(2)添加一个源文件Goods.cpp来实现成员函数。(3)在主程序中定义若干个

20、Goods类的对象,模拟进货与卖出的过程。查看运行结果。(4)为Goods类添加一个常数据成员const char * name来表示货物名称,改写构造函数及主程序的调用,在构造函数的成员初始化列表中对货物名称赋初值。重新编译,观察运行结果。(5)将前面已定义的某些成员函数改写为常成员函数,观察是否该类中所有的成员函数是否都可设定为常成员函数。参考程序如下:#include class Goodspublic: Goods(int w); int GetWeight() const; void Sell(); static int GetTotalWeight();private: int w

21、eight; static int totalWeight;public: const char* name;Goods:Goods(int w):name(鸡蛋) weight=w; totalWeight+=w;void Goods:Sell() totalWeight-=weight;weight=0; int Goods:GetWeight() const return weight;int Goods:GetTotalWeight() return totalWeight;int Goods:totalWeight=0;int main() int w; coutw; Goods g

22、1(w); coutw; Goods g2(w); cout库存货物重量为:; coutGoods:GetTotalWeight()endl; g2.Sell(); cout卖掉第2箱货物后,库存货物重量为:; coutg1.GetTotalWeight()endl; cout货物名称为:g1.nameendl; return 0;实验五 子对象和堆对象(2学时)1、实验目的(1)学习子对象的使用(2)学习堆对象的使用2、实验内容(1)定义一个人员类People,添加属性:姓名、出生日期、身高、住址;可修改人员的住址;(2)出生日期为一个在实验三中定义的TDate类,将出生日期作为People

23、类的子对象;3、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。4、实验步骤(1)新建一个工程,将实验三中定义的TDate类加入到工程中;(2)新定义一个人员类People,添加私有的数据成员:姓名(name)、出生日期(birthday)、身高(height)、住址(address);(3)在构造函数中实现数据成员的初始化,尤其是子对象出生日期及堆对象姓名和住址的初始化;(4)在析构函数中释放堆对象姓名和住址;(5)实现

24、修改人员住址的成员函数。参考程序如下:/TDate类的定义参考实验三#include #include #include TDate.husing namespace std;class Peopleprivate: char* name; char* address; int height; TDate birthday;public: People(char* pName,char* pAddress,int theHeight,int y,int m,int d):birthday(y,m,d) height=theHeight; name=new charstrlen(pName)+1

25、; strcpy(name,pName); namestrlen(pName)=0; address=new charstrlen(pAddress)+1; strcpy(address,pAddress); addressstrlen(pAddress)=0; People() delete name; delete address; void SetAddress(char *pAddress ) delete address; address=new charstrlen(pAddress)+1; strcpy(address,pAddress); addressstrlen(pAddr

26、ess)=0; void print() cout姓名:nameendl; cout身高:heightendl; cout住址:addressendl; cout出生日期:; birthday.print(); coutendl; ;/主函数调用int main() People ren(张三,中北大学10号楼,20,1980,4,8); ren.SetAddress(中北大学20号楼); ren.print(); return 0; 实验六 类的继承与派生(2学时)1、实验目的(1)学习定义和使用类的继承关系,定义派生类。(2)熟悉不同继承方式下对基类成员的访问控制。(3)学习利用虚基类解决

27、二义性问题2、实验内容(1)定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。(2)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。3、实验要求(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。 (2)独立完成所布置习题。 (3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。 (4)认真完成每次实验,并写出实验报告。4、实验步

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1