《面向对象程序设计》实验指导09级.docx

上传人:b****5 文档编号:12087303 上传时间:2023-04-17 格式:DOCX 页数:23 大小:27.23KB
下载 相关 举报
《面向对象程序设计》实验指导09级.docx_第1页
第1页 / 共23页
《面向对象程序设计》实验指导09级.docx_第2页
第2页 / 共23页
《面向对象程序设计》实验指导09级.docx_第3页
第3页 / 共23页
《面向对象程序设计》实验指导09级.docx_第4页
第4页 / 共23页
《面向对象程序设计》实验指导09级.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

《面向对象程序设计》实验指导09级.docx

《《面向对象程序设计》实验指导09级.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验指导09级.docx(23页珍藏版)》请在冰豆网上搜索。

《面向对象程序设计》实验指导09级.docx

《面向对象程序设计》实验指导09级

《面向对象程序设计》实验指导书

第一部分实验教学大纲

课程名称:

面向对象程序设计实验

11-16周,16周提交实验报告

本课件共给出5个实验,在做完要求的5个实验外,要求每个同学自己增加一道课堂教学中要求完成的作业题,编写程序,并能调试通过,得到正确结果。

一、课程简介及基本要求

面向对象的程序设计是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。

通过上机作业进一步加深对课程基本内容的理解。

同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。

由于学生编程和上机的熟悉程度往往差别较大,本大纲所要求的实验为每个学生必须完成的实验,即最低要求。

其它上机内容由学生在教师指导下自选,内容可以是习题中编写的程序,也可以是学生解决实际问题中所编写的程序。

二、实验课程目的与要求

实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。

本课程使学生熟悉C++的语法特性,了解C与C++的区别和兼容性;理解面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性—类;掌握用C++编写面向对象程序的一般方法;了解VC++编程环境。

三、主要仪器设备

每人一台计算机,基本配置:

奔腾III-600MHZ以上、40G~60G硬盘,128M内存。

装有C++builder或VisualC++或其他的C++编译软件。

四、实验方式与基本要求

实验分两类:

基本实验和综合性实验。

基本实验是按章节进行,根据教学大纲要求,有针对性地练习。

综合性实验往往跨单元处理问题。

学生上机时,按要求填写实验报告和回答思考题。

要求把每次实验的程序文本和运行结果存入到本人的用户目录下或专用软盘上供指导老师检查。

五.考核与报告

本课程实验考试方式是考查,按一般课程考试方式进行,主要内容包括实验操作和实验报告,实验成绩占该课程形成性考核成绩的10~20%。

实验报告的规范:

实验完成后填写统一的实验报告单,给出实验内容题目、年级、姓名、学号、指导教师、完成日期,并详细填写:

实验目的、实验程序、实验结果及分析、存在的问题。

实验一、C++开发环境应用(4学时)

1、实验目的

(1)了解C++开发工具的特点

(2)熟悉C++开发环境

(2)学习用C++编写标准的C++程序

2、实验任务

(1)输入并运行程序:

用do-while语句编程,求自然数1~10之和。

程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。

(2)do-while语句用for语句代替,完成相同的功能。

(3)编程计算图形的面积。

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

3、提示

(1)建立一个控制台应用程序项目lab2_1,向其中添加一个C++源文件lab2_1.cpp,输入程序,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择Execute运行程序,观察输出结果。

(2)程序正确运行之后,在源程序第一行”#include”前面加注释标记”//”使之成为注释行,重新编译,观察编译的结果。

(3)另建立一个项目lab2_2,包含一个C++源程序lab2_2.cpp,将do-while语句用for语句代替,完成与实验任务1相同的功能。

(4)建立项目lab2_3,计算图形面积。

圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。

程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。

最后编译运行程序。

4、实验环境的应用

(1)启动VisualC++开发环境

(2)创建一个项目

a.单击File菜单中的New选项,显示示新建对话框

b.选择Win32ConsoleApplication(VC++)。

c.选择项目所在路径及输入项目的名称

d.依次按‘下一步’直至完成为止。

(3)至此,已经建立好工程相关的文件,在生成的main函数中写入必要的内容即可。

(4)继续下面的步骤:

a.建立C++源程序文件

●选菜单命令Project|AddtoProject|New,弹出New对话框

●在New对话框的Files选项卡中选择C++SourceFile,并填入文件名称,单击OK按钮,完成新建C++源程序文件

b.编辑C++源程序文件

●在文件编辑窗口中输入代码

●完成后,选择菜单File|Save保存这个文件

c.建立并运行可执行程序

●选择菜单命令Build,建立可执行程序

如果你正确输入了源程序,此时便成功地生成了可执行程序。

如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。

选择菜单命令Run,运行程序,观察屏幕显示内容。

d.关闭工作空间

选择菜单命令File|ColseWorkSpace关闭工作空间。

1.熟悉VisualC++实验环境

[实验步骤]

(1)启动DeveloperStudio,看看初始化界面由哪些部分组成

(2)查看各菜单项,看看都有哪些子菜单和命令

(3)将鼠标放置于各工具条图标上,系统会自动显示该图标代表的命令含义,了解一下都有哪些命令。

(4)在任意工具条上单击鼠标右键,弹出式菜单上将显示所有可用的工具条,选择其中没有对号(√)的项,看看有什么效果,再选择有对号的项,又有什么效果?

(5)将鼠标移动到任意工具条上,将鼠标放到图标间隙,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?

再将它拖回到原来位置,有什么现象发生?

(6)将鼠标移动到左边的工作区窗口,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?

再将它拖回到原来位置,有什么现象发生?

7)将鼠标移动到下边的输出窗口,按鼠标右键,弹出一个菜单,选择其中的菜单项"Hide",结果如何?

要重新显示该窗口,选择菜单View|Output,窗口是不是又显示出来了?

(8)学习使用帮助系统。

如果你用的是VisualC++5.0,则在工作区窗口的InfoView中选择你感兴趣的内容,双击它,在文档区显示具体的帮助信息。

如果你用的是VisualC++6.0,选择菜单Help|Contents,启动MSDN联机帮助系统,学习使用该帮助系统。

联机帮助系统是一个相对独立的程序,它和DeveloperStudio是两个程序,但是它的启动和停止都受DeveloperStudio影响。

MSDN联机帮助系统运行的前提条件是DeveloperStudio在运行。

(9)选File|Exit退出DeveloperStudio。

2.控制台应用

用AppWizard建立一个控制台应用,在终端上输出"Hello"。

术语:

“控制台应用程序”是一个在DOS窗口中运行的基于字符的程序。

由于这种模式的应用程序比Windows程序简单,我们先选择利用VisualC++来建立这样一个应用,这样使得我们可以将精力先投入到学习使用C++编程语言,而不需要把过多的精力投入到学习复杂的Windows编程中去。

[实验步骤]

1)创建第一个应用

首先创建一个项目(project),项目将代表你的应用,存放你应用的所有信息,包括源文件、资源文件、编译连接设置等。

创建项目的步骤为:

(1)启动DeveloperStudio

(2)从主菜单中选择File|New,将显示出New对话框

(3)选择Projects标签,并从列表中单击Win32ConsoleApplication

(4)在“Location”编辑框中输入你的工作目录名称,如c:

\student\your_name(自建吧)

(5)在对话框的右上角的“projectname”编辑框内键入项目的名字,如"Hello",系统将自动为你的项目分配一个默认的目录

(6)单击OK继续

(7)如果是VC6.0,系统将显示一个询问项目类型的程序向导,选择“anemptyproject”

(8)单击Finish或OK结束配置,创建应用程序

这时系统为你创建一个新的项目,并且在左边的工作区窗口中将出现你项目的名字。

工作区窗口除原来的InfoView标签外又增加了两个标签(如果是VisualC++6.0,则没有InfoView标签):

ClassView和FileView。

ClassView从类的角度显示项目中建立的各个类,双击某个类名将会在右边的文档显示区显示类的定义文件并把文件的当前位置定位到所选的类;FileView显示构成项目的各个文件,选择某一文件将会在右边的文档显示区显示文件内容;InfoView是VC5的帮助文件目录,在这里可以选择所要获取帮助的标题,在右边将显示帮助内容。

2)编辑你的第一个C++源程序

用下面的方法在你创建的项目中添加一个文件:

(1)在主菜单上选择File|New

(2)在New对话框中选择File标签,单击“C++SourceFile”

(3)选中AddtoProject复选框

(4)在右边的Filename编辑框中为文件指定一个名字,如Hello,系统将自动为你加上后缀.cpp。

新的空白文件将自动打开,显示在文档显示区。

在文件中输入以下内容(不包括上下两条横线):

//helloworldexample

#include

intmain(){

cout<<"hello!

"<

return0;//正常返回

}

仔细检查你输入的内容,确保内容正确

-->[常用编辑命令]

虽然许多编辑命令可以通过菜单和工具栏实现,但大量的编辑命令都可以通过键盘实现。

以下命令通常用键盘实现:

*撤消前一次操作。

当你进行了一次错误的操作时,可以通过敲击键盘上的Ctrl+Z完成;

*重复前一次操作。

通过敲击Ctrl+Y实现

*剪切一行。

用Ctrl+L来删除一行并将它放到剪切板中

*剪切。

将选中的文本删除并将它放到剪切板中,用Ctrl+X实现

*复制。

将选中的文本复制到剪切板中,用Ctrl+C实现

*粘贴。

将剪切板中的内容放到编辑器中文本的当前位置处(由光标指示)。

,用Ctrl+V实现

要想了解关于键盘操作命令的完整列表,可以选择Help菜单下的KeyboardMap。

你没有必要记住所有的命令,有些根本不常用。

3)保存你的源文件

单击工具栏中的"save"图标,或者选择File|Save来保存你的文件。

C++源文件的扩展名为.cpp。

扩展名非常重要,DeveloperStudio根据文件的扩展名来区分文件类型,并且根据文件类型提供相应的编辑帮助(如正确的语法高亮显示)。

4)编译、连接得到可执行程序

编辑结束后,仔细检查你输入的内容,看有无错误。

确认没有错误之后,选择主菜单的Build|BuildHello.exe来编译你的项目(也可以按功能键F7)。

如果你输入的内容没有错误,那么,在屏幕下方的输出窗口将会显示:

hello.exe-0error(s),0warning(s)

如果在编译时得到错误或警告,是你的源文件出现错误,再次检查你的源文件,看是否有错误,改正它。

5)改正源程序中的错误

编译的错误会在DeveloperStudio的下方的输出窗口显示出来,逐个查看这些错误的内容,用鼠标双击,光标可以自动移动到发生错误的源程序的相应地点,仔细检查你的源程序,改正发生错误的地方,注意是否否遗留了分号、引号或括号等。

改正后,再重复步骤4)的操作,直到编译连接通过为止。

调试命令

有关调试的命令分散在Build、Debug、View和Edit菜单中。

Build菜单包含一个StartDebug子菜单,其中的命令是Debug菜单命令的子集,包括:

启动调试过程(Go)、单步跟踪(StepInto)和运行到光标处(RunToCursor).当启动调试进程后,Build菜单会被Debug菜单代替,Debug菜单包含各种控制程序执行的命令,如单步执行、进入函数体、从函数体中出来、运行到光标所在位置等。

View菜单包含一些命令,可以控制显示各种与调试有关的窗口,如变量窗口(Variableswindow)、调用栈窗口(CallStackwindow)等。

Edit菜单下的Breakpoints命令可以打开一个对话框,在其中可以插入、删除、启动、停止各个断点。

设置断点

你可以控制程序直接运行到指定地点,然后查看运行到这个地方时程序的状态,如变量的值、调用栈的情况等。

你可以通过设置断点来达到这一目的。

设置断点的方式是:

将光标移到要设置断点的地方,按F9,这时会有一个红的圆点出现在代码行的左边。

如果你想取消断点,将光标移动到设置断点的代码行,按F9。

启动调试

按F5或者在Build菜单中,选择StartDebug然后选择Go,就可以启动调试程序。

程序会一直运行到需要用户输入或者有断点的代码处。

查看变量值

查看变量值有多种方式,你可以选择你喜欢的方式进行。

1)     你可以将鼠标移动到程序的变量名处,系统会自动为你显示变量的值;

2)复杂变量(如对象)可以通过QuickWatch查看,方法是:

将光标定位到所要查看值的变量处,按鼠标右键,选择QuickWatch菜单,就可以看到变量值。

3)启动调试程序后,屏幕下方将会出现两个输出窗口,一个是Watch,另一个是Variable。

Watch窗口显示变量名和变量值,你可以在Watch窗口中加上你想观察值的变量名,也可以直接从源代码中选择变量名,并把它拖动到Watch窗口中。

Variable窗口显示程序当前运行上下文涉及的变量的值。

控制程序执行

你可以控制程序单步执行(F10)、跟踪到一个函数内部(F11)、从一个函数运行出来(shift+F11)、运行到光标所在位置(Ctrl+F10),以便方便地调试程序。

这些命令用于在某个局部范围详细地调试程序。

你也可以通过设置断点(F9)然后用直接运行(GO或者F5)来控制程序直接运行到断点位置。

如果你设置了多个断点,程序将会在遇到的第一个断点处停下来。

要从断点处继续运行,可以用上面所说的各种命令(F5,F10,F11,Shift+F11,Ctrl+F10)。

结束调试

要结束调试,可以按shift+F5或者选择菜单Debug|StopDebugging。

当结束调试后,所有调试窗口会自动关闭,Debug菜单也会自动还原为Build菜单。

6)运行你的第一个程序

你可以有三种方式运行你的程序:

*在开发环境中运行程序

选择Build|Executehello.exe(或者Ctrl+F5),在开发环境中执行你的程序。

程序运行以后将显示一个类似于DOS的窗口,在窗口中输出一行“hello",紧接着在下面显示“Pressanykeytocontinue",这句话是系统提示你按任意键退出当前运行的程序,回到开发环境中。

按任意键,窗口关闭,退回到VisualC++开发环境。

我们实验中将用这种方式运行程序。

*在DOS环境下运行程序

打开DOS窗口,改变工作路径到项目目录,该目录是你在创建目录时指定的。

如果你不记得了,可以在DeveloperStudio中的工作区窗口中选择项目名称(这里是“hellofiles"),然后选择菜单View|Properties,将可以显示出项目路径。

切换到debug子目录下,运行hello.exe,程序将输出:

'hello'。

实验任务:

(1)输入并运行程序:

用do-while语句编程,求自然数1~10之和。

程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。

(2)do-while语句用for语句代替,完成相同的功能。

(3)编程计算图形的面积。

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

3、实验步骤

(1)建立一个控制台应用程序项目lab1_1,向其中添加一个C++源文件lab1_1.cpp,输入实验任务中

(1)的程序,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择Execute运行程序,观察输出结果。

(2)程序正确运行之后,在源程序第一行”#include”前面加注释标记”//”使之成为注释行,重新编译,观察编译的结果。

(3)另建立一个项目lab1_2,包含一个C++源程序lab1_2.cpp,将do-while语句用for语句代替,完成与实验任务1相同的功能。

(4)建立项目lab1_3,计算图形面积。

圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。

程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。

最后编译运行程序。

实验二、函数与重载(4学时)---------secondclass

1、实验目的:

(1)掌握函数的定义和调用方法。

(2)练习重载函数使用。

(3)练习函数模板的使用

(4)练习使用系统函数。

2、实验任务:

(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:

C=(F-32)*5/9。

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

(3)使用函数模板重新实现上小题中的函数Max1。

(4)使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。

(5)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

3、实验步骤:

编写函数floatConvert(floatTempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。

程序名为lab2_1.cpp.

(1)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。

程序名:

lab2_2.cpp。

(2)使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名函数模板max1,其参数个数不同,实现函数重载,在main()函数中测试函数的功能。

和序名:

lab2_3.cpp。

(3)在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。

程序名:

lab2_4.cpp。

(4)编写递归函数intfib(intn),在主程序中输入n的值,调用fib函数计算Fibonacci级数。

公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib

(1)=fib

(2)=1。

使用if语句判断函数的出口,在程序中用cout语句输出提示信息。

程序名:

lab2_5.cpp。

 

实验三、类的定义与使用(4学时)----------------thirdclass

1、实验目的:

(1)掌握类的定义和使用

(2)掌握类的定义和对象的声明

(3)复习具有不同访问属性的成员的访问方式。

(4)观察构造函数和析构函数的执行过程。

(5)学习类的聚集使用方法。

2、实验任务

(1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。

其中rank为枚举类型CPU_Rank,定义为enumCPU_Rank={P1=1,P2,P3,P4,P5,P6,P7},frequency为单位为MHz的整型数,voltage为浮点型的电压值。

观察构造函数和析构函数的调用顺序。

(2)定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。

(3)设计一个用于人事管理的People(人员)类。

考虑到通用性,这里只抽象出所有类型人员都具有的属性:

number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。

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

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

要求包括:

构造函数和析构函数、拷贝构造函数、内联成员函数。

3、实验步骤

定义枚举类型CPU_Rank,例如enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。

在主程序中定义一个CPU类的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。

程序名:

lab3_1.cpp。

实验四类的定义与应用2(4学时)------fourthclass

一、实验目的:

通过例题程序的阅读分析,加深理解构造函数、拷贝构造函数的意义及应用方法,以及参数传递的不同方法的理解。

二、实验要求:

阅读程序,观察程序的输出,给出程序的注释,并解释不同输出的原因。

提交实验报告时,只要求打印main函数部分。

三、实验内容:

仔细阅读下面的三个例程,分析其输出结果,并指出输出结果不同的原因。

例程1、Passingobjectsbyreference.

1:

//Listing9.10

2:

//Passingpointerstoobjects

3:

4:

#include

5:

6:

classSimpleCat

7:

{

8:

public:

9:

SimpleCat();//constructor

10:

SimpleCat(SimpleCat&);//copyconstructor

11:

~SimpleCat();//destructor

12:

};

13:

14:

SimpleCat:

:

SimpleCat()

15:

{

16:

cout<<"SimpleCatConstructor...\n";

17:

}

18:

19:

SimpleCat:

:

SimpleCat(SimpleCat&)

20:

{

21:

cout<<"SimpleCatCopyConstructor...\n";

22:

}

23:

24:

SimpleCat:

:

~SimpleCat()

25:

{

26:

cout<<"SimpleCatDestructor...\n";

27:

}

28:

29:

SimpleCatFunctionOne

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

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

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