《面向对象程序设计》实验指导书实验1和2.docx
《《面向对象程序设计》实验指导书实验1和2.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验指导书实验1和2.docx(9页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计》实验指导书实验1和2
面向对象程序设计(C++)
实验指导书
邵阳学院信息工程系
2012年9月
一、课程简介
《面向对象程序设计》是网络工程专业本科生的一门必修课程。
面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。
它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。
本课程主要介绍面向对象程序设计的方法和C++语言的基本概念。
以C++语言中的面向对象机制为主。
学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。
二、实验教学目的及要求
目的:
通过实验,加深对程序实例和相关练习的理解,使学生逐步掌握C++的面向过程和面向对象的功能,并熟练使用VisualC++6.0集成开发环境,编写、调试、运行C++程序。
要求:
1.自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯。
2.独立完成所布置习题。
为保证尽量在统一安排的上机时间内编译运行通过程序,建议事先设计好程序。
三、实验项目设置表
序
号
实验名称
实验
学时
仪器
套数
每套
人数
实验
要求
实验
类型
面向专业
1
C++对C的扩充
2
32
1
选做
验证性
网络工程
2
类和对象
(一)
2
32
1
必做
验证性
网络工程
3
类和对象
(二)
2
32
1
选做
设计性
网络工程
4
派生类
2
32
1
选做
设计性
网络工程
5
虚函数
2
32
1
选做
验证性
网络工程
6
多态性
2
32
1
选做
设计性
网络工程
7
函数重载
2
32
1
必做
验证性
网络工程
8
运算符重载
2
32
1
选做
验证性
网络工程
9
函数模板与类模板
2
32
1
选做
验证性
网络工程
10
数据流的输入输出
2
32
1
选做
验证性
网络工程
11
文件的输入输出
2
32
1
必做
验证性
网络工程
实验1C++对C的扩充
实验目的及要求
1.熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
2.熟悉C++的运算符、表达式、语句的使用规则。
3.掌握变量命名规则,学会变量的定义和使用。
4.掌握函数的编写方法和基本规则。
实验内容
1.熟悉用VisualC++6.0创建控制台应用程序
2.编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。
3.输入两个整数,将它们按由大到小的顺序输出,要求使用变量的引用。
请总结使用引用时要注意什么问题。
主要仪器设备
电脑一台,安装VisualC++6.0
实验步骤
一、使用VisualC++6.0创建控制台应用程序
1.进入和退出VisualC++6.0集成开发环境
启动并进入VisualC++集成开发环境有至少有3种方法:
(1)选择“开始”菜单中的“程序”,然后选择MicrosoftVisualStudio6.0级联菜单,再选择MicrosoftVisualC++6.0。
(2)在桌面上创建MicrosoftVisualC++6.0的快捷方式,直接双击该图标;
(3)如果已经创建了某个VisualC++工程,双击该工程的dsw(DevelopStudioWorkshop)文件图标,也可进入集成开发环境,并打开该工程。
选择File|Exit菜单,可退出集成开发环境。
2.创建一个控制台应用程序工程。
(1)进入VisualC++集成开发环境后,选择File|New菜单,弹出New对话框,单击Projects标签,打开其选项卡,在其左边的列表框中选择Win32ConsoleApplication工程类型,在Projectname文本框输入工程名,在Location文本框输入工程路径,单击OK按钮,如图1.1所示。
图1.1创建新的应用程序界面
(2)在弹出的对话框(如图1.2所示)中,选择Anemptyproject,单击Finish按钮。
图1.2 创建Win32ConsoleApplication
(3)此时出现NewProjectInformation框,此对话框提示用户创建了一个空的控制台应用程序,并且没有任何文件被添加到新工程中,此时,工程创建完成。
3、程序的编辑、编译、建立、执行。
(1)选择File|New菜单项,出现New对话框,打开Files选项卡,在列表框中选择C++SourceFile,在File文本框中输入文件名,选中AddtoProject复选框,然后单击OK按钮,打开源文件编辑窗口,在其中输入源代码。
对于已经存在的源文件,选择Project|AddtoProject|Files…菜单项,在随后打开的插入文件对话框中选择待添加文件,按OK添加进工程。
(2)选择Build|Compile菜单项,即可编译源文件,系统会在Output窗口显出错误(Error)信息以及警告(Warning)信息。
当所有Error改正后,可得到目标文件(.obj)。
(3)选择Build|Build菜单项,连接并建立工程的EXE文件,得到可执行文件(.exe)。
这时编译器可能会给出连接错误(LinkingError)。
产生连接错误的原因可能是缺少所需要的库文件或目标文件,或程序中调用的外部函数没有定义等,只要补充相应文档再重新建立即可。
(4)选择Build|Execute菜单项,执行工程文件,会出现一个类似DOS操作系统的窗口,此时可以进行数据的输入和输出。
二、编程练习
1.编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。
参考程序如下:
#include
#include
usingnamespacestd;
intmain()
{
stringfirstname;
cout<<"Pleaseenteryourfirstname:
"<cin>>firstname;
cout<<"Hello"<<<"...andgoodbye!
"<return0;
}
2.输入两个整数,将它们由按由大到小的顺序输出,要求使用变量的引用。
请总结使用引用时要注意什么问题。
参考程序如下:
#include
usingnamespacestd;
intmain()
{
voidchange(int&,int&);
inta,b;
cin>>a>>b;
if(a
cout<<"max="<return0;
}
voidchange(int&r1,int&r2)
{
inttemp;
temp=r1;
r1=r2;
r2=temp;
cout<}
实验2类和对象
(一)
实验目的及要求
1.掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
2.初步掌握用类和对象编制基于对象的程序。
3.学习检查和调试基于对象的程序。
主要仪器设备
电脑一台,安装VisualC++6.0
实验内容
1.分别给出如下3个文件:
(1)含类定义的头文件student.h
//student.h
classStudent
{public:
voiddisplay();
//①
private:
intnum;
charname[20];
charsex;
};
(2)包含成员函数定义的源文件student.cpp
//student.cpp
#include"student.h"//在此文件中进行函数的定义
#include
usingnamespacestd;//不要漏写此行
voidStudent:
:
display()
{cout<<"num:
"<cout<<"name:
"<cout<<"sex:
"<}
//②
(3)包含主函数的源文件main.cpp
//main.cpp
#include
usingnamespacestd;
#include"student.h"
intmain()
{Studentstud;
//③
stud.display();
return0;
}
请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value。
上机调试并运行。
参考语句:
1voidset_value();
②voidStudent:
:
set_value()
{cin>>num;
cin>>name;
cin>>sex;
}
③stud.set_value();
2.需要求3个长方体的体积,请编一个基于对象的程序。
数据成员包括length(长)、width(宽)、height(高)。
要求用成员函数实现以下功能:
(1)由键盘输入3个长方体的长、宽、高;
(2)计算长方体体积;
(3)输出3个长方体的体积。
请编程序,上机调试并运行。
参考程序
#include
usingnamespacestd;
classBox
{public:
voidget_value();
floatvolume();
voiddisplay();
public:
floatlengh;
floatwidth;
floatheight;
};
voidBox:
:
get_value()
{cout<<"pleaseinputlengh,width,height:
";
cin>>lengh;
cin>>width;
cin>>height;
}
floatBox:
:
volume()
{return(lengh*width*height);}
voidBox:
:
display()
{cout<intmain()
{Boxbox1,box2,box3;
box1.get_value();
cout<<"volmueofbax1is";
box1.display();
box2.get_value();
cout<<"volmueofbax2is";
box2.display();
box3.get_value();
cout<<"volmueofbax3is";
box3.display();
return0;
}
未完待续……………………………………………………………………