面向对象程序设计实验教学大纲由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“电路分析实验教学大纲”。
《面向对象程序设计》
实验指导书
《面向对象程序设计实验》课程组
目录
实验预备 实验环境和工具使用,多文件应用程序的开发过程 实验一 类与对象
实验二 实验三 实验四 实验五 实验六 实验七 I/O实验八
构造函数、析构函数 继承-单继承 继承-多继承
多态-运算符重载
多态-虚函数 流与文件 模板
实验预备 实验环境和工具使用 多文件应用程序的开发过程
一、实验目的与要求
Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率,本实验通过学习Visual C++ 6.0界面的常用组成情况,并学习各种常用的窗口、菜单、按钮的意义和功能,并通过一些简单的程序设计,目的是使学生对用户界面、菜单和工具栏有一个全面的了解并掌握主要菜单命令。
了解Visual C++集成开发环境的界面组成; 理解菜单命令的含义 掌握“New:”菜单命令、“Breakpoints”菜单命令、“Build”菜单命令、“Source Brower”菜单命令、工具栏的定制和修改、联机帮助。 简单的程序设计
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤 1.上机实验内容
Visual C++集成开发环境的用户界面识别; 新文件、新工程项目、工作区的创建; 设置、查看和删除断点; 编译和运行程序; 浏览资源信息;
工具栏的定制和修改; 联机帮助的使用;
熟悉Visual C++编写控制台模式程序的方法; 上机输入例题,调试并运行,并观察结果; 上机编写一个程序
实验1调试并编译程序。
在Visual C++下,编写控制台模式的程序和在DOS下编写程序相似,具有简单方便的特点,一般用于后台程序的编写。控制台模式下程序的编写有两种方法,一是创建一个C++源程序文件,二是创建一个控制台模式的工程。
⑴ 创建一个C++源程序文件
① 启动Visual C++,单击“File”菜单下的“New”菜单命令,出现“New”对话框。然后选择“Files”选项卡,在此选项卡的左侧,单击“C++ Source Files”:在选项卡的右侧,选择源程序存放的位置(location)以及源程序文件名(File),然后单击【OK】按钮。注意C++源程序文件的扩展名为.cpp。
② 在编辑区输入源程序,程序内容如下:
#include void main(){ for(int i=0;i键或工具栏中的(Build)按钮或者选择“Build”菜单命令,系统提示是否创建一个默认的工程工作区,单击【是】按钮即可。④ 系统开始编译源程序并链接相应的文件,如果没有错误则在集成开发环境下方的状态栏中出现下列提示“0error(s),0warning(s)”,此时可以按+键或按下状态栏中的按钮或者选择“Build”菜单的“Excute 1_1.exe”运行程序,然后观察程序运行结果。用户也可以在DOS(Windows98)下或控制台模式下(Windows2000或Windows XP)直接键入文件名“1_1.exe”也可以运行程序。⑵创建一个控制台模式的工程
① 启动Visual C++,单击“File”菜单下的“New”菜单命令,出现“New”对话框。然后选择“Projects”选项卡,在此选项卡的左侧,单击“Win32 Console Application”;在选项卡的右侧,选择工程文件存放的位置(location)以及工程文件名(Project Name)。然后单击【OK】按钮。
② 在“Win32 Console Application-Step 1 of 1”对话框中选择应用程序的类型“An empty project”,单击【Finish】按钮。③ 在集成开发环境的左侧单击“File View”属性页,右键单击“Source Files”,选择“Add Files to Folder„”。在“文件名”中填入文件名,此时也可以选择存在的文件。
④ 此时在“Source Files”左侧出现一个加号,单击加号,出现新的源程序文件“1_1.cpp”,双击此文件,在集成开发环境的右侧输入例1_1.⑤ 按照创建一个C++源程序文件的第④个步骤编译和运行程序。
图1-1 向工程中添加源程序文件
图1-2 选择添加的源程序文件的文件名与类型
实验一 类与对象
一、实验目的与要求
(1)掌握类和对象的概念、定义和使用方法。(2)掌握不同特性对象成员的访问方法
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤
(1)定义一个描述学生类,数据成员包括:姓名、性别、年龄;成员函数包括:输出各个数据成员的值,设置各个数据成员的值。
(2)求点到直线的距离。定义一个点类Point,数据成员包括:坐标点。成员函数包括:设置各个数据成员的值的构造函数Point(), 取得坐标值的函数Getx(),Gety(),设计一直线类Line,数据成员包括:直线系数a,b,c;成员函数包括:取得系数的函数Geta(),Getb(),Getc();构造函数Line();
• 说明:
• d=|a*x0+b*y0+c|/sqrt(a*a+b*b)
实验二 构造函数与析构函数
一、实验目的与要求
1.掌握构造函数和析构函数的使用方法。2.掌握静态成员的使用方法。3.掌握友员的使用方法。
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤
(1)写出下列程序的执行结果,然后上机进行验证。用VC6的Debug的功能跟踪构造函数、析构函数和成员函数的执行顺序。#include cla TEST {public: TEST(){ cout
x = 2;y = 50;z = 9;} TEST(int a,int b,int c){
cout
x = a;y = b;z = c;} void display(){
cout
if(a>b)return a;else return b;} ~TEST(){
cout
cout
void main(){ TEST obj1;obj1.display();TEST obj2(33, 20, 80);obj2.display();}(3)静态成员练习:书例子 cla tc {
(4)友元练习:书例子
实验三 继承-单继承
一、实验目的及要求
1、掌握继承、基类和派生类的概念。
2、掌握初始化基类成员的方法。
3、掌握派生类对基类的继承。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
• 要求:设计点类、圆类和圆柱类,其中,圆类继承点类,圆柱类继承圆类。求:圆面积。圆柱表面积、体积。• 圆的面积:S=PI*R*R • 周长:C= 2*PI*R • 圆柱表面积:A=2*PI*R*H+2*PI*R*R • =C*H+2*S • 圆柱体积: V=PI*R*R*H =S*H
• cla Point //点类 • { • protected: • double x,y;• public: • Point(double x0,double y0); double Area();
• };• cla Circle:public Point { //圆类 • protected: • double r;//半径 • public: • Circle(double x0,double y0,double radius)• double Area()//计算圆的面积 •
• };• cla Cylinder: public Circle { //圆柱体类 • double h;//高度 • public: • Cylinder(double x0=0,double y0=0,double height=0){ •
• double Area()//计算圆柱体的表面积 •
• double Volume()//计算圆柱体的体积 • } • };
思考:点,矩形,立方体?
radius=0, double
实验四 继承-多继承
一、实验目的及要求
1、掌握继承、基类和派生类的概念。
2、掌握初始化基类成员的方法。
4、掌握派生类对基类的继承。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1阅读程序,写出实验结果。
#include “stdafx.h” #include “iostream.h” cla BASE1 {public: void show_i(){ cout
j=y;} };int main(int argc, char* argv[]){ DERIVED obj;obj.set(5,7);obj.show_i();obj.show_j();return 0;} 2 书上作业。Student,worker,s_w.•
实验五 运算符重载
一、实验目的及要求
1、掌握用成员函数重载运算符的方法。
2、掌握用友元函数重载运算符的方法。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1、定义一个复数类,通过重载运算符:“ *”,“/”,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
分析:两复数相乘的计算公式为:(a+b i)*(c+d i)=(ac-bd)+(ad+bc)i 两复数相除的计算公式为:(a+b i)/(c+d i)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i2、定义一个分数类,通过重载运算符:“ *”,“/”,直接实现二个分数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。
实验六 多态性-虚函数
一、实验目的及要求
5、学习虚函数和纯虚函数的定义与使用方式。
6、理解抽象类的概念,学习如何用指针指向其他的派生类,实现多态性。
7、掌握抽象类的定义与使用方式,并注意指针的用法。
7、学习如何使用虚函数、纯虚函数、抽象类和实现类的多态性。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容及步骤
1、虚函数的简单使用。
# include cla base { public: virtual void fh(){cout « “In base cla n ”;} };
cla subcla: public base { public: virtual void fn(){ cout « “In subcla n ”;} };
void test(base &b){ b.fn();} void main(){ base be;subcla sc;cout« “ Calling test(bc)n ”;test(bc);cout« “Calling test(sc)n ”;test(sc);}
2、定义一个从正方形、球体和圆柱体的各种运算中抽象出一个公共基 container类,在其中定义表面积和体积的纯虚函数,分析:
定义一个派生于container类的正方体类cube,在类中都具有求表面积的和体积的重定义的成员函数。定义一个派生于container类的球体类sphere,在类中都具有求表面积和体积的重定义的成员函数。
定义一个派生于container类的圆柱体类cylinder,在类中都具有求表面积和体积的重定义的成员函数。
实验八 模板
一、实验目的及要求
1.了解函数模板、类模板与模板函数、模板类的关系; 2.熟悉函数模板、类模板的声明与实例化过程; 3.掌握应用模板进行的程序设计
二、实验设备与平台
实验设备要求每个学生一台电脑,其中运行C程序环境为VC 6.0系统。
三、实验内容及步骤
模板的概念:
若一个程序的功能是对某种特定的数据类型进行处理,则将所处理的数据类型说明为参数,就可把这个程序改写为模板。模板可以让程序对任何其他数据类型进行同样方式的处理。
C++程序由类和函数组成,模板也分为函数模板(function template)和类模板(cla template)。因此,可以使用一个带有多种不同数据类型的函数和类,而不必显式记忆针对不同的数据类型的各种具体版本。
函数模板的一般定义形式是: template 返回类型 FunctionName(形式参数表){ //函数定义体 } 其中的类型形式参数表可以包含基本数据类型,也可以包含类类型。如果是类类型,则须在前面加上 cal。
这样的函数模板定义,不是一个实实在在的函数,编译系统不为其产生任何执行代码。该定义只是对函数的描述,表示它每次能单独处理在类型形式参数表中说明的数据类型。当编译系统发现有一个函数调用: FunctionName(实在参数表);将根据实在参数表中的类型,确认是否匹配函数模板中对应的形式参数表,然后生成一个重载函数。该重载函数的定义体与函数模板的函数定义体相同,而形式参数表的类型则以实在参数表的实际类型为依据。该重载函数称为模板函数(template function)。
注意:函数模板与模板函数的区别在于,函数模板是模板的定义,定义中用到通用类型参数。模板函数是实实在在的函数定义,它由编译系统在碰见具体的函数调用时所生成,具有程序代码。
实验1:用函数模板方法编写程序,对给各种不同类型的三个数分别求最大数。要求:编程序上机通过,写出运行结果。
实验2: 用函数模板方法编写程序,对给各种不同类型的两个数的和。
要求:编程序上机通过,写出运行结果。
实验七 I/O流与文件
一、实验目的与要求
(1)掌握流的概念。
(2)掌握文本文件和二进制文件的使用方法。
二、实验设备与平台
1、硬件环境:微型计算机,2、软件环境:Visual C++ 6.0;
三、实验内容与步骤:
(1)#include void main(){ double values[ ]={1.44,36.47,625.7,4096.24};for(int i=0;i
cout #include void main(){ double values[ ]={1.44,36.47,625.7,4096.24};char*names[ ]={“Rose”,“John”,“Alice”,“Mary”};for(int i=0;i
(3)建立一个文本文件“textfile.txt”(内容由读者选定),然后显示该文件,(4)建立若干个结构体类型的学生数据。要求
(1)键盘输入学生的信息,学生的属性包括学号、姓名和成绩,(2)用文件流中write函数将学生的信息写入文件D:student.dat(3)将student.dat中所有的数据读到内存中并显示输出在屏幕上。(10分)编写程序上机完成如下工作: Struct student {
Int num;Char name[20];Float score;}stu[10];Main(){ //用键盘输入
For(int i=0;i>。。。。//写入文件中
Ifstream ifile(“d:student.dat”,ios::binary);//建立文件,并打开 if(!ifile.fail())//异常处理 { cerr
For(int i=0;i
Ofstream ofile(“d:student.dat”,ios::binary);For(int i=0;i
Cout
实验六 综合应用程序一
一、实验目的本实验是对前面所学知识的总结,通过一个比较完整的应用程序的设计,将学过的知识连贯起来,掌握开发一个实际应用程序的步骤,同时学会使用开发工具实现界面友好的应用程序。并通过本实验,掌握如何运用面向对象技术对具体的应用系统进行分析和设计。
二、基本知识点
1、类和对象的定义、对象的初始化和使用
2、面向对象的继承机制
3、虚函数与多态性
4、运算符重载
5、文件的使用
6、算法的使用
三、基本要求
1、理解面向对象的特性
2、掌握面向对象程序设计的开发方法
3、有一定的分析问题和解决问题的能力
4、根据学过的知识点,充分利用已有的开发工具和素材,使程序编写具有更高的效率,能真正地解决实际问题。
四、实验内容:
可以在多个题目中选择一个:
1、编写一本通信录
2、模拟简单计算器
3、简单的管理系统的设计:如人事、工资、学生成绩等。(要求部分功能实现)。
五、学生实验报告要求
1、实验步骤
1)设计确定类的结构及各类之间的关系,注意成员变量和函数的性质(共有、私有或保护),哪些函数需要动态(定义为虚拟函数)。
2)创建系统项目(解决方案, Project)。
3)按上述结构定义各类,在构造函数中对成员变量进行初始化。4)定义各类中的成员函数 5)对用到的算法进行描述
2、完成编写相关实验代码
3、对实验结果进行分析
4、对本次实验要有总结
注意:要求在系统设计阶段对数据结构(主要是类的结构及类之间的联系)进行分析研究,充分利用面向对象的特性,使类结构尽可能合理和高效。
《面向对象程序设计实验》课程教学大纲第六次实验: 友元的使用方式1.学时:2课时; 2.实验类型:验证性实验 3.实验目的:(1)了解友元机制的由来和本质; (2)理解友元机制的主要作用;(3)掌握友......
《面向对象程序设计方法》实验教学大纲(计算机科学与技术本科专业使用)一、教学目标通过该实验课,学生应在熟练掌握过程化程序设计方法的基础上,领会面向对象程序设计及类的封装......
《面向对象程序设计》实验教学大纲 课程总学时:64学分:4实验学时:16实验个数: 6个实验学分:1分 课程性质:专业必修课适用专业:计算机类专业 教材及参考书:《C++语言程序设计(第四版)》......
《面向对象程序设计》教学大纲课程名称:面向对象程序设计 英文名称:Object Oriented Programming) 学分:2 总学时:36 实验(上机)学时: 8 开课专业:电子商务专业一、本课程的性质、目......
《面向对象程序设计》教学大纲课程名称:信息内容安全 课程代码:042504 总 学 时:64 学分:2课程类型:专业必修课 适用专业: 信息安全专业 制 订 人:徐雪飞 审 定 人:肖文 制订日期:20......