《面向对象程序设计》实验指导书(实验二)
面向对象程序设计实验指导
面向对象程序设计实验指导本实验旨在让学生通过实践更好地理解面向对象程序设计的概念和思想,加深对于面向对象编程方法的理解与应用。
实验一:类和对象的基本概念1. 实验目标通过本实验,学生应了解类和对象的概念、掌握类的定义方法和对象的创建方法,学习成员变量和成员函数的声明与定义方法,并了解传统C程序与面向对象程序的区别。
2. 实验要求(1)学生应根据具体需求确定类的属性与方法等,设计一个简单的类;(3)学生需要通过对类的定义与对象的创建来比较传统C程序与面向对象程序的区别。
3. 实验内容在面向对象编程中,类是一种将数据和函数绑定在一起的结构体。
类定义了数据的形式,并且封装了这些数据的操作方法。
而对象是类的一个实例,它包含了类中的数据和方法,并可以提供对该对象的操作。
下面给出一个简单的Dog类的定义并创建对象。
```c++#include<iostream>using namespace std;void bark(){cout<<name<<" is barking!"<<endl;}};="Tom";mydog.age=3;cout<<<<" is "<<mydog.age<<" years old."<<endl;mydog.bark();return 0;}```在上述代码中,我们定义了一个Dog类,其中包含了名字和年龄两个成员变量,以及一个bark函数。
其中,name、age、bark都是类Dog的成员。
4. 实验思路传统C程序是面向过程编程的思想,即按照执行的流程编写代码,并将数据与函数分开定义和使用。
而面向对象编程则是将数据和函数封装在类中,可以更好地实现数据的安全性、复用性和可维护性。
实验二:继承、多态和封装通过本实验,学生应了解面向对象程序设计中继承、多态和封装三个重要概念的含义和应用,掌握继承与多态的实现方法,以及封装类的声明和定义方法。
实验二面向对象的程序设计
实验二面向对象的程序设计(2课时)一、实验目的1 )熟悉类的定义和使用。
2)掌握创建对象的方法。
3)掌握只读字段的声明及使用。
4)学习定义和使用带参数构造函数。
5)熟悉访问权限控制符。
6)掌握属性的定义和使用。
7)掌握关键字this。
8)理解继承的概念,学会定义和使用派生类。
9)学会定义和使用接口。
10)掌握继承过程中的方法重写,区分它与方法隐藏、方法重载的不同。
11)掌握多态。
12)熟悉关键字base。
二、实验要求1)程序结构清晰、语句完整,包含有头文件和main函数;2)格式正确,语句采用缩进格式;3)设计子函数实现题目要求的功能;4)编译、连接通过,熟练使用命令键;5)运行结果正确,输入输出有提示,格式美观。
三、实验设备、材料和工具1)奔腾2计算机或以上机型2)C#.NET2008四、实验内容和步骤实验内容:1、创建一个描述图书信息的类并测试。
类中应保存有图书的书号、标题、作者、出版社、价格等信息。
步骤:1)定义图书类Book,Book类中包含isbn(书号)、title (标题)、author(作者)、press (出版社)、price (价格)等私有字段。
由于对一本书来说,书号是唯一的,因此,isbn字段应声明为只读的。
2)为Book类中的每个字段定义相应的属性,由于isbn字段只读的,其相应属性也应该是只读的。
3)为Book类定义两个构造函数,其中,一个构造函数将所有字段都初始化为用户指定的值,另一个构造函数只要求用户指定有关书号的信息,它将调用上一个构造函数初始化对象,初始化时,价格取0,除书号的其他信息取“未知”。
4)为Book类定义方法Show,Show方法用于显示图书的所有信息。
5)编写Main方法测试Book类,Main方法中分别使用上述两个构造函数创建Book对象。
2、根据几何图形的组合与继承关系定义用于描述点、直线、三角形、四边形、正方形、圆等几何图形的类(或结构)。
要求首先定义一个几何图形接口描述所有几何图形的共有特性,上述几何图形都必须现实该接口,并且其中用于描述点的类型最好定义为结构。
面向对象程序设计(Java)实验指导书
10 信息管理与信息系统 专业
雷金娥编 2012 年 9 月
目录
实验一 Java Application 程序的编辑、编译和运行 ..................................... 2 实验二 Java 程序设计基础.................................................................................. 4 实验三 类的封装 ................................................................................................... 5 实验四 类的继承 ..................................................................................................... 6 实验五 类的多态 ..................................................................................................... 8 实验六 接口与实现接口的类 ............................................................................. 12 实验七 图形用户界面设计 ................................................................................. 14 实验八 线程设计 ................................................................................................. 16 实验九 输入/输出流与文件操作......................................................................... 18 实验十 数据库应用设计 ..................................................................................... 20
实验二---类与对象的定义与使用
}
void paixuYuwen() //按语文成绩排序;
{
Student str[50],*p,q;
int i,j;
p=stu;
for(p=stu,i=0;i<n;i++)
{ str[i]=*p;
*p++;
}
for(i=0;i<n-1;i++,p++)
{
for(j=0;j<n-1-igt;str[j+1].yuwen)
{
q=str[j];
str[j]=str[j+1];
str[j+1]=q;
}
}
}
for(i=0;i<n;i++)
{
printf("学号:%d姓名:%s数学:%.2f语文:%.2f英语:%.2f总成绩:%.2f平均成绩:%.2f\n",str[i].num,str[i].name,str[i].shuxue,str[i].yuwen,str[i].yingyu,str[i].zongcj,str[i].avg);
}
}
void paixuCJ()
{
int flag;
printf("1->按数学成绩排序\n2->按语文成绩排序\n3->按英语成绩排序\n4->按总成绩排序\n5->按总分\n");
printf("请选择成绩由低到高的排序方式:");
scanf("%d",&flag);
switch(flag){
case 0:paixuShuxue();break;
面向对象程序设计实验指导书
面向对象程序设计实验指导书目录前言: 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编译器。
《面向对象程序设计》实验指导书(实验二)
《面向对象程序设计》实验指导书(实验二)实验二类与对象㈡——对象初始化、对象数据与指针一、实验目的1.理解构造函数、析构函数的意义及作用,掌握构造函数、析构函数的定义及调用时间,熟悉构造函数的种类;2.理解thi指针及使用方法,熟悉对象数组、对象指针、对象引用的定义及使用方法,熟悉对象作为函数参数的使用方法;3.熟悉类与对象的应用及编程。
二、实验学时课内实验:2课时课外练习:2课时三本实验涉及的新知识㈠构造函数与析构函数在C++中,提供了两个特殊的成员函数,即构造函数和析构函数。
构造函数用于对象的初始化,即在定义一个类对象时,计算机在给对象分配相应的存储单元的同时,为对象的数据成员赋初值。
析构执行的是与构造函数相反的操作,用于撤销对象的同时释放对象所占用的内存空间。
1.构造函数⑴构造函数的定义格式:类名(形参表){构造函数体}⑵构造函数的调用构造函数的调用是在定义对象时调用的。
格式:类名对象名(实参表);类名对象名=构造函数名(实参表);⑶说明①构造函数必须与类同名。
②构造函数没有返回值,但不能在构造函数前加void类型符(其他没有返回值的成员函数必须加类型符void)。
③在实际应用中,在定义类时通常应定义一至多个构造函数(重载),以对各数据成员进行初始化;如果不给出构造函数,系统将自定义一个构造函数。
④构造函数可以可以带参数,也可不带任何参数(称无参构选函数),还可以使用缺省参数。
⑤不能象普通成员函数一样单独调用。
2.析构函数⑴析构函数的定义格式:~类名(void){析构函数体}⑵析构函数的调用析构函数是在撤销对象时自动调用的。
⑶说明⑴析构函数与构造函数的名字相同,但在其前面加上“~”,如果未定义析构函数,系统将自定义一个析构函数。
⑵析构函数没有参数、没有返回值,也不能重载。
⑶对于大多数类而言,可以缺省析构函数的定义,但是,当类的数据成员中使用指针变量,在构造函数中用new动态分配内存空间时,应显式定义析构函数,用delete释放已分配的内存空间。
面向对象程序设计实验指导书
实验指导书院系:数学与计算机专业:通信工程课程:面向对象程序设计编者:夏婷婷目录实验一 MATLAB的矩阵和数组的运算实验二二维平面图形的绘制与分割实验三特殊图形的设计实验四 MATLAB程序结构的应用和实现实验五线性预测谱估计的仿真实验一 MATLAB 的矩阵和数组的运算一、实验目的:1、学会矩阵和数组运算的基本规律2、会进行编程运算来检验结果二、实验内容:(1)产生6阶单位矩阵、4阶全1阵,4阶全0阵(2)产生三阶随机均匀分布矩阵A,求A 的数值3次幂运算, A 的矩阵3次幂运算(3)计算[13-(17-5)×8]+34+5e 值(4)产生三阶魔方阵A,对A 矩阵上下翻转、左右翻转各求一次。
(5)矩阵A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1,23,1117,5,239,5,4,矩阵B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡8,3,92,6,41,6,1,求A.*B,A*B 三、实验原理与方法:数组运算侧重数值之间的运算,在进行加、减时是数组中对应位置上数值进行加减,这与矩阵运算一致。
数组乘与矩阵乘意义完全不同。
矩阵乘遵循左侧矩阵的第一行与右侧矩阵第一列对应相乘然后相加,得到新矩阵里第一项,与此类推得到之后的项。
数组乘指对应位置的数值相乘。
特殊矩阵的产生通常有特定的函数指令,而这些指令通常是英文。
因此在运用时要牢记英文含义。
四、实验条件:计算机、MATLAB 软件、实验教材五、实验步骤:构思、分析、编译、调试、运行、数据记录六、 实验注意事项:注意数值运算与矩阵运算的物理意义和运算方法差别。
尤其是.*与*,.^与^的区别七、实验报告要求:格式工整,独立完成,注重分析,鼓励尝试实验二 二维平面图形的绘制与分割一、实验目的:1、了解二维平面图的绘制方法。
2、学会绘制不同色彩、线型的二维图。
3、掌握图形分割的方法。
多次叠绘图和多子图。
二、实验内容:(1)在0π2≤≤x 区间内,绘制曲线)2sin(25.0x e y x π-=,线型为星号,品红色。
面向对象程序设计实验指导书
⾯向对象程序设计实验指导书⾯向对象程序设计实验指导书厦门⼯学院电⼦信息⼯程系2013.8⽬录实验⼀:Microsoft Visual Studio 2008开发环境熟悉 (3)实验⼆:C++的类和对象 (6)实验三:C++的派⽣类与继承 (9)实验四:C++的多态性 (12)实验⼀:Microsoft Visual Studio 2008开发环境熟悉⼀、实验⽬的和要求1、熟悉Microsoft Visual Studio 2008开发环境;2、学会使⽤Microsoft Visual Studio 2008开发环境编辑、编译、链接和运⾏C++⽂件;3、初步了解C++源程序的基本结构,学会使⽤简单的输⼊输出操作;⼆、实验内容和步骤1、熟悉Microsoft Visual Studio 2008开发环境;(1)创建新项⽬:创建⽅法如图2.1所⽰:图2.1 创建新项⽬(2)选择Win32控制台应⽤程序,如图2.2所⽰:(3)在主cpp⽂件中编辑源程序,如图2.3所⽰:(4)进⾏C++⽂件的编译、链接和整个⼯程的运⾏;2、简单C++源程序的编写(1)输⼊以下程序,进⾏编译,如果有错误,则修改程序,直到没有错误为⽌,然后进⾏链接和运⾏,并分析运⾏结果;/*************************experiment 1-2-1.cpp*******************************/ #include "stdafx.h"#includeusing namespace std;int main(){void fun(int ,int&);int x,y;fun(4,y);cout<<”x+y=<return 0;}void fun(int m,int &n){n=m*5}/****************************************************************************/(2)编写C++编程风格程序experiment 1-2-2.cpp:计算将100元⼈民币兑换成1、2、5元的⼈民币,有多少种换法?(3)编写C++编程风格程序experiment 1-2-3.cpp:计算并输出两个整数、三个整数、两个双精度数、三个双精度数的最⼤值(使⽤函数重载);三、实验思考题1、列出experiment 1-2-1.cpp中出现的错误,对实验结果进⾏分析,讨论在函数参数中传递变量、传递引⽤及传递指针有何区别?2、附录完整的源程序experiment 1-2-2.cpp及其运⾏结果;要求源程序格式整齐,并对关键代码进⾏说明;3、附录完整的源程序experiment 1-2-3.cpp及其运⾏结果。
《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。
(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。
实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。
要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。
(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。
要求:使用递归函数。
主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。
链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。
程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。
面向对象程序设计实验指导书实
实验二类与对象㈡——对象初始化、对象数据与指针一、实验目的1.理解构造函数、析构函数的意义及作用, 掌握构造函数、析构函数的定义及调用时间, 熟悉构造函数的种类;2.理解this指针及使用方法, 熟悉对象数组、对象指针、对象引用的定义及使用方法, 熟悉对象作为函数参数的使用方法;3.熟悉类与对象的应用及编程。
二、实验学时课内实验: 2课时课外练习: 2课时三本实验涉及的新知识㈠构造函数与析构函数在C++中, 提供了两个特殊的成员函数, 即构造函数和析构函数。
构造函数用于对象的初始化, 即在定义一个类对象时, 计算机在给对象分配相应的存储单元的同时, 为对象的数据成员赋初值。
析构执行的是与构造函数相反的操作, 用于撤销对象的同时释放对象所占用的内存空间。
1.构造函数⑴构造函数的定义格式:类名( 形参表){ 构造函数体 }⑵构造函数的调用构造函数的调用是在定义对象时调用的。
格式: 类名对象名( 实参表) ;类名对象名=构造函数名( 实参表) ;⑶说明①构造函数必须与类同名。
②构造函数没有返回值, 但不能在构造函数前加void类型符( 其它没有返回值的成员函数必须加类型符void) 。
③在实际应用中, 在定义类时一般应定义一至多个构造函数(重载), 以对各数据成员进行初始化; 如果不给出构造函数, 系统将自定义一个构造函数。
④构造函数能够能够带参数, 也可不带任何参数( 称无参构选函数) , 还能够使用缺省参数。
⑤不能象普通成员函数一样单独调用。
2.析构函数⑴析构函数的定义格式:~类名( void){ 析构函数体 }⑵析构函数的调用析构函数是在撤销对象时自动调用的。
⑶说明⑴析构函数与构造函数的名字相同, 但在其前面加上”~”, 如果未定义析构函数, 系统将自定义一个析构函数。
⑵析构函数没有参数、没有返回值, 也不能重载。
⑶对于大多数类而言, 能够缺省析构函数的定义, 可是, 当类的数据成员中使用指针变量, 在构造函数中用new动态分配内存空间时, 应显式定义析构函数, 用delete释放已分配的内存空间。
《面向对象程序设计》实验指导书(新)
《面向对象程序设计》实验指导书(新)《面向对象程序设计》实验指导书一、课程教学与实验教学计划学时比: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.计算机。
(三)实验内容:建立一个文件,文件中包含一系列数,用这些数构成一个数组,并按照数值,为这个数组从小到大排序,把排序结果输出到另一个文件中。
面向对象程序设计实验指导书样本
《面向对象程序设计》实验指导书郭玉柱广东商学院信息学院二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的对象, 修改该对象的年龄, 并输出该对象的年龄。
面向对象程序设计实验指导书
面向对象程序设计实验指导书汤亚玲,胡增涛,邰伟朋编写专业______网络工程_________班级________网111________学号___119074292____________参考资料姓名_______黄飞_________安徽工业大学计算机学院二 0 0 8 年 3月参考资料目录《面向对象编程技术》实验指导书说明...实验一、C++开发环境应用入门(2学时)(选做)实验二、简单程序设计(2~4学时)...实验三、函数的应用(2学时)(选做)实验四、类与对象(2学时)实验五 C++程序的结构(2学时)...实验六数组、指针与字符串(2学时)...实验七、继承与派生(一、二)4学时...实验八、多态性2学时...附录1 试验报告参考格式...参考资料《面向对象编程技术》实验指导书说明一、实验目的:C++是当今最流行的高级程序设计语言之一,应用十分广泛。
它也是一门复杂的语言,与C语言兼容,既支持结构化的程序设计方法,也支持面向对象的程序设计方法。
本课程的目的在于通过试验,让学生掌握用Visual C++6集成开发环境编写和调试程序。
掌握C++语言的概念、语法规则和编程方法,理解结构化的程序设计和面向对象程序设计的基本思想,会用结构化的程序设计和面向对象的程序设计方法,培养开发具有一定难度程序的编程能力。
二、适应专业:计算机科学与技术及其它相关专业三、实验学时数:20学时四、实验内容及学时安排:参考资料实验一:C++开发环境应用入门学时数:2学时实验内容:Visual C++的开发环境,学会编写简单C++程序并且编译、调试、运行。
1、实验目的了解C++开发工具的特点熟悉C++开发环境学习用C++编写标准的C++程序2、实验任务使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序:#include <iostream.h>void main(void){cout<<”Hello!\n”;cout<<”Welcome to C++!\n”;}3、实验步骤启动Visual C++或C++Builder开发环境创建一个项目单击File菜单中的New选项,显示示新建对话框选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。
面向对象程序设计实验指导书
《面向对象C++程序设计》实验指导书计算机科学与技术学院《面向对象C++程序设计》课程组实验指导书目录实验一 C++基础练习 (1)实验二 C++简单程序设计练习 (4)实验三类与对象(一) (9)实验四类与对象(二) (14)实验五派生类与继承 (21)实验六虚函数与多态性 (31)实验七函数模板与类模板 (40)实验八输入输出的格式控制 (44)实验九文件的输入输出 (49)实验十综合练习 (55)实验十一设计时间类——计算程序的运行时间 (68)附录:C++语言上机实验环境介绍 (71)实验一 c++基础练习一、实验性质验证性实验2学时二、实验目的和要求1.掌握c++程序的基本格式与规范,学会编写简单的c++程序。
2.理解c++程序结构的特点。
3.熟悉c++程序基本的输入输出操作。
4.掌握c++数据类型常量和变量以及修饰符的使用方法。
5.掌握函数定义、函数调用和函数说明的方法。
6.熟悉作用域运算符的功能和基本使用方法。
7.掌握c++内存的动态分配与释放方法。
8.理解引用的概念,掌握引用的使用方法。
三、实验内容:1编写一个简单程序,输出“welcome you”,并给程序加一行注释“fisrt c++ program”。
2编写一个完整的包含输入和输出的简单c++程序。
3编写内置函数求解2x^+4x+5的值,x为整数,并用主函数调用该函数。
利用函数重载,重载上面的函数,x为浮点数。
4编写一个程序,对一个整数数组求和,求和的结果使用全局变量sum存储,同时对整数中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。
本题要求体会和理解作用域运算符的概念与基本使用方法。
5编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以该数为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new,delete运算符。
四、实验步骤第一步:根据实验内容编写下面的代码进行调试。
#include <iostream.h>void main(){ // first c++ programcout<<”\n welcome you \n”;}第二步:下面的程序对用户输入的口令进行判断,输出不同的结果。
《面向对象程序设计》实验指导书
《⾯向对象程序设计》实验指导书《⾯向对象程序设计》实验指导书郭⽟柱⼴东商学院信息学院⼆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的对象,修改该对象的年龄,并输出该对象的年龄。
面向对象程序设计(C++)实验指导-精简版-befine
面向对象程序设计(C++)实验指导-精简版-befine面向对象程序设计(C++)实验指导一、实验环境本实验基于当前主流的面向对象开发平台,编码规范遵循主流的参考规范。
二、编程语言和开发工具C++语言,开发工具不限,建议使用Visual C++ 6.0版本三、编码规范(编码规范的要求)要求遵循良好的的程序设计习惯来设计实验和编写代码。
(注:如果你将程序的很多功能全部放在一个长长的main()主函数中实现,这样的程序设计和编码风格会被扣分,请将不同的功能模块分别用函数来实现。
)1.在实验过程中应注意培养规范的编码风格:2.标识符的命名应要求达到顾名思义的程度,一看就知道用来做什么;3.提供足够的注释,注释文字清晰明了;4.程序排版的要求:a)不同功能模块用空行分隔,使功能块一目了然;b)基本上一条语句一行;同一层次的语句统一缩进对齐。
四、实验见后文……五、注意事项所有实验要求独立完成,同学之间可以讨论,但严禁抄袭,若发现雷同,抄袭者和被抄袭者此次实验成绩均记零分。
实验一 C++基础 (2课时)实验目的和要求:1.掌握C++程序的基本格式与规范,学会编写简单的C++程序。
2.理解C++程序结构的特点。
3.熟悉C++程序的基本输入输出操作。
4.掌握内联函数的使用方法。
5.掌握函数重载的定义和使用方法。
6.掌握C++内存的动态分配与释放方法。
7.理解引用的概念,掌握引用的使用方法。
预习内容:cin/cout 的使用;new 和delete 的使用;函数重载;const 常量。
实验内容:1、用内联函数编写Fibonacci 级数,使用if 语句判断函数的出口,在程序中用cout 语句输出提示信息,Fibonacci 级数的公式为:>-+-==2)2()1(2,11)(n n fib n fib n n fib 内联函数inline int fib(int n)。
2、程序Ex_Swap 实现数据交换。
面向对象程序设计实验任务和指导(WHUT版)
分类:本科教学/课程/面向对象/2012/实验任务及指导
using namespace std; class IntArray { public: IntArray(int sz); // 数组初始化为 sz 个元素,初值全为 0 IntArray( int *array, int sz ) ; // 用静态数组 array 的前 sz 个元素初始化新数组 IntArray( const IntArray &rhs ) ; // 拷贝构造函数 void printAll(); private: int *ia; int size; }; IntArray::IntArray( int sz ) { size = s z; // 设置数据成员 ia = new int[ size ]; for ( int ix=0; ix < size; ++ix ) ia[ix] = 0; // 初始化数组元素 } IntArray:: IntArray( int *array, int sz ) { size = s z; // 设置数据成员 ia = new int[ size ]; for ( int ix=0; ix < size; ++ix ) ia[ix ] = array[ ix ]; // 拷贝数据成员 } IntArray:: IntArray( const IntArray &rhs ) { size = rhs.size; ia = new int[ size ]; for (int ix = 0; ix < size; ix++ ) ia[ ix ] = rhs.ia[ ix ]; } void IntArray::printAll() { for ( int ix=0; ix < size; ++ix ) cout<<ia[ix]<<" "; cout<<endl; } int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; IntArray arr1(10), arr2(a,5),arr3(arr2); arr1.printAll(); arr2.printAll(); arr3.printAll(); return 0;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Constructing!
Constructing!
Destructing!
Destructing!
Press any key to continue
⑹比较⑶—⑸的输出结果,说明:
。
程序2(exp_202.cpp)
class score
{ private:
float sc[M],aver; //表示M科成绩的数组及平均成绩
int m; //表示实际考试科数
public:
score(void); //无参构造函数
score(float x[],int n); //构造函数重载——初始化成绩
void set_score(float x[],int n); //提供成绩
{ cout<<"constructing!"<<endl;}
~Myclass(void)
{ cout<<"destructing!"<<endl;}
};
void main()
{ Myclassob;}
问题:
⑴运行程序的输出结果为:
Constructing!
Destructing!
Press any key to continue
float get_score(int i) //得到第i科成绩
{return sc[i];}
float get_aver(void) //得到平均成绩
{return aver;}
void print_score(void);
};
score::score(void) //无参构造函数
{ int i;
3.拷贝构造函数(复制构造函数)
⑴拷贝构造函数的定义
格式:
类名([const]类名&对象名)
{拷贝构造函数体}
⑵拷贝构造函数的调用
拷贝构造函数是在对象间相互赋值时自动调用的。
格式:目标对象名=源对象名;
目标对象名(源对象名);
⑶说明
①拷贝构造函数无返回值,也不能有void。
②如果不定义拷贝构造函数,系统会自定义一个拷贝构造函数,实现对数据成员的拷贝。
⑶用指针使用用对象(或对象数组元素):对象指针->公有成员
3.对象引用
可以定义对象的引用,其引用名即为对象的别名。
4.this指针
⑴C++提供了一个特殊的对象指针,称为this指针。
⑵this指针为成员函数所属对象的指针,指向对象的首地址。
⑶this指针是一种隐含指针,隐含于每个类的成员函数中,即调用某成员函数时,都将自动产生一个this指针。
③默认拷贝构造函数是一种浅拷贝,当在类中定义有指针数据成员,用new分配内存空间时,通常应显示定义相应的拷贝构造函数。
㈡对象数组与对象指针
1.对象数组
⑴可以定义对象数组处理多个对象。
⑵可以用缺省参数构造函数为对象数组赋初值。
2.对象指针
可以使用指针来使用对象或对象数组。方法:
⑴定义对象指针;
⑵将指针指向某一对象(或对象数组);
1.构造函数
⑴构造函数的定义
格式:
类名(形参表)
{构造函数体}
⑵构造函数的调用
构造函数的调用是在定义对象时调用的。
格式:类名对象名(实参表);
类名对象名=构造函数名(实参表);
⑶说明
①构造函数必须与类同名。
②构造函数没有返回值,但不能在构造函数前加void类型符(其他没有返回值的成员函数必须加类型符void)。
{ int i;float sum=0;
m=n;
②;
aver=sum/m;
}
void score::print_score(void) //输出成绩、平均成绩
{ int i;
for(i=0;i<m;i++)
cout<<" "<<sc[i];
cout<<" "<<aver<<endl;
}
问题:
⑿完善类的定义,程序中,①处应改为:
㈡知识应用实验
1.分析下列程序,写出程序的输出结果,再上机运行程序验证其正确性,如果不正确,请认真分析出错原因。
程序3(exp_203.cpp)
#include<iostream.h>
class Myclass
{ private:
int a,b;
public:
Myclass(int x1=0,int x2=0)
⑷调用thiHale Waihona Puke 指针格式:this->成员名
⑸this指针通常采用隐式调用,即在类内部直呼其名。
⑹this指针是系统自定义的,用户不能再定义
㈢对象作为函数的参数
在C++中,可以用对象作为函数的形参或实参。主要有以下形式:
1.形参、实参均为对象,其参数的传递为对象的值,即为传值调用。
2.形参为对象指针,实参为对象指针或对象地址,其参数的传递为对象的地址,即传址调用。
{ cout<<"a="<<a<<" b="<<b<<endl;}
};
void main()
{ A ob1(20,30),ob;
A ob2(ob1);
ob2.print();
// ob=ob1;
// ob.print();
}
问题:
⑺运行该程序的输出结果为:
拷贝构造函数被调用!
a=20 b=30
Press any key to continue
{a=x1;b=x2;
cout<<"构造函数被调用!"<<endl;
}
~Myclass()
{cout<<"析构函数被调用!"<<endl;}
Myclass(Myclass &ob)
{ a=ob.a;b=ob.b;
cout<<"拷贝构造函数被调用!"<<endl;
}
void print(void)
{ cout<<"a="<<a<<" b="<<b<<endl;}
~person(void); //析构函数声明
person(const person &ob);//拷贝构造函数声明
char *get_name(void)
{ return name;}
void print_name(void);
};
①::person(char *pn) //定义构造函数,为name提供值
};
void func1(Myclass ob)
{ cout<<"func1: ";
ob.print();
}
void func2(Myclass *ob)
{ cout<<"func2: ";
ob->print();
}
void func3(Myclass &ob)
{ cout<<"func3: ";
ob.print();
③处应为strcpy(name,pn);;
④处应为new char[strlen()+1];;
⑤处应为strcpy(name,);;
程序5(exp_102.cpp)
//头文件“hscore.h”内容:定义一个成绩类:最多可以处理10科成绩及平均成绩
const int M=10;
Destructing!
Press any key to continue
⑷将main( )中的“Myclassob[2];”改为:“Myclass *ob;ob=new Myclass[2];”后,运行程序的输出结果为:
Constructing!
Constructing!
Press any key to continue
m=M;
for(i=0;i<m;i++)
sc[i]=0;
aver=0;
}
score::score(float x[],int n) //构造函数重载——初始化成绩
{ int i;float sum=0;
m=n;
①;
aver=sum/m;
}
void score::set_score(float x[],int n) //提供成绩
cout<<"main: ";ob.print();
}
2.完善、调试通过下列程序,并按所要求回答问题。
程序4(exp_204.cpp)
#include<iostream.h>
#include<string.h>
class person
{ private:
char *name;
public:
person(char *pn);//构造函数声明
实验二类与对象㈡——对象初始化、对象数据与指针
一、实验目的
1.理解构造函数、析构函数的意义及作用,掌握构造函数、析构函数的定义及调用时间,熟悉构造函数的种类;
2.理解this指针及使用方法,熟悉对象数组、对象指针、对象引用的定义及使用方法,熟悉对象作为函数参数的使用方法;