面向对象与C++_复习题

面向对象与C++_复习题
面向对象与C++_复习题

《面向对象与C++》复习题

一、简答题

1、简述解释方式与编译方式。

答:编译就是先有目标代码再执行;解释就是一边翻译一边执行。解释方式是边扫描源程序、边进行翻译,然后执行。即解释一句、执行一句,不生成目标程序。这种方式运行速度慢,但在执行中可以进行人机对话,随时改正源程序中的错误。编译方式是将源程序全部翻译后,生成一个等价的目标程序,对目标程序再进行连接装配后,便得到“执行程序”,最后运行执行程序。由于源程序一旦编译后不再参与运行,以后每次直接运行执行程序即可,所以运行速度快。但这种方式不够灵活,每次修改源程序后,哪怕只是一个符号,也必须重新编译、连接;

2、简述面向过程的程序设计与面向对象的程序设计。

面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。

3、什么是拷贝构造函数。

是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。

4、重写与重载的区别。

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

5、动态绑定与静态绑定。

静态绑定:在面向过程的中又称为前期绑定在程序编译时进行了绑定,即在还没运行时,就已经加载到内存。3.动态绑定:在面向过程中称为后期绑定(运行时绑定)在运行时就进行绑定,根据实际情况有选择的进行绑定。

6、传值、传指针与传引用的优缺点。

答:传值安全低效,传指针与传引用高效不安全,如果加上CONST就安全了。

7、将函数声明为常成员函数的作用。

不可修改成员,即对声明为const 的成员作改动就会报错,容易发现问题

8、构造新类时,使用组合与继承的原则是什么。

答:构造新类时,例如A是基类,B是A的派生类,继承的原则如下:1.如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能和属性,2.若在逻辑上B是A的“一种”,则允许B继承A的功能和属性。

组合的原则如下:1.若在逻辑上B是A的“一部分”,则不允许B从A的派生,而是要A与其它东西组合出B。

9、内联函数的作用。

答:内联函数就是指在每个使用它的地方插入全部算法,而不是把函数地址传过去,它是编译在堆内存里的,直到程序结束后它才失效,这样能加快执行的速度,效率更高,但是内联函数一定要是短小的,否则只能起到反作用.

10、抽象类。

答:用 abstract 修饰的类是抽象类。

在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。

凡是包含纯虚函数的类都是抽象类。

它与非抽象类的不同:

1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。

2、允许(但不要求)抽象类包含抽象成员。

3、抽象类不能被密封。

二、选择题

1、编译程序的功能是(c )

A)将汇编语言程序转换为目标程序B)将汇编语言程序转换为高级语言程序

C)将高级语言程序转换为目标程序D)将高级语言程序转换为汇编语言程序

2、在C++语言中,对函数参数默认值描述正确的是(d )

A)函数参数的默认值只能设定一个B)一个函数的参数若有多个,则参数默认值的设定可以不连续

C)函数参数必须设定默认值D)在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值3、考虑函数原型void test(int a, int b=7, float f=6.0),下面的函数调用中,

属于不合法调用的是:( c )

A)test(5); B)test(5,8); C)test(6 ,3.2) D)test(0,1,1.2);

4、下面有关重载函数的说法中正确的是(c )

A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;

C)重载函数必须是参数个数不同或类型不同;D)重载函数名可以不同;

5、能作为函数重载判断依据的是:( a )

A.参数个数B。参数顺序C。函数名字D。返回类型

6、下列关于构造函数的描述中,错误的是(d )

A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行

C)构造函数可以是内联函数;D)构造函数不可以重载

7、关于析构函数的描述中,错误的是(c )

A)析构函数不能带参数B) 析构函数在撤销对象时自动执行

C)析构函数名与类名相同;D) 析构函数不可以重载

8、下面描述中,表达错误的是(b )

A)公有继承时基类中的public成员在派生类中仍是public的

B)公有继承是基类中的private成员在派生类中仍是private的

C)公有继承时基类中的protected成员在派生类中仍是protected的

D)私有继承时基类中的public成员在派生类中是private的

9、应在下列程序划线处填入的正确语句是(c )

A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();

10、一个C++类( c )

A)只能有一个构造函数和一个析构函数B)可以有一个构造函数和多个析构函数

C)可以有多个构造函数和一个析构函数D)可以有多个构造函数和多个析构函数

11、以下程序中,while循环的循环次数是(d )

A)1 B)10 C) 6 D)死循环,不能确定次数

12、关于内联函数,以下说法错误的是(c )

A)使用内联嵌函数可节省函数调用与返回时的开销,能够提高程序的运行速度.

B)内联函数必须在调用之前定义.C)内联函数中可以存在循环结构.D)内联函数必须是短小的.

13、引入友元的主要目的是为了( c )

A. 增强数据安全性

B. 提高程序的可靠性

C. 提高程序的效率和灵活性

D. 保证类的封装性

14、假定AB为一个类,则执行AB x;语句时将自动调用该类的(b )

A. 有参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值重载函数

15、一个const对象( b )。

A. 能访问所有成员函数

B. 只能访问const成员函数

C. 也能访问volatile成员函数

D. 能访问const和volatile成员函数

三、填空题

1、C++源程序文件扩展名为_____.cpp________

2、面向对象的特征是封装、继承和多态。

3、采用malloc函数申请的内存,采用free 释放;

new操作符申请的内存,采用delete 释放。

4、在C++中,函数的参数传递的方式有传值、传指针和传引用。

5、类是对具有共同属性和行为的一类事物的抽象描述,

共同属性被描述为类中的_数据成员____,共同行为被描述为类中的_成员函数____。

6、对类中的成员函数和属性的访问是通过__public__、__proected___和_private___这3个关键字来控制的。

7、用关键字public 控制的成员是类的接口。

8、在定义类的对象时,C++程序将自动调用该对象的___构造___函数初始化对象自身。

9、在撤销类的对象时,C++程序将自动调用该对象的__析构____函数。

10、非成员函数应声明为类的___友员_____才能访问这个类的private和protected成员。

11、补充完整以下程序,使其输出10。

class MyClass

{public:

获取x

private: int x;

};

void main()

{ MyClass my(10);

cout << my.getNum() << endl;

12、class test{

private: int num; float f;

public: test(int n,float f); test(test&);

};

test::test(int n,float f)

{ num=n;

f=t.f;}

四、读程序,找错误,并说明原因。

1、class A {

public: static void f(A a);

private: int x;

};

void A::f(A a) {

cout << x; //错误,x的地方是非静态的,静态的成员只能操作静态的成员cout << a.x;

}

2、class A {

protected:

int x;

};

int main() {

A a;

a.x = 5; //错误,x是保护成员,对外不可访问

3、

class A{

public: void A(int i=0){m=i;} 错,构造函数不能返回值。

void show(){cout<

void ~A(){ } 错,构造函数不能返回值

private: int m;

};

void main()

{ A a(5);

a.m+=10; 错,构造函数不能返回值

a.show();

五、读程序,写结果。

1、//n=10

2、//i=0 k=2 m=4

3、// i=10 d=15.6

4、Point构造函数Cirlce构造函数Circle析构函数Point析构函数

5、base写2次,写1次。(base::fun base::fun devide::fun)

六、编程题

1、编写程序,输出100以内的能被3和7同时整除的所有整数。

#include

void main()

{ int i;

for(i=1;i<=100;i++)

if(i%3==0&&i%7==0)

cout<

}

2、编写一个矩形类,要求可以提示用户输入矩形的长度和宽度,并显示该矩形的长度、宽度和面积。

#include

class rectange

{

private:

int len;

int wid;

public:

rectange(int a,int b):len(a),wid(b){ }

int getLen(){return len;}

int getwid(){return wid;}

friend int area(rectange T);

};

int area(rectange T)

{ int s;

s=T.len*T.wid;

return s;

}

int fun(rectange T)

{ int l;

l=(T.getLen()+T.getwid())*2;

return l;

}

int main()

{

rectange a(5,7);

cout<<"\nT对象面积为:"<

cout<<"\nT对象周长为:"<

return 0;

}

3、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circle),并给出具体的求面积函数。

class shape{

public:

virtual float area( )=0;

};

class Triangle:public Shape

{

public:

Triangle(double h,double w){H=h;W=w;}

double Area() const{return H*W*0.5;}

private:

double H,W;

};

4、以下是复数类Complex的定义。

class Complex { //复数类声明

public:

Complex(double r = 0.0,double i = 0.0)

{ real = r; imag=i; }

Complex operator + (const Complex &c2) const; //+重载成员函数

Complex operator - (const Complex &c2) const; //-重载成员函数

friend ostream & operator << (ostream &out, const Complex &c); //<<重载,非成员函数private:

double real;

double imag;

};

请实现对运算符+、-、<<的重载。

class complex

{

public:

complex(double r=0, double i=0)

{

real = r;

image = i;

}

double real;

double image;

};

complex operator + (const complex& a, const complex& b)

{

return complex(a.r+b.r, a.i+b.i);

}

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

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

Java面向对象程序设计 实验报告

一、实验目的及内容 目的:掌握和巩固Java面向对象程序设计的概念、方法。 内容: 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类 的多个对象拥有各自的实例成员变量。 2.编写一个表示人的类Person,该类满足以下要求: ●有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通 过接口器函数(getXXX,setXXX)。 ●该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。 ●该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪大, 若是,则返回true,否则,返回false。 编写另外一个类:TestPerson,该类包含下面函数: public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。main函数位于该类中。在main函数中 (1)创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。 (2)输出这个数组中每个对象的名字、年龄。 (3)调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。 (4)输出排序后数组中每个对象的名字、年龄。 二、要求 1.给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代码 和测试结果。 1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。 设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。

面向对象程序设计实验报告完整版

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

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

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

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.360docs.net/doc/0912737179.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

面向对象分析与设计实验报告

面向对象分析与设计实验报告 题目:宿舍管理系统 学号:200*********** 姓名:****** 班级:09软件*****04 完成时间:2011.11.09

目录 1 系统功能需求 (3) 1.1管理系统模块 (3) 1.2查询学生模块 (3) 1.3学生管理模块 (4) 1.4资料修改模块 (5) 1.5楼栋管理模块 (6) 1.6出入登陆模块 (6) 2 建立需求模型 (7) 2.1 划分子系统 (7) 2.2 识别参与者 (8) 2.3 识别用况 (8) 2.4 对需求进行捕获与描述 (9) 3 系统分析 (11) 3.1 寻找类 (11) 3.2 建立状态机图 (12) 3.3 建立类图 (12) 3.4 建立顺序图 (13) 4 系统设计........................................................................... 1错误!未定义书签。 4.1 问题域部分设计 (14) 4.2 人机界面部分设计 (14) 5 总结 (16) 参考文献 (17)

1.系统的功能需求 我校学生公寓现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。故设计一个学生公寓管理系统,管理学生住宿情况,员工情况,处理学生离校,管理人员来访情况等功能。通过此系统,后勤人员可以对学生公寓的各项情况实行电脑化管理,以提高工作效率,也使得公寓管理所需的各项信息能方便快速进行录入,查询,删除和更新。 面对学生公寓管理工作的特点以及该管理工作的具体问题, 本系统可以解决以下问题: (1)录入公寓各学生的基本情况。 (2)全面查询学生的基本情况。 (3)对学生离校进行处理。 (4)每学期对学生住宿进行注册。 (5)对来访人员进行出入管理。 (6)对学生的财务进行登记管理。 (7)对楼栋物资和楼栋的管理。 (8)对各项情况进行修改,删除,更新。 (9)友好的操作界面, 以及简单快速的操作. (10)多种查询方式。 本系统针对学生公寓管理日常的工作程式, 对学生公寓的各项情况例如:学生信息,学生个人财产信息,来访人员信息等进行有效管理,并能通过各方法进行快速方便的查询。使学生公寓管理工作运作简明、清晰,各状况一目了然,使学生公寓管理工作更加科学化、规范化。 1.1管理系统模块:实现用户退出功能。 1.2查询学生模块:该模块包括五个子模块 1.按学号查询——实现按学号查询学生信息 2.按姓名查询——实现按姓名查询学生信息 3.按学生班级查询——实现按学生班级查询学生信息 4.按家庭住址查询——实现按家庭住址查询学生信息 5.混合查询——实现按混合查询学生信息

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

《面向对象程序设计(C++)》课程实验指导书 安阳工学院计算机科学与信息工程学院 软件工程教研室 2018.9

编号: 课程总学时: 64 实验学时: 32 课程总学分: 3.5 实验学分: 先修课程:C语言程序设计 适用专业:计算机科学与技术,网络工程,软件工程 一、本课程实验的主要目的与任务 《面向对象程序设计(C++)》是计算机专业学生的一门专业基础课。C++是一种高效而又实用的程序设计语言,它既可以进行过程化程序设计,也可以进行面向对象程序设计,因此成为了编程人员最广泛使用的工具。主要任务是介绍C++语言中的数据类型,运算,语句结构及其程序设计的基本方法。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,从而掌握面向对象程序设计的基本知识和基本技能。并为后续的专业课程奠定程序设计基础。 实验1 C++基础 一、实验目的 1.加强学生掌握C++的基本知识点; 2.加强学生掌握I/O流; 3 加强学生进一步理解函数的用法; 4 理解引用的概念及应用。 三、实验内容 1.用函数返回值实现统计A类学生和B类学生个数,平均分大于等于80的为A类,其余 为B类。 四. 实验指导 1.参考程序: #include int main() { cout<<”My name is Jone\n”。 cout<<”the ID is”。 cout<<2。 cout< #include //要用到格式控制符 void main()

实验2:Java面向对象程序设计

实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1. 创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2. 编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一). 静态变量和实例变量练习 1. 创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2. 部分源代码如下: 3. 将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二). 静态方法和实例方法练习 1. 创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。

2. 部分源代码如下: 3. 将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一). 访问修饰符练习 1. 创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2. 源代码如下: 3. 先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1 预测和验证结果

面向对象技术-实验报告

实验报告 课程名称Java程序设计 实验项目实验一类、对象与构造函数 实验二派生类与继承 系别___________理学院_____________ 专业/班级_________电技1302____________姓名______蔡超月____________ 实验日期_______________________ 成绩_______________________ 指导教师夏红科

一、实验题目:实验一类、对象与构造函数 实验二派生类与继承 二、实验内容: (1)创建一个雇员类,该类中有数据成员有姓名、家庭住址和邮政编码等,其功能有修改姓名、显示数据信息。 要求:雇员类的定义作为.h保存 雇员类功能函数的实现放在.cpp中。 雇员类的使用放在单独的.cpp文件中,该文件使用#include编译预处理命令包含类定义的头文件,在main()函数中使用雇员类创建几个对象并显示信息。 (2)定义一个哺乳动物类,再由此派生出人类、狗类和猫类,这些类中均有speak()函数,请设计相应的类层次结构并加以实现,观察在调用过程中,到底使用了哪个类的speak()函数。 (3)设计一个能细分为矩形、三角形、圆形和椭圆形的图形类,使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽,高,中心点等)和方法(如初始化、求面积等),并设计多种继承模式来测试继承的属性。 三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果) 1)程序清单及注释 内容1: #include #include using namespace std; class employee { protected: string name1; string address1; string shi1; string sheng1; string post1; char name[10]; char address[20]; char shi[10]; char sheng[10]; char post[7]; int num; public: shuru(); void changename(char str[]); void display();

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

《面向对象程序设计》实验指导书 实验一 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的二维数组。 2、每次打印都应该按照从上到下从左到右的顺序。 3、实验报告给出完整代码。 四、实验学时、性质:3学时、验证性 五、实验步骤: 1、编写程序将自己姓名的汉字转化为UNICODE编码,并打印。 2、用任意的23个整数初始化一个5X5的二维int类型数组,并逐行打印。 3、交换沿对角线上对称的元素,并打印转置后的矩阵。 实验四流程控制 一、实验目的: 1、掌握分支、循环语句的使用。 二、实验内容: 1、用循环语句打印一个99乘法表。 2、判断回文数(逆序排列后得到的数和原数相同)。 三、实验要求: 1、打印的乘法表应该呈现阶梯状。 2、给定一个1-99999之间的数,程序可以判断它的位数,并判断是否是回文数。

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.360docs.net/doc/0912737179.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/0912737179.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/0912737179.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

面向对象程序设计实验报告

. , 面向对象程序设计实验报告 班级:计算机科学与技术11-5 学号:0505 ( 姓名:高冉冉 日期:2012/7/2 \

题目3: 1.问题描述: 假设有图书类Book,包括书名、出版社名称、作者姓名、图书定价等数据成员。编程序完成Book类的设计,从键盘读入10本图书的各项数据,并将这10本图书的相关数据写入磁盘文件中,然后从中读出各图书数据,计算所有图书的总价值,并显示每本图书的详细信息,每本图书的信息显示在一行上。 2.实现代码: #include · #include #include #include<> using namespace std; class Book { private: char bookName[20]; etPrice(); - ioFile<>book[i]; cout<

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

实验 1 类和对象 1.1实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 1.2实验内容和步骤 1.输入下列程序 //test4-1.cpp #include 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=(“<

JAVA类的继承实验报告

《面向对象程序设计》实验报告 实验六、类的继承 课程代码:1H10500学分:6 实验类型:实践型实验学时:4个学时 实验时间:2017.11.23 实验地点:5407 班级:计算机164 专业:计算机科学与技术专业学号:2016011147 姓名:林文辉 一、实验目的 (1)学习JAVA继承的思想 (2)了解JAVA语言继承的实现 二、实验内容及步骤 内容:在圆柱体类Cylinder里,用一个构造方法调用另一个构造方法 步骤:方案的设计与分析(类结构图。。。。。。) (1)找出对象的共同属性和行为 (2)设计代表共同状态与行为的类 (3)决定子类是否需要让某项行为有特定的不同的运行方式 (4)寻找更多抽象化的机会 (5)完成类的继承层次 三、实验过程及结果 实验1代码: abstract class Graphics { abstract void parameter(); abstract void area(); } class Rectangle extends Graphics{ double h,w; Rectangle(double u,double v){h=u;w=v;} void parameter() { S ystem.out.println("矩形高度为:"+h+",矩形宽度为:"+w); } void area() { S ystem.out.println("矩形面积为:"+(h*w)); } }

class Circle extends Graphics{ double r; String c; Circle(double u,String v){r=u;c=v;} void parameter() { System.out.println("圆半径为:"+r+",圆颜色为:"+c); } void area() { System.out.println("圆面积为:"+(Math.PI*r*r)); } } class ExamAbs{ public static void main(String args[]) { Rectangle rec=new Rectangle(2.0, 3.0); Circle cir=new Circle(4.0, "Red"); Graphics[]g= {rec,cir}; for(int i=0;i

《面向对象分析与设计》实验报告

《面向对象分析与设计》 实验报告 班级:计科09-4班 姓名:郑翼 学号:08093435

实验一用例图 一、实验目的 1.学会分析系统中的参与者和用例 2.掌握用例图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM系统的用例图 四、实验截图

五、实验体会 通过这次实验,理解了用例图的基本用法,并且初步掌握了Rational Rose软件的使用。对以后面向对象的学习都是十分重要的。

实验二交互图 一、实验目的 1.学会用协作图实现用例 2.掌握顺序图的绘制方法以及顺序图和协作图的相互转换。 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 画出A TM取款的顺序图,并转换为协作图。 四、实验截图 顺序图

协作图 五、实验体会 通过实验,学会了用协作图实现用例,掌握了顺序图的绘制方法以及顺序图和协作图相互转换的方法,进一步的加深了对软件的使用。

实验三类图 一、实验目的 1.理解类的基本概念 2.理解类间的关系 3.掌握类图的绘制方法 二、实验器材 1. 计算机一台; 2. Rational Rose 工具软件; 三、实验内容 分析选课系统中的类及关系,然后画出它们的类图。 四、实验步骤 1.分析 在选课系统中,通过分析可抽象出如下几个类: 1.学生类 2.管理员类 3.课程类 学生类和管理员类的属性较容易分析,这里只列出课程类的属性和方法:(1)课程名称 (2)开课教室 (3)课程号 (4)授课教师 (5)选课的学生 (6)开课起始时间 (7)允许选课的学生人数 (8)设置课程号 (9)设置课程名称 (10)查询课程号

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

《面向对象程序设计》实验指导书 熊利祥编 武汉理工大学华夏学院 2015年1月

前言 一、实验课目的 通过本课程的学习培养学生对计算机软件开发语言及工具的综合能力。主要介绍Java 软件开发工具及编辑工具的使用方法、语言的语法及Java类的定义和使用、使用Java进行网络和多媒体编程的方法。通过本课程学习和上机实践,使学生掌握使用Java进行程序设计的基本技术与方法、具备软件开发的基础能力,为今后从事软件开发和应用打下基础。 二、实验要求: 1.课前预习 ①认真阅读实验指导书,了解实验内容; ②认真阅读有关实验的理论知识; ③读懂程序代码。 2.实验过程 ①按时到达实验室; ②认真听取老师对实验内容及实验要求的讲解; ③认真进行实验的每一步,观察程序代码与仿真结果是否相符; ④将实验过程中程序代码和仿真结果提交给老师审查; ⑤做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。 3.实验报告 ①按要求认真填写实验报告书; ②认真分析实验结果; ③按时将实验报告交给老师批阅。 三、实验学生守则 1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西; 2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件; 3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线; 4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。

目录 实验一JDK与Eclipse开发环境………………………………………………………… 实验二类的继承与多态实验………………………………………………………… 实验三GUI图形界面设计实验……………………………………………………………实验四网络编程实验………………………………………………………………………

java实验报告——对象和类

成绩: 面向对象原理与Java实践课程实验报告 实验1:对象和类 姓名 ____ 班级 ____ 学号 ____ 实验地点 ____ 实验时间 ____ 指导教师 ____

面向对象原理与Java实践课程实验报告 实验1:对象和类 一、实验目的: ●掌握类的定义及应用方法 ●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性 ●体会Java在类和对象的设计中体现的面向对象的思想 二、实验要求: ●具备Java基础知识(教材第1、2章内容) ●掌握Java中对象和类的基本概念和应用方法(教材第3章内容) ●设计类时注意保证类的封装性 ●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档) 三、实验内容: 设计并实现一个“广石化院电信学院学生通信录”系统。系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。记录的存储可采用数组或链表的方式。 四、设计思路: 为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。学生信息将会采用学生类的对象数组来储存。 五、程序源代码: 下面是ZhuJieMian 主界面类 package pkg_TXL; import java.util.Scanner; public class ZhuJieMian { /** * * 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转 */ public static void main(String[] args) {

面向对象程序设计,实验报告

安徽工业大学 面向对象程序设计实验报告 实验课程:《C++语言程序设计》 学生姓名: 学号: 专业班级: 2011年 12 月 18 日

目录 实验1熟悉C++开发环境及简单程序设计和应用 (3) 实验2基本控制结构程序设计 (6) 实验3 类与对象 (10) 实验4友元函数与友元类 (13) 实验5数组与指针 (16) 实验6静态成员 (20) 实验7类的继承 (22) 实验8多态 (24)

安徽工业大学实验报告 学生姓名:张虹学号:6100409033 专业班级:网络工程091 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 实验1熟悉C++开发环境及简单程序设计和应用 一、实验目的 1.初步了解C++程序的编译、连接和运行的过程。 2.掌握和理解C++程序的结构。 二、实验内容 1.使用VC 2.运行一个简单的C++程序 3.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数 三、实验步骤 1.启动VC 或

2.建立工程并输入以下程序 #include using namespace std; void main() { int i(1), sum(0); do { sum+=i; i++; }while(i<=10); cout<<"sum="<

3.保存文件、运行程序、退出VC程序、打开已经存在的文件 4.编程求出对任意输入的两个整数,求出该两个整数的最大公约数和最小公倍数编写以下代码: #include using namespace std; void main() { int a,b,c,d,i; cout<<"a="; cin>>a; cout<<"b="; cin>>b; for(i=1;i<=a && i<=b;i++) if(a%i==0 && b%i==0) c=i; for(i=a*b;i>=a && i>=b;i--) if(i%a==0 && i%b==0) d=i; cout<<"a和b的最大公约数为"<

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

《面向对象程序设计》课程实验指导书 合肥学院计算机系

实验一 Java开发环境的安装与配置,熟悉Java程序 结构 一、实验目的: 1. 掌握JDK的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。 3. 熟悉Editplus(或notePad,JCreator)编辑环境,编写简单的程序,并 编译和执行。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量Path, Classpath设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 4. 写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1.从https://www.360docs.net/doc/0912737179.html,上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Editplus(或 Textpad)环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.输出100以内的所有素数。 提示: 逐个判断小于a的每个正整数x,第二重循环针对x,判断其是否是质数。 2.编写程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!...的前 20项和 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码。 3.编译运行程序,观察输出结果是否正确。 五、自主实验(选1题完成实验报告) 1. 将所输入之正整数,以二、八、十六进制表示出来。 提示: 可写三个方法分别计算输出二、八、十六进制表示。 2.用户输入的一个分数(分别输入分子和分母)进行约分,并且输出约分后的分数(分别输出分子和分母)。例如输入分子为6并且分母为12,那么输出结果为1/2。 3.编程,计算e=1+1/1! +2/2! +……+n/n!。要求e值精确到小数点第5位。

相关文档
最新文档