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

合集下载

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

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

实验一熟悉Visual Basic集成开发环境一、实验目的1.了解Visual Basic语言的功能特点。

2.熟悉Visual Basic的开发环境。

3.掌握建立、编辑和运行一个简单的VB应用程序的全过程。

二、实验内容创建一个“标准EXE”类型的应用程序。

要求学生建立、编辑、调试、运行和保存简单的VB程序。

三、实验步骤1.熟悉Visual Basic的开发环境。

(1)定制第一个开发环境。

1)单击“工程窗口”、“属性窗口”、“窗体布局窗口”及“工具箱窗口”右上角的关闭按钮2)单击Form,将Form窗口放到最大。

(2)定制第二个开发环境。

1)选择“视图”菜单中的“工程资源管理器”选项,显示“工程资源管理器”窗口。

2)选择“视图”菜单中的“属性窗口”选项,显示“属性窗口”。

3)选择“视图”菜单中的“窗体布局窗口”选项,显示“窗体布局窗口”。

4)选择“视图”菜单中的“工具箱”选项,显示“工具箱”窗口。

5)将“工程资源管理器”、“属性窗口”、“窗体布局窗口”、“工具箱”四个窗口用鼠标拖动到合适的位置。

(3)增加窗体。

单击“工程”菜单中的“添加窗体”选项,或者在“工程资源管理器”中的“工程”图标上单击鼠标右键,系统弹出一个快捷菜单,选择“添加窗体”选项,将在Form1的基础上添加一个窗体Form2。

(4)增加标准模块。

单击“工程”菜单中的“添加模块”选项,可增加一个标准模块Module1,再单击一次增加第二个便准模块Module2;或者在“工程资源管理器”中的“工程”图标上单击右键,系统弹出一个菜单,将鼠标移到“添加”菜单,选择“添加模块”选项,将在工程1种添加一个标准模块Module1,在选择“添加模块”选项,将在工程1种添加第二个标准模块Module2。

(5)增加类模块。

单击“工程”菜单中的“添加类模块”选项,或者在“工程资源管理器”中的“工程”图标上单击鼠标右键,系统弹出一个菜单,将鼠标移到“添加”菜单,选择“添加类模块”选项,将在工程1种添加一个类模块Class1。

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

《面向对象程序设计》实验指导书(实.doc
{ int i;float sum=0;
m=n;
①;
aver=sum/m;
}
void score::set_score(float x[],int n) //提供成绩
{ int i;float sum=0;
m=n;
②;
aver=sum/m;
}
void score::print_score(void) //输出成绩、平均成绩
score(void); //无参构造函数
score(float x[],int n); //构造函数重载——初始化成绩
void set_score(float x[],int n); //提供成绩
float get_score(int i) //得到第i科成绩
{return sc[i];}
float get_aver(void) //得到平均成绩
③在实际应用中,在定义类时通常应定义一至多个构造函数(重载),以对各数据成员进行初始化;如果不给出构造函数,系统将自定义一个构造函数。
④构造函数可以可以带参数,也可不带任何参数(称无参构选函数),还可以使用缺省参数。
⑤不能象普通成员函数一样单独调用。
2.析构函数
⑴析构函数的定义
格式:
~类名(void)
③默认拷贝构造函数是一种浅拷贝,当在类中定义有指针数据成员,用new分配内存空间时,通常应显示定义相应的拷贝构造函数。
㈡对象数组与对象指针
1.对象数组
⑴可以定义对象数组处理多个对象。
⑵可以用缺省参数构造函数为对象数组赋初值。
2.对象指针
可以使用指针来使用对象或对象数组。方法:
⑴定义对象指针;
⑵将指针指向某一对象(或对象数组);

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

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

《面向对象程序设计》实验指导书2013.11.13目录实验1 VC++ 6.0开发环境应用入门实验2 C++简单程序设计实验3 函数的应用实验1 VC++ 6.0开发环境应用入门一、实验目的(1)了解Visual C++ 6.0的特点。

(2)熟悉Visual C++ 6.0的开发环境。

(3)学习用Visual C++ 6.0编写标准的C++控制台程序。

二、实验任务使用Visual C++ 6.0建立一个非图形化的标准C++程序,编译、运行以下程序:#include <iostream>using namespace std;int main(){cout<<"Hello! \n";cout<<"Welcome to C++! \n";}三、实验步骤1. 启动Visual C++ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual C++ 6.0| Microsoft Visual C++ 6.0,显示Visual C++ 6.0开发环境主窗口。

2. 创建一个项目单击File菜单中的New选项显示New(新建)对话框。

单击Projects标签,在Projects(项目)选项卡中,选择Win32 Console Application(Win32控制台应用程序)。

在Location(位置)文本框中指定一个路径,在Project Name(项目名称)文本框中为项目输入一个名字“lab1_1”,单击OK(确定)按钮。

在弹出Win32 Console Application-Step 1 of 1对话框中选择An empty project单选项,然后单击Finish(完成)按钮。

最后在New Project Information 对话框中单击OK按钮,完成项目的建立。

3. 建立C++源程序文件选择菜单命令Project | Add to Project | New对话框。

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

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

面向对象程序设计实验指导书目录前言: Visual C++实验环境介绍实验一、VC集成环境及C++程序的输入、调试和运行实验二、类和对象程序设计实验三、继承与派生程序设计实验四、类模板程序设计实验五、多态性程序设计实验六、文档/视图结构程序设计1实验七、文档/视图结构程序设计2实验八、图形设备接口和资源程序设计实验九、对话框程序设计实验十、控件程序设计实验十一、文档读写与打印程序设计实验十二、多文档界面程序程序设计前言:Visual C++实验环境介绍一、Visual C++简介Visual C++是Microsoft公司的Visual Studio开发工具箱中的一个C++程序开发包。

VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC++, Visual Basic, Visual Foxpro, Visual InterDev, Visual J++以及其他辅助工具,如代码管理工具Visual SourceSafe和联机帮助系统MSDN。

Visual C++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。

从最早期的1.0版本,发展到最新的6.0版本,Visual C++已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。

最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。

Visual C++一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。

实验中可以使用这三个版本的任意一种。

Visual C++集成开发环境(IDE)集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。

Visual C++软件包中的Developer Studio 就是一个集成开发环境,它集成了各种开发工具和VC编译器。

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

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

《面向对象程序设计》实验指导书课程代码:04420280适用专业:计算机科学与技术、网络工程、数字媒体技术制定人:汪海鹰计算机学院2015 年9 月前言 (2)实验一 C++基础 (4)实验二 C++对C的扩充 (8)实验三 C++输入输出流操作 (9)实验四类与对象初步 (11)实验五类与对象的使用 (13)实验六运算符重载 (15)实验七继承与派生 (16)实验八多态性与虚函数 (20)实验九课程期末综合设计 (21)一、说明本实验指导书根据《面向对象程序设计》教学大纲和实验大纲编写。

二、实验目的面向对象程序设计(Object Oriented Programming, OOP)方法是当前主流的程序设计方法,具有抽象性、封装性、继承性和多态性的特点。

本实验课程的目标是通过实验,使学生能够熟练使用Visual C++ 6.0 和VS2010开发平台,掌握面向对象的程序设计语言C++中的类、对象、继承、封装、多态等概念及使用方法,掌握虚函数、异常、I/O流处理等编程技巧,养成严谨的程序设计风格和习惯。

三、实验安排《面向对象程序设计》实验课程共有8个实验和1个期末课程设计,分配学时如下所示,共28个课时。

具体安排如下表所示:档、源代码并以小组形式答辩。

四、实验考核实验的考核形式以实验报告和期末课程设计为主,结合实验课程提问及考勤。

具体成绩评定原则为:单个实验成绩记分制为等级制,在计算总成绩时转换为百分制。

实验总成绩由6个课程实验的平均成绩及1个学期期末综合设计成绩组成,课程实验占80%,期末综合设计占20%。

实验成绩等级转换百分制的对照表如下表所示:实验一 C++基础-C++程序的运行环境和运行C++程序的方法一、实验目的⑴熟悉和理解C++语言中的数据类型、运算、表达式;⑵初步了解C++源程序的结构和特点;⑶能够掌握在一种以上的编译环境中调试和运行简单的C++程序。

二、实验内容和要求阅读下列代码,写出结果,并编写C++程序验证;⑴混合运算int a=1,b=3,i;①i=--a||++b,a+b;则a的值为,b的值为,i的值为。

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

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

《面向对象程序设计》实验指导书(新)《面向对象程序设计》实验指导书一、课程教学与实验教学计划学时比:48/16二、适用专业:信息管理与信息系统三、实验目的基本要求能够充分理解面向对象程序设计的思想和应用方法。

能够使用面向对象编程语言进行相应的程序设计和开发。

理解面向对象的基本思想、概念和特性以及面向对象的分析、建模、设计技术与方法。

掌握C++语言基本构成、类与对象、消息传递与函数、函数与运算符重载、继承性、多态性与虚拟函数、数据封装和隐藏及Windows 程序设计基础。

通过实验动手实践,使学生能够掌握面向对象程序设计的特征和基本思想,以及相应的具体实现和Windows程序设计基础知识。

四、实验内容实验一:循环控制(一)实验目的要求:熟悉VC++集成开发环境,学习使用控制台应用程序;创建工程,建立可执行文件并执行,观察结果。

掌握变量的声明和定义方法,掌握循环语句和条件语句的定义、作用和使用方法。

(二)实验设备:1.服务器;2.交换机;3.计算机。

(三)实验内容:1.编程求1!+2!+3!+4!+…+12!。

2.编程求所有的3位数素数,且该数是对称的。

所谓“对称”是指一个数,倒过来还是该数。

例如,375不是对称数,因为倒过来变成了573。

实验二:递归函数(一)实验目的要求:掌握函数的概念和使用方法,掌握递归函数的概念和使用方法。

(二)实验设备:1.服务器;2.交换机;3.计算机。

(三)实验内容:1.用递归函数来求1!+2!+3!+…+12!。

2.用递归的方法建立一个函数int fibonacci(int n),求Fibonacci数列中第n个数的值。

实验三:用气泡法排序(一)实验目的要求:掌握文件读写的方法,掌握递归函数的概念和使用方法。

(二)实验设备:1.服务器;2.交换机;3.计算机。

(三)实验内容:建立一个文件,文件中包含一系列数,用这些数构成一个数组,并按照数值,为这个数组从小到大排序,把排序结果输出到另一个文件中。

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

面向对象程序设计实验指导书
问题一:上述程序的输出结果是什么? 答: x1=6
x2=4 d1=5.6 d2=12 问题二:①处调用的是哪个函数? 答:调用的是 int max_def(int x, int y, int z) { int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } 问题三:②处的输出结果为什么是 d2=12,而不是 d2=12.3? 答:因为①处调用的是整型函数,d2 在此函数中被转换为整型,小数点后面被删除。 2.理解下面的程序并运行,然后回答问题。
7
} private:
int month; };
int day;
int year;
void main() {
CDate a; --------------------------.Set(10,15,2007) ; a.Print(); }
1.2 实验内容
1.2.1 程序阅读
1.理解下面的程序并运行,然后回答问题。
#include <iostream.h>
int max_def(int x, int y) {
return (x>y?x:y); } int max_def(int x, int y, int z) {
int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } double max_def(double x, double y) { return (x>y?x:y); } int main() { int x1 = 0;
试设计一个复数类该类有实部和虚部两个成员数据数据成员采用私有访问权限同时该类有两个公有成员函数分别用来设定数据成员的值和输出数据成员的值在主函数中分别采用对象方式指针方式和引用方式来调用该类的公有函数并设置和输出数据成员的值

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

面向对象程序设计实验指导书
测试系统:对系统进行测试,确保系统正常运行
设计系统架构:根据需求,设计系统的整体架构
编写代码:根据类结构,编写实现系统功能的代码
设计类结构:根据系统架构,设计系统的类结构
实现一个基于面向对象思想的数据库访问层
设计数据库表结构
创建数据库连接类
实现数据库操作类,包括增删改查等方法
编写测试代码,验证数据库访问层的功能
修复问题:根据定位的问题,修改代码,解决问题。
定位问题:如果程序输出不符合预期,需要根据日志和调试信息,定位问题的位置和原因。
04
实验总结
总结实验过程和结果
实验目的:掌握面向对象程序设计的基本概念和方法
实验内容:设计并实现一个简单的面向对象程序,包括类定义、对象创建、方法调用等
实验结果:程序能够正常运行,满足设计要求
03
实验步骤
设计类和对象
确定类名和属性
添加标题
设计类的方法
添加标题
创建对象并初始化属性
添加标题
调用对象的方法
添加标题
实现类的属性和方法
定义类:确定类的名称和属性
初始化属性:为属性赋值
实现方法:编写类的方法实现
调用方法:在主程序中调用类的方法
实现类的继承和多态
子类重写父类的方法
定义父类和子类
子类继承父类的属性和方法
使用多态性,实现子类方法的调用
测试和调试程序
编写测试用例:根据需求文档和设计文档,设计出能够覆盖所有功能点的测试用例。
优化程序:在测试和调试过程中,可能会发现一些可以优化的地方,可以根据实际情况进行优化。
回归测试:修复问题后,需要重新执行测试用例,确保问题已经被修复,并且没有引入新的问题。

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

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

《面向对象程序设计》实训一、实训目的:1.使学生进一步巩固《面向对象程序设计》课程中所学到的知识,熟练掌握并综合运用C++语言进行程序设计,增强实际编程能力,从而达到用C++语言进行中等难度程序开发的目标。

2.使学生掌握面向对象设计开发的基本思想和方法。

加强对VC++编程环境的使用能力,掌握VC++编程环境中的调试功能。

3.培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。

4.培养和提高学生的逻辑思维、抽象思维和统筹规划能力;培养学生独立完成程序设计开发的工作能力。

二、实训环境:1.操作系统平台:Windows 2000 / Windows XP2.程序设计平台:VC++ 6.03.其它应用软件:Word、Visio等三、实训基本要求:1.熟练掌握C++语言的各种语法成分;深入理解面向对象语言的各种概念,能够准确应用C++语言提供的编程机制,如:类的定义、类的继承、抽象类的定义、操作符的重载等。

熟练掌握多文件结构。

2.具备常用算法的设计能力,能运用面向对象方法,解决实际问题。

3.能熟练使用VC++编程环境,掌握VC++中的调试功能。

4.熟练掌握程序设计中多文件组织结构的编写方法。

5.实训选题要求实训题目可以是学生自选题目或教师指定题目。

学生自选题目必须写出开题报告,阐明题目内容和功能要求,经教师审核通过后方可作为正式选题。

6.课题规模要求(1)题目涉及的自定义基础类应不少于2个、必须有派生类。

(2)题目涉及的主要功能模块应有3-5个,或更多。

(3)数据的存储可直接存到内存或使用文件,也可以使用数据库。

(4)用户界面可以是命令行方式下(要求做成简易菜单形式),也可以采用图形界面,界面个数应不少于3个。

(5)每个实训题目的选择每班最多不超过5组同学。

7.分工与合作要求每个题目可由一或两个学生(教师规定)共同完成,每组组员之间必须要有明确的程序设计分工,并独立完成各自的设计任务,最后组内联调、共同整理项目文档。

《面向对象程序设计》(C++)实验指导书

《面向对象程序设计》(C++)实验指导书

实验 1 类和对象1.1实验目的和要求(1) 理解类和对象的概念,掌握声明类和定义对象的方法。

(2) 掌握构造函数和析构函数的实现方法。

(3) 初步掌握使用类和对象编制C++程序。

(4) 掌握对象数组、对象指针和string类的使用方法。

(5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。

(6) 掌握类对象作为成员的使用方法。

(7) 掌握静态数据成员和静态成员函数的使用方法。

(8) 理解友元的概念和掌握友元的使用方法。

1.2实验内容和步骤1.输入下列程序//test4-1.cpp#include<iostream>using namespace std;class Coordinate{ public:Coordinate(int x1,int y1){ x=x1;y=y1;}Coordinate(Coordinate &p);~Coordinate(){ cout<<”Destructor is calleded\n”;}int getx(){return x;}int gety(){return y;}private:int x,y;};Coordinate::Coordinate(Coordinate &p){ x=p.x;y=p.y;cout<<”copy-initialization Constructou is called\n”;}int main(){ Coordinate p1(3,4);Coordinate p2(p1);Coordinate p3=p2;cout<<”p3=(“<<p3.getx()<<”,”<<p3.gety()<<”)\n”;return(0);}(1)写出程序的运行结果。

copy-initialization Constructou is calledcopy-initialization Constructou is calledp3=(3,4)Destructor is callededDestructor is callededDestructor is callededPress any key to continue(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增添下述语句:cout<<”Constructor is called.\n”;写出程序的运行结果,并解释输出结果。

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

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

《面向对象程序设计》实训一、实训目的:1、学生进一步巩固《面向对象程序设计》课程中所学到的知识,熟练掌握C++语言程序设计,增强实际编程能力。

同时,加强对VC++编程环境的使用能力,掌握VC++编程环境中的调试功能。

从而达到用C++语言进行中等难度程序开发的目标。

2、学生掌握面向对象设计开发的基本思想和方法,培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。

3、培养和提高学生的逻辑思维、抽象思维和统筹规划能力,培养学生独立完成程序设计开发的工作能力。

为今后从事专业性软件开发工作打下基础。

二、实训环境:1、操作系统平台:Windows 98 / Windows 2000 / Windows XP2、软件开发平台:Visual C++ 6.04、其它应用软件:Microsoft Access / SQL Server ,Word等三、实训的基本要求1、实训选题要求实训题目可以是学生自选题目或教师指定题目。

学生自选题目必须写出开题报告,经教师审核通过后方可作为正式选题。

2、课题规模要求(1)题目涉及的自定义基础类应不少于3个、必须有派生类。

(2)题目涉及的主要功能模块应不少于6个。

(3)数据的存储可以使用数组,使用文件,也可以使用数据库。

(4)用户界面最好采用图形界面,界面个数不少于3个。

3、分工与合作要求每个题目由3个学生共同完成,每组的人数视题目规模由教师规定。

每组组员之间必须要有明确的分工,并独立完成各自的设计任务,最后组内联调、共同整理项目文档。

4、所创建的程序名、类名、文件名要求必须加上本人的姓名拼音。

5、实训内容要求在一周内完成。

晚交者扣3~5分,超过截止日期的实训成绩计为零分。

6、实训报告的具体要求请见后面的“实训报告格式要求”。

四、实训内容:实训题目一、模拟银行储蓄存取款系统请实现一个简单的银行储蓄系统,完成活期用户的存款和取款业务。

要求如下:1.实现描述银行的类,记录系统中现有哪些储户(提示:可用数组实现,但须注意判断数组越界的情况),该类中要求包含三个函数:(1)生成新储户的函数(2)按照账户删除储户的函数(3)按照账户查询储户的函数,要求显示查询结果。

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

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

实验一Visual C++/C++Builder初识与选择分支程序设计实验目的●了解Visual C++/C++ Builder的集成开发环境●初步掌握在VC++或C++ Builder中开发应用程序的一般步骤●初步掌握程序编辑、调试的基本方法●掌握单分支结构语句:if…●掌握双分支结构语句:if…else…●掌握多分支选择结构语句:switch…case…;实验示例[例1-1]在VC++开发环境中,编写一个计算三角形面积的C++程序,调试运行程序,运行时输入三角形的三条边。

实现步骤:1.启动Visual C++开发环境通过执行菜单“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++6.0”项,启动Visual C++开发环境。

2.编辑程序1)执行VC++菜单“文件”→“新建”项,打开新建对话框;2)在对话框中单击“文件”标签,在弹出的“文件”选项卡中单击“C++ Source File”选项;3)在“目录”文本框中输入或选择存放程序的文件夹,在“文件”文本框中输入程序文件名;4)单击“确定”按钮,系统打开文件编辑窗口,参照如下代码,编写计算三角形面积的源程序:#include <iostream.h>#inclkude <math.h>using namespace std;void main(){double a,b,c,s,area;cout<<”a,b,c? ”;cin>>a>>b>>c; // 键盘输入三角形三条边长s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<”area: ”<<area<<endl;}3.编译和链接程序1)执行VC++菜单“编译”项,屏幕出现“询问是否创建默认项目工作区”对话框;2)单击“是”按钮,出现“询问是否保存文件”对话框;3)单击“是”按钮保存文件后,系统开始对源程序进行编译。

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

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

《面向对象程序设计》实验指导书实验报告应包括的内容:班级,姓名,学号一、实验目的:二、实验内容:三、源程序四、实验结果一、实验基本步骤•打开Microsoft Visual C++ 6.0,选择[File] 一〉[New]—〉[File]—〉选择C++ Source File,在File里输入要保存的文件名;Location:选择要保存的文件路径,将默认的路径改为以自己名字命名的文件夹,建立一源程序文件。

如图1所示。

图1 建立源文件•按照所给的程序代码输入到计算机中,用[File] 一〉[Save All]存盘,或用存盘。

检查源程序,并编译运行,如图2所示。

编译过程中如有语法错误,可参考最下端提示信息。

如图3所示。

图2 保存、编译源程序图3 错误提示信息说明:在C++程序中如果使用了系统提供的一些功能(如cin和cout),就必须在程序的首部首先声明相关的包含这些功能的头文件(如iostream.h),否则,系统无法找到实现这些功能的代码。

在C++语言中一个头文件就是一个类库,类与类的预定义对象就包含在其中。

所以,在使用这些类库中所包含的预定义对象时,必须在程序首部加以声明。

注意:如运行完一个程序,再建立一个新的源程序时,可将以前运行完的程序注释掉,如图4所示。

如果不选用此方法,要重新建立源程序,应将当前工作区关闭,而不能只关闭当前源程序文件。

关闭工作区方法:[File]—〉Close Workspace。

如图5所示。

工作区关闭以后,再按开始的方式选择[File] 一〉[New]—〉[File]—〉选择C++ Source File。

图4 注释程序界面图5 关闭工作区界面实验内容实验一C++程序设计基础练习一、实验目的1、学习编写简单的C++程序,并掌握C++程序的基本格式与规范。

2、理解C++程序结构的特点。

3、学习C++程序基本的输入输出操作。

4、学习数据类型常量和变量以及修饰符的使用。

5、学习基本的函数定义与调用方法。

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

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

《面向对象程序设计》实验指导书第一部分实验教学大纲课程名称:面向对象程序设计实验一、课程简介及基本要求面向对象的程序设计是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。

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

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

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

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

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

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

三、主要仪器设备PC机器一台。

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

四、实验方式与基本要求要求把每次实验的程序文本和运行结果通过邮件方式发送给实验指导老师.五.考核与报告本课程实验考试方式是考查,按一般课程考试方式进行,主要内容包括实验操作和实验报告,实验成绩占该课程形成性考核成绩的30%。

实验报告的规范:实验完成后填写统一的实验报告,给出实验内容题目、年级、姓名、学号、指导教师、完成日期,并详细填写:实验目的、实验程序、实验结果及分析、存在的问题。

实验0、C++开发环境应用(课外实验 2学时)1、实验目的(1)了解C++开发工具的特点(2)熟悉C++开发环境(2)学习用C++编写标准的C++程序2、实验任务使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序:#include <iostream.h>void main(void){cout<<”Hello!\n”;cout<<”Welcome to C++!\n”;}3、实验步骤(1)启动Visual C++开发环境(2)创建一个项目a.单击File菜单中的New选项,显示示新建对话框b.选择Win32 Console Application(VC++)。

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

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

2021秋-《面向对象程序设计》-实验指导书《面向对象程序设计》实验指导书实验一:类的继承和封装1.1实验性质验证性实验(4学时)1.2实验目的Java是完全面向对象(OOP,Object Oriented Programming)的编程语言,任何程序都是基于类,Java中所有的代码都写于类的内部。

面向对象编写的程序则是由对象组成的,这些对象有自己的属性和能够执行的操作。

本实验目的在于通过编程和上机实验进一步理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法,了解类的继承性和多态性的作用。

深化类的定义,类的继承,及相关语法规则,深化对类成员的使用,理解类的封装。

1.3实验任务1) 2) 3) 4) 5) 6) 7) 8)观察简单类的运行过程体会类集成的机制以及思路查看高级类(抽象类)的使用方法编写一个复数类,实现复数的加、减、乘运算编写一个银行账户类,实现简单的存取编写一个矩形类,并由该类继承出方形类编写一个图形类,完成面积计算回答思考问题1.4实验准备将以下代码输入NetBeans中,若代码存在错误请进行修改,查看输出成果,并对各行语句进行解释,将解释内容和运行结果写入实验报告。

1)简单类示例//EmployeeTest.java import java.util.*; public class EmployeeTest{ public static void main(String[] args) { // 将三个员工对象的数据赋值给职工数组 Employee[] staff = new Employee[3]; staff[0] =new Employee(\张三\ staff[1] = new Employee(\李四\ staff[2] = new Employee(\王五\ for (int i = 0; i < staff.length; i++)staff[i].raiseSalary(5);//每个员工的工资增长5% for (int i = 0; i <staff.length; i++)// 打印输出员工信息 { Employee e = staff[i]; System.out.println(\姓名=\ + \工资=\ + \工作日期=\ } } } class Employee { private String name; private doublesalary; private Date hireDay; public Employee(String n, double s,int year, int month, int day) { name = n; salary = s; GregorianCalendar calendar = new GregorianCalendar(year, month - 1,day); // GregorianCalendar 计算月份从0开始hireDay = calendar.getTime(); } public String getName(){ return name; } public double getSalary() { returnsalary; } public Date getHireDay() { return hireDay; }public void raiseSalary(double byPercent) { double raise = salary *byPercent / 100; salary += raise; } } 2)类的继承 importjava.util.*; public class ManagerTest { public static void main(String[]args) { // 创建一个新的经理并设置他的奖金 Manager boss = newManager(\陈鹏\ 1987, 12, 15); boss.setBonus(5000);Employee[] staff = new Employee[3]; // 建立员工数组和经理一起填充staff[0] = boss; staff[1] = new Employee(\何恒\ staff[2] = newEmployee(\童同\ // print out information about all Employeeobjects for (int i = 0; i < staff.length; i++){ Employee e = staff[i]; System.out.println(\ +\ } } } class Employee { public Employee(String n, double s,int year, int month, int day) { name = n; salary = s; GregorianCalendar calendar = new GregorianCalendar(year, month - 1,day); // GregorianCalendar 方法计算月份从0开始 hireDay =calendar.getTime(); } public String getName() { returnname; } public double getSalary() { return salary; }public Date getHireDay() { return hireDay; } public voidraiseSalary(double byPercent) { double raise = salary * byPercent /100; salary += raise; } private String name; private doublesalary; private Date hireDay; } class Manager extends Employee { /**变量n是员工姓名变量 s t员工工资填充工龄的年、月、日 */public Manager(String n, double s, int year, int month, int day){ super(n, s, year, month, day); bonus = 0; } publicdouble getSalary() { double baseSalary = super.getSalary();return baseSalary + bonus; } public void setBonus(double b){ bonus = b; } private double bonus; } 3)类的高级属性:抽象类的使用 // Employee.java // 抽象类Employee public abstract class Employee{ private String firstName; private String lastName; // 构造函数public Employee( String first, String last ) { firstName = first;lastName = last; } // 返回姓 public String getFirstName(){ return firstName; } // 返回名 public String getLastName() { return lastName; } public String toString() { return firstName + ' ' + lastName; } // Employee抽象方法earnings(); //将被其每个子类以实例继承public abstract double earnings(); } // Boss 类是Employee继承 public final class Boss extends Employee { private double weeklySalary; // 经理Boss 类的构造函数 public Boss( String first, String last, double s){ super( first, last ); // call superclass constructor setWeeklySalary( s ); } // 经理Boss类的工资 public void setWeeklySalary( double s ) { weeklySalary = ( s > 0 ? s : 0 ); } // 确定Boss的薪水 public double earnings() { return weeklySalary; } // 打印姓名 public String toString() { return \经理: \ } } 1.5实验过程(1)定义一个复数类,可以通过构造函数给复数对象赋值,实部和虚部是该类的私有属性,必须有获取和修改属性的方法,并定义它与复数、实数相加和相减及复数间乘的方法。

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

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

《面向对象程序设计》实验指导书郭玉柱广东商学院信息学院二0一0 年十二月目录实验一 Java基础实验实验二 Java面向对象特性试验--Java中的类、对象和方法实验三类的继承、多态、接口、访问控制符与修饰符实验四 Java资源及其利用实验五 Java 语言的异常处理实验六输入输出流实验七图形用户界面设计实验八 Java Applet及多线程试验附录1 实验报告格式实验一 Java 基础实验一、实验目的与要求1. 学习编写简单的Java 程序。

2. 学习掌握Java 基本数据类型及其基本运算。

3. 学习掌握Java 的基本流程控制语句。

二、相关知识1. 了解JDK 的工作环境,以及如何使用JDK 进行编程。

2. 熟悉集成软件 eclipse3.5及其使用。

二、实验内容1. 编写Hello.java 程序并运行。

2. 用Java 语言编写一个应用程序在屏幕上输出1000之内的素数。

3. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,比如28=1+2+4+7+14。

编写一个应用程序在屏幕上输出1000之内的完数。

4. 求满足1!+2!+3!+ …+n!≤9999的最大整数n 。

5. 一个三位的整数如果它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比如 333173371++=,编写一个应用程序在屏幕上输出所有水仙花数。

6. 下面程序的输出结果是什么?实验二 Java面向对象特性试验-Java中的类、对象和方法一、实验目的与要求1. 掌握类的定义和使用。

2. 掌握对象的声明、创建和使用。

3. 掌握构造方法的定义和使用。

4. 掌握类方法(静态方法)和非类方法(非静态方法)的区别和使用。

5. 掌握成员变量和局部变量的区别和使用。

二、实验内容1. 编写一个Java程序,定义一个表示学生的类,类名Student,其成员变量有:学号、班级姓名、性别、年龄;成员方法:(1)获得班号(2)获得姓名(3)获得年龄(4)修改年龄;创建一个Student的对象,修改该对象的年龄,并输出该对象的年龄。

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

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

《⾯向对象程序设计》实验指导书《⾯向对象程序设计》实验指导书实验⼀ Java开发环境⼀、实验⽬的:1、熟悉JAVA开发环境(JBUILDER/JDK)2、认识Java程序结构。

⼆、实验内容:1、配置JDK,编译调试HelloWorld程序。

2、熟悉JAVA开发⼯具,编译调试HelloWorld程序。

三、实验要求:1、HelloWorld程序输出⼀条简单的问候信息;2、实验报告中对程序结构做出详细的解释;3、实验报告中给出配置JDK的步骤。

四、实验学时、性质:2学时、验证性五、实验步骤:1、进⼊Java编程环境;2、新建⼀个Java⽂件,命名为HelloWorld.java;3、定义主⽅法public static void main(String[ ] args);调⽤System.out.println()⽅法,使程序输出⼀条问候信息;4、编译运⾏程序,观察运⾏情况和输出结果。

(如果使⽤JDK环境,调⽤javac.exe和java.exe编译和执⾏程序)实验⼆类与对象⼀、实验⽬的:1、掌握类的定义与成员的封装。

2、掌握对象的创建,对象属性的访问和⽅法的调⽤。

3、掌握包的使⽤。

⼆、实验内容:1、⾃定义⼀个学⽣类。

2、导⼊并访问其他同学定义的学⽣类。

三、实验要求:2、实验报告中记录访问不同属性时编译器的反馈并分析原因。

四、实验学时、性质:3学时、验证性五、实验步骤:1、创建⼀个Java包,以⾃⼰的英⽂名字命名。

2、定义⼀个学⽣类,包含三个属性学号、姓名和性别,访问修饰符分别是private、⽆修饰符和public修饰符。

3、在另⼀个类中创建学⽣类的对象,分别设置三个属性的值,观察实验结果。

4、导⼊同学定义的学⽣类。

分别访问三个属性,观察实验结果。

实验三数据类型与数组⼀、实验⽬的:1、掌握数据类型与数组的定义、初始化与使⽤。

⼆、实验内容:1、查看⾃⼰名字的UNICODE编码。

2、转置⼆维矩阵。

三、实验要求:1、使⽤已知给定的数值初始化⼀个5X5的⼆维数组。

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

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

《面向对象程序设计》实验教学大纲一、大体信息二、实验安排三、实验目的、内容与要求实验一成立一个非图形化的C++程序(一)实验目的1.了解Visual C++的特点。

2.熟悉Visual C++的开发环境。

3.学习利用Visual C++编写标准的C++操纵台程序。

4.学会利用VC++开发环境中的debug调试功能。

(二)实验内容成立、编译和运行一个标准C++操纵台程序。

(三)实验要求1.成立一个标准C++操纵台程序。

2.学会编译、运行教材例2-1程序。

3.下课前完成实验内容,提交给教师检查。

实验二设计一个用于人事治理的People类(一)实验目的1.把握类的概念和利用;把握对象的声明和利用。

2.学会利用类的构造函数和析构函数。

3.学习类的组合利用方式。

(二)实验内容考虑到通用性,那个地址只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(诞生日期)、id(身份证号)等。

其中“诞生日期”概念为一个“日期”类内嵌子对象。

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

(三)实验要求1.程序中应包括——构造函数和析构函数、拷贝构造函数、内联成员函数、类的组合。

2.下课前完成实验内容,提交给教师检查。

实验三实现Client类(一)实验目的1.学习并把握类的静态成员的利用。

2.学习多文件结构在C++程序中的利用。

(二)实验内容概念字符型静态数据成员ServerName,保留其效劳器名称;整型静态数据ClientNum,记录已概念的客户数量;概念静态函数成员ChangeServerName( )改变效劳器名称。

(三)实验要求1.在头文件中概念类。

2.文件中实现类的概念,再添加文件,在其中概念main( )函数,测试Client 类。

3.下课前完成实验内容,提交给教师检查。

实验四实现Employee类(一)实验目的1.学习字符串数据的组织和处置2.把握指针的利用方式3.利用字符数组和标准C++库练习处置字符串的方式(二)实验内容1.声明一个Employee类,其中包括表示姓名、街道地址、城市和邮政编码等属性,包括change_name( )和display( )等函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》实验指导书课程代码:04420280适用专业:计算机科学与技术、网络工程、数字媒体技术制定人:汪海鹰计算机学院2015 年9 月前言 (2)实验一 C++基础 (4)实验二 C++对C的扩充 (8)实验三 C++输入输出流操作 (9)实验四类与对象初步 (11)实验五类与对象的使用 (13)实验六运算符重载 (15)实验七继承与派生 (16)实验八多态性与虚函数 (20)实验九课程期末综合设计 (21)一、说明本实验指导书根据《面向对象程序设计》教学大纲和实验大纲编写。

二、实验目的面向对象程序设计(Object Oriented Programming, OOP)方法是当前主流的程序设计方法,具有抽象性、封装性、继承性和多态性的特点。

本实验课程的目标是通过实验,使学生能够熟练使用Visual C++ 6.0 和VS2010开发平台,掌握面向对象的程序设计语言C++中的类、对象、继承、封装、多态等概念及使用方法,掌握虚函数、异常、I/O流处理等编程技巧,养成严谨的程序设计风格和习惯。

三、实验安排《面向对象程序设计》实验课程共有8个实验和1个期末课程设计,分配学时如下所示,共28个课时。

具体安排如下表所示:档、源代码并以小组形式答辩。

四、实验考核实验的考核形式以实验报告和期末课程设计为主,结合实验课程提问及考勤。

具体成绩评定原则为:单个实验成绩记分制为等级制,在计算总成绩时转换为百分制。

实验总成绩由6个课程实验的平均成绩及1个学期期末综合设计成绩组成,课程实验占80%,期末综合设计占20%。

实验成绩等级转换百分制的对照表如下表所示:实验一 C++基础-C++程序的运行环境和运行C++程序的方法一、实验目的⑴熟悉和理解C++语言中的数据类型、运算、表达式;⑵初步了解C++源程序的结构和特点;⑶能够掌握在一种以上的编译环境中调试和运行简单的C++程序。

二、实验内容和要求阅读下列代码,写出结果,并编写C++程序验证;⑴混合运算int a=1,b=3,i;①i=--a||++b,a+b;则a的值为,b的值为,i的值为。

②i=a--||(++b,a+b); 则a的值为,b的值为,i的值为。

③i=--a||(++b,a+b); 则a的值为,b的值为,i的值为。

④i=((--a||++b),a+b); 则a的值为,b的值为,i的值为。

⑵整形、字符型间的相互赋值char c; short a; unsigned short u_a;c=128; a=c; u_a=c; 则c的值为,a的值为,u_a的值为。

c=0501; a=c; u_a=c; 则c的值为,a的值为,u_a的值为。

⑶浮点型数据的赋值及精度int i;short j;char k;long l;float m;double n;n=50000.222233334445;i=n;j=n;k=n;l=n;m=n;则i的值为,j的值为,k的值为, l的值为,m的值为,n的值为。

三、操作步骤(以VC6.0++编译环境为例)⑴.新建一个win32 Console Application的工程:打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图1-1所示对话框,在右上角的工程下输入该工程的名称hello,并设置该工程所保存的路径,最后点击确定。

⑵.当确定后会出现选择工程类型的对话框,如图1-2所示:请选择一个空的工程,即第一个选项。

图1-2⑶.单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++ source file选项,并取名hello,如图1-3。

图1-3⑷确定后,就进入了源代码的编辑窗口,如图1-4所示:⑸.编辑好开始设置的源代码:进入了编译和调试阶段,请按如图1-5所示的第二个按钮,这个称作为构件,它的功能是先进行编译,同时如果编译成功的话自动建立EXE可执行文件,同时将可执行文件和编译和连接过程中的中间代码一起放置在debug文件夹中。

图1-5⑹.执行可执行文件,单击编译条上的第四个按钮,即惊叹号,如图1-5所示,对编译成功的程序进行执行。

(以VS2010编译环境为例)⑴. VS2010不能单独编译一个.cpp或者一个.c文件,这些文件必须依赖于某一个项目,因此必须首先创建一个项目。

有多种方法都可以创建项目,可以通过菜单:文件,新建,项目;也可以通过工具栏点击新建项目进行创建。

点击起始页面上面的新建项目,点击之后进入新建项目向导,上面选择Win32控制台应用程序,名称中输入HelloWorld点确定,接下来进入创建页面,在Win32应用程序向导的第一个页面直接点下一步即可,如下图1-6.图1-6⑵.右键单击项目名称,选择添加,新建项,在向导中选择代码:C++文件(.cpp),如下图1-7所示。

图1-7⑶.单击添加后,可在如下图1-8中进行代码的撰写工作。

图1-8⑷. 代码编写完毕,可使用图中的进行编译,或者快捷键Ctrl+F5。

结果如图1-9所示:图1-9四、实验分析代码分析:⑴混合运算:逗号运算符优先级最低;逻辑运算符是双目运算符,后部分不一定会执行;⑵整形、字符型间的相互赋值:按存储单元中的存储形式直接传送;若多字节复制到少字节,则低位复制,多出的高位舍弃;若少字节复制到多字节,则低位复制,高位根据少字节的最高位一致进行扩展;⑶浮点型数据的赋值及精度:常实数的存储形式为该编译系统支持的最高精度(一般为双精度);浮点型数据的输入和输出有精度和广度的限制,总体来说误差是必然的,准确是偶然的;浮点型数据赋值给整形或字符型数据,首先去掉小数部分,然后按照该整数在存储单元中的存储形式直接传送。

五、实验补充要求本实验为演示性,不需要撰写实验报告,学生按照3-4人分组,每组成员之间相互检查,教师抽查。

实验二 C++对C的扩充一、实验目的⑴了解在面向过程程序设计中C++对C功能的扩充与增强;⑵进一步熟练在不同系统和编译环境下编辑、编译和运行C++程序的方法;⑶进一步熟悉C++程序的结构和编程方法。

二、实验内容与要求本实验由4个小程序组成,要求如下:⑴编写一个程序,用来实现2个或3个正整数中的最大数。

①用不带默认参数的函数实现;②用带默认参数的函数实现。

对比两种方法,分析带默认参数的函数优点和应用场合,并分析本题中默认参数的取值应该在什么范围。

⑵编写一个程序,输入两个整数,将它们由大到小的顺序输出。

①使用指针方法;②使用变量引用方法。

对比两种方法,分析这两种方法的特点和使用技巧。

⑶有5个字符串,要求对它们由小到大的顺序排列,用string方法。

⑷编写一个程序,用同一个函数名对n个数据从小到大排序,数据类型可以是整形、单精度型和双精度型。

对比以下两种方法,分析这两种方法的特点和使用技巧。

①用重载函数实现;②用函数模板实现。

三.实验步骤(实验操作类似实验一的操作步骤)四、实验分析⑴有默认值的形参必须放在形参表的右边,不允许无默认参数值和有默认参数值的形参交错排列。

⑵用指针变量做形参,可将实参变量的地址传递给形参,在函数内用“*指针变量”的方式访问实参变量。

而引用变量是变量的别名,在调用函数时,用引用变量做的形参就成了实参变量的别名,在函数中用的形参名就是实参的别名,这样比用指针变量更直观、更方便。

⑶C++提供了字符串类类型string,实际上它不是C++的基本类型,它是在C++标准库中声明的一个字符串类,程序可以用它定义对象,但是需要在程序开始用包含语句把C++标准库的string头文件包含进来。

⑷用函数模板比用函数重载更方便,但是函数模板只适用于函数参数的个数相同而类型不同,并且函数体相同的情况,如果函数的参数个数不同,则不能用函数模板。

五、实验补充要求本实验为验证性,需要撰写实验报告,实验报告书写格式及要求见附件:《实验报告模板.doc》文档。

学生按照3-4人分组,每组成员之间相互检查,教师抽查。

实验三 C++输入输出流操作一、实验目的⑴掌握C++的3种输入输出方法:标准I/O,文件I/O和串I/O;⑵熟练使用多种输入方法;⑶熟练使用C++的格式输出二、实验内容与要求本实验由3个小程序组成,要求如下:⑴ASCII文件流的写操作编写代码,将实验1的输出结果存入文件中,要求该文件名为学号,扩展名为dat;⑵标准输入输出流及输入函数实现将学号、性别、姓名、年龄及班级输入到一个结构体中,结构体的定义如下所示。

要求结构体中的每个成员的输入方法不同,即使用5种不同的C++输入方法;尝试不同的输入,通过输出结果验证输入方法是否正确。

输出的每项宽度为16位,左对齐。

struct stud{char number[13];//学号char sex;//性别,f代表女,m代表男char name[20];//姓名unsigned short age;//年龄char class_number;//班级,1或2}stud1;⑶字符串流的读、写操作设输入字符串“ChengDu University 1978”,用串I/O的方法编程逐个读取这个串的每个字符,直到读完为止,并在屏幕上输出;编写代码,用串I/O的方法将字符串逆序输出。

部分代码如下:char str1[]="ChengDu University 1978",str2[50];istrstream s_in(str1);//建立输入串流对象s_in并与字符数组str1关联for(i=0;i< ;i++){s_in>>c;//从字符数组str1中读入字符,不含空格,赋值给字符变量cstr2[ ]=c; cout<<c;}ostrstream s_out(str1,sizeof(str1));//建立输出串流对象s_out并与字符数组str1关联for(i=0;i< ;i++)s_out<<str2[i]; //从字符数组str2中读入字符,赋值给str1cout<<"逆序:"<<str1<<endl;三.实验步骤实验操作类似实验一的操作步骤;四、实验分析⑴ASCII文件流的写操作:要写数据到一个文件中,首先要打开文件,使文件流对象与要使用的文件名之间建立联系;ofstream outfile("*.dat",ios::out);打开文件“*.dat”用于输出,并将这个文件与输出文件类对象outfile建立联系,在程序中,用到这个文件“*.dat”的地方就用outfile来代替。

⑵标准输入输出流及输入函数实现:输入的方法主要有6种,分别是cin、cin.getline()、cin.get()、getline()、gets()和getchar(),其中后5种是字符或字符变量的输入;C++中的输入和输出是“流”的操作,键盘上键入的任意一个按键都会在流中占据一个位置,使用2次及以上的输入操作时,应注意对多余字符的舍弃(缓冲区的重置和清空)。

相关文档
最新文档