当前位置:文档之家› 类和对象2 (3)

类和对象2 (3)

类和对象2 (3)
类和对象2 (3)

练习题目:

使用面向对象的思想描述游戏中的怪物

问题描述:

某公司要开发新游戏,请用面向对象的思想设计怪物类,设定属性包括:怪物名字、生命值、攻击力、防御力;方法包括:攻击的方法,防御的方法.

要求:

1、通过构造函数实现属性赋值

2、攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力

3、防御方法通过输入参数接收攻击力。需要判断,如果攻击力小于防御力,伤害值=0;反之伤害值=攻击力-防御力根据伤害值情况,显示不同的防御信息。内容包括怪物名字,防御力,防御后的生命值.

4、编写测试方法,通过构造函数实例化怪物类的对象,并调用相关方法(测试数据信息自定)

运行效果:

练习题目:

使用面向对象的思想描述班级和学员信息

问题描述:

某公司要开发“学员管理系统”,请使用面向对象的思想,描述班级和学员信息

要求:

1、分析班级和学员的属性和方法,设计班级类和学员类

2、在学员类中通过属性描述所在班级

3、通过带参构造函数实现属性赋值

4、编写测试方法实现信息输出

参考分析思路:

班级类:

属性:班级编号,班级名称

方法:介绍班级信息的方法。通过输入参数描述班级口号,介绍信息中包括编号、名称

学员类:

属性:学号,姓名,性别,年龄,所在班级

方法:学习的方法,描述学习状态。描述内容包括姓名、学号、

年龄、所在班级信息

运行效果:

要求将加减乘除的方法改写成带参方法,在定义一个运算方法ope(),接收用户选择的运算和两个数字,根据用户选择的运算计算结果。运行如图所示:

提示:定义方法ope(),参考如下:

public int ope(int op,int num1,int num2){

//实现返回运算结果}

实验三 类、对象基础知识

实验三类、对象基础知识 一、实验目的 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、熟练掌握封装性,多态性的概念 4、理解面向对象的程序设计方法。 二、实验内容与要求 1运行下面的程序,理解面向对象的程序设计方法的基本概念。 class value { public int x,y; public value(int a,int b) { x=a; y=b; } } public class Ch31 { public static void main(String args[]) { int total; value num=new value(24,65); total=num.x+num.y; System.out.println("add="+total); } } 2、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。提示:关键代码如下: public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); } …

类与对象

类与对象1:Point类1 Description 定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化),成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。 main函数如下(不得修改main函数): int main() { double x,y; cin>>x>>y; Point p1(x,y); p1.Display(); return 0; } Input Output Sample Input 12.5 22.7 Sample Output (12.5,22.7) ************************************************** #include using namespace std; class Point { public: Point(double xx,double yy) { x=xx;y=yy; } void Display() { cout<<"("<>x>>y; Point p1(x,y); p1.Display(); return 0; } 类与对象2:Point类2 Description

定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。 main函数如下(不得修改main函数): int main() { double x1,y1,x2,y2; cin>>x1>>y1; cin>>x2>>y2; Point p1(x1,y1); p1.Display(); p1.Set(x2,y2); p1.Display(); return 0; } Input Output Sample Input 10 25.5 5.5 20 Sample Output (10,25.5) (5.5,20) ************************************************** #include using namespace std; class Point { public: Point(double xx,double yy) { x=xx;y=yy; } void Display() { cout<<"("<>x1>>y1; cin>>x2>>y2;

实验3 类和对象

实验3 类和对象的创建与使用 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第1,3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 public class AccountOperation { public static void main(String [] args) { Account account1=new Account("650101","柳眉","天河学院",800.00); Account account2=new Account("650102","郑杰","天河学院",200.00); account1.transfer(account1,account2,300.0); account1.deposit(300.5); account1.withdraw(200); account1.withdraw(300); account1.query(); System.out.println(account1.toString()); //System.out.println(https://www.doczj.com/doc/3616123502.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

实验3 类的定义、对象的建立与使用

实验报告_实验3 类的定义、对象的建立与使用(学 生学号_姓名) 实验目的: 1、理解C++中class与struct的区别; 2、掌握类的定义以及成员函数的定义方法; 3、掌握对象的定义和对象成员的访问方式; 4、熟悉this指针的基本用法。 实验内容 二、((基础题)请按照下列要求定义一个Clock时钟类,并创建对象,再调用相应方法: 程序代码: //日期类的应用 #include using namespace std; class Clock // 定义日期类 { public: // 定义公有成员函数 void setTime(int h, int m, int s); void showTime(); private: // 定义私有数据成员 int hour; int minute;

int second; }; // 类定义体的结束 //类实现部分 void Clock::setTime(int h, int m, int s) { hour = h; minute = m; second = s; } void Clock::showTime() { cout << "设置时间为" << hour <<":"<< minute <<":"<< second << endl; } int main() { Clock now; now.setTime(8,30, 0); now.showTime(); return 0; } 三、(基础题)请按要求,编写程序(请将类的定义、成员函数的实现、类的使用分开): rect.h代码: #include

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d ) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法定义的变量:( b ) A 、一定在方法所有位置可见B、可能在方法的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:(d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c ) A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化 10、下面关于java中类的说法哪个是不正确的( c ) A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造方法是类中的特殊方法。 C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。 11、下列哪个类声明是正确的( d) A、public void H1{…} B 、public class Move(){…} C、public class void number{} D、public class Car{…} 12、下面的方法声明中,哪个是正确的(c) A、public class methodName(){} B、public void int methodName(){} C、public void methodName(){} D、public void methodName{} 13、下述哪些说法是不正确的?( b ) A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前必须初始化 14、下面对构造方法的描述不正确是( b)。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 A、void X(int k ){ i=k; } B、X(int k ){ i=k; } C、X(int m, int n ){ i=m; j=n; } D、X( ){i=0;j=0; } 19、有一个类A,以下为其构造方法的声明,其中正确的是

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

实验2 类和对象(一)

实验2 类和对象(一) 1、实验目的 (1)掌握声明类的方法,类和类的成员的的概念以及定义对象的方法。 (2)初步掌握用类和对象编制基于对象的程序。 (3)学习检查和调试基于对象的程序。 2、实验内容 (1)有以下程序: #include using namespace std; class Time //定义Time类 {public: //数据成员为公用的 int hour; int minute; int sec; }; int main( ) { Time t1; //定义t1为Time类对象 cin>>t1.hour; //输入设定的时间 cin>>t1.minute; cin>>t1.sec; cout<

实验四-类与对象

实验四类与对象 1.实验目的 1、使用类来封装对象的属性和行为; 2、掌握对象的组合以及参数传递; 3、掌握类变量与实例变量,以及类方法与实例方法的区别 2.实验内容 1、参考教科书,完成下面实验: 1)实验1 Tank类 2)实验2 计算机与光盘 3)实验3 家族的姓氏 4)实验4 三角形、梯形和圆形的类封装 5)实验5 实例成员与类成员 2、完成习题: 1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220;增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。 2)根据要求修改实验2,主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。 3、提高题 编写储蓄账户类及测试类,模拟存款,参考以下运行方式: (1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。 (2)提示用户从键盘输入储蓄账户编号。 (3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。 (4)相应储蓄账户的余额被更新。 (5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。 (6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。 (7)用户输入yes,继续执行步骤(2),否则显示退出信息。 最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。 3.实验步骤 参考教材中相关的实验。 4.评分标准

C++语言程序设计实验答案_类与对象

实验04 类与对象(6学时) (第4章类与对象) 一、实验目的 二、实验任务 4_1 声明一个CPU类。 包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 }; frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 4_2 声明一个简单的Computer类。 有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run和stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 4_3 声明一个表示时间的结构体。 可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

4_4(习题4-10)设计一个用于人事管理的People(人员)类。 考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号),sex(性别)、birthday(出生日期)、id(身份证号)等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现人员信息的录入和显示。要求包括:构造函数和析构函数、内联成员函数、组合。 三、实验步骤 1.(验证)声明一个CPU类,观察构造函数和析构函数的调用顺序。 首先声明枚举类型CPU_Rank,例如enum CPU_Rank{ P1=1, P2, P3, P4, P5, P6, P7 },再声明CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,声明成员函数run和stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示顺序。在主程序中声明一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:。(程序见步骤2) ★程序的运行结果: 2.(示例)调试程序文件。 使用调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下: 操作)调试操作步骤如下: (1)单击“调试 | 逐语句”命令,系统进行单步执行状态,程序开始运行,一个DOS 窗口出现,此时Visual Studio中光标停在main()函数的入口处。

实验一、类与对象

实验一类与对象 一、实验目的 1.掌握类的定义和使用。 2.掌握类的对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4.观察构造函数和析构函数的执行过程。 5.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验课时 4学时 三、实验任务 1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage 为浮点型的电压值。在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。 2.在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。 3.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram 为RAM类的一个对象,cdrom为CDROM类的一个对象。CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。 4.定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。

C++实验二类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

实验一 类和对象

实验一类和对象 Visual C++ 6.0集成开发环境的使用: Visual C++系列产品是微软公司推出的一款优秀的C++集成开发环境,其产品定位为Windows 95/98、NT、2000 系列Win32 系统程序开发,由于其良好的界面和可操作性,被广泛应用。由于2000 年以后,微软全面转向.NET 平台,Visual C++6.0 成为支持标准C/C++规范的最后版本。 1.启动 安装完系统后,可以选择如下两种方式启动 1) 点击Windows “开始”菜单,选择“程序”菜单下“Microsoft Visual Studio 6.0”子菜单下的快捷方式Microsoft Visual C++ 6.0 启动Visual C++ 6.0。 2) 点击Windows “开始”菜单,选择“运行”,输入msdev,即可启动。启动后的界面如下: 图 1 启动界面 2.建立工程

选择“File”菜单下的“New”菜单项或直接按Ctrl+N,启动新建向导,如图2 所示: 图 2 新建向导 选择在“Projects”属性页选择Win32 Console Application,在Project Name 中输入项目名称demo,在Location 中选择项目文件,如图2 中c:\test\demo,项目所有文件将保存在此文件。输入完毕,单击确定按钮,进入下一界面如图3:

图 3 项目类型向导 在图 3 所示界面中选择a simple application,然后点击Finish 按钮,系统显示图4 所示界面。如果想退回上一步可以选择“Back”按钮。 图 4 项目信息 在图 4 中选择OK 按钮,系统完成项目的创建,并保存项目相关的信息。项目的目录结构如图5 所示。 1) Demo.dsw 是项目工作区文件,双击此文件,即可打开此项目; 2) Demo.dsp 为项目文件; 3) demo.cpp 是项目中的一个源程序;stdafx.h 和stdafx.cpp 为自动创建的源程序,一般不用修改。 图 5 目录结构

实验三 类与对象(1)——耿祥义

实验三类与对象(1) 一、实验目的 (1)掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点; (2)掌握类得封装与对象的使用; (3)掌握修饰符和构造方法的使用规则; (4)掌握构造方法的使用,方法重载用于多态 (5)掌握包的使用 二、实验要求 (1)编写一个体现面向对象思想的程序; (2)编写一个创建对象和使用对象的方法的程序; (3)编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序; (4)编写体现类的多态性(成员方法重载、构造方法重载)的程序。 三、实验内容 (一)Java类的设计与编程 1. 创建一个Application 应用程序Demo3_ 2.java 文件.在Demo3_2.java文件中定义两个类。一个是CCircle,另一个是主类Demo3_2。 程序功能:描述一个圆类,其主要属性为半径,还有一个非常重要的常量是圆周率。该圆可以求出面积,可以设置半径和取得半径大小。 class CCircle { double pi; double radius; double getRadius() { return radius; } void setCircle(double r, double p) { pi=p; radius=r; } double getCircleArea() { return pi*radius*radius; } } public class Demo3_2 { public static void main(String args[]) { CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416); System.out.println("园半径="+cir1.getRadius()); System.out.println("园面积="+cir1.getCircleArea()); cir1.pi=3.14159; cir1.radius=10.0;

实验3 类和对象

实验三类和对象 一、实验目的: 熟悉类和对象的定义及使用;熟悉static关键字、this关键字,访问权限等。 二、实验内容: 1.编写一个Java应用程序,该程序有2个类:V ehicle(机动车)和User(主类)。 Vehicle类的成员变量有:speed(速度)、power(功率)。成员方法有:speedUp(int s)—加速,speedDown(int d)—减速,setPower(int p)—设置功率,getPower()—获取功率 请按下面给出的程序模版,填写缺少的代码,完成程序。 Vehicle.java public class Vehicle{ 代码1 //声明double型变量speed 代码2 //声明int型变量power void speedUp(int s) { 代码3 //将s的值累加到speed } void speedDown(int d) { 代码4 //从speed中减去d } void setPower(int p) { 代码5 //将p赋给power } void getPower() { 代码6 //返回power的值 } double getSpeed() { return speed; } } User.java public class User { public static void main(String args[]){ Vehicle car1,car2; 代码7 //创建对象car1 代码8 //创建对象car2 car1.setPower(128); car2.setPower(76); System.out.println(“car1的功率是:”+car1.getPower());

第4章 类与对象2

一、选择题 1定义类头时,不可能用到的关键字是()。 A) class B)private C)extends D)public 2.下列类定义中,不正确的是()。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 3.下列类头定义中,错误的是()。 A)public x extends y {...} B) public class x extends y {...} C)class x extends y implements y1 {...} D)class x {...} 4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( )。 A) float A a; B) public A a=A( ); C) A a=new int( ); D) static A a=new A( ); 5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是()。 A) public A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A; 6.设X 、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是()。 A) public X x1= new Y( ); B) X x1= X ( ); C) X x1=new X( ); D) int X x1; 7.设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是()。 A) static X x1; B) public X x1=new X(int 123); C) Y x1; D) X x1= X( ); 8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:_______________________________。 9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( )。 A) void X(int k ){ i=k; } B) X(int k ){ i=k; } C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; } 10. 有一个类A,以下为其构造方法的声明,其中正确的是( )。 A)public A(int x){...} B)static A(int x){...} C)public a(int x){...} D)void A(int x){...} 11.有一个类A,以下为其构造方法的声明,其中正确的是( )。 A)void A(int x){...} B)A(int x){...} C)a(int x){...} D)void a(int x){...} 12.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( )。 A) X( int m){ ... } B) void X( int m){ ... } C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... } 13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( )。 A) double X(double k ){ i=k; return i; } C) X( ){i=6;j=8; } B) X(double m, double n ){ i=m; j=n; } D) X(double k ){ i=k; }

实验一.类与对象实验报告

浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用学时安排:3 实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:2016329621068  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的 1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: windows或linux下的c++编译器 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU

处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 四、实验内容 编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。 要求: 1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 4.电梯一旦开始运作就会始终运行,直到窗口关闭。 5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。 五程序清单 #include #include #include using namespace std;

类和对象2 (3)

练习题目: 使用面向对象的思想描述游戏中的怪物 问题描述: 某公司要开发新游戏,请用面向对象的思想设计怪物类,设定属性包括:怪物名字、生命值、攻击力、防御力;方法包括:攻击的方法,防御的方法. 要求: 1、通过构造函数实现属性赋值 2、攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力 3、防御方法通过输入参数接收攻击力。需要判断,如果攻击力小于防御力,伤害值=0;反之伤害值=攻击力-防御力根据伤害值情况,显示不同的防御信息。内容包括怪物名字,防御力,防御后的生命值. 4、编写测试方法,通过构造函数实例化怪物类的对象,并调用相关方法(测试数据信息自定) 运行效果:

练习题目: 使用面向对象的思想描述班级和学员信息 问题描述: 某公司要开发“学员管理系统”,请使用面向对象的思想,描述班级和学员信息 要求: 1、分析班级和学员的属性和方法,设计班级类和学员类 2、在学员类中通过属性描述所在班级 3、通过带参构造函数实现属性赋值 4、编写测试方法实现信息输出 参考分析思路: 班级类: 属性:班级编号,班级名称 方法:介绍班级信息的方法。通过输入参数描述班级口号,介绍信息中包括编号、名称

学员类: 属性:学号,姓名,性别,年龄,所在班级 方法:学习的方法,描述学习状态。描述内容包括姓名、学号、 年龄、所在班级信息 运行效果: 要求将加减乘除的方法改写成带参方法,在定义一个运算方法ope(),接收用户选择的运算和两个数字,根据用户选择的运算计算结果。运行如图所示: 提示:定义方法ope(),参考如下: public int ope(int op,int num1,int num2){

c++类和对象实验报告

实验一类和对象 实验课程名:面向对象程序设计(C++) 专业班级:学号:姓名: 实验时间:实验地点:指导教师: 一、实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 二、实验内容 1.设计一个静态数组存储结构的顺序表类,要 求编程实现如下任务:建立一个线性表,首先 依次输人数据元素1,2,3,…,10,然后删除 数据元素6,最后依次显示当前线性表中的数 据元素。要求采用顺序表实现,假设该顺序表 的数据元素个数在最坏情况下不会超过50个。实验代码:#include using namespace std; const int MaxSize=100; //100只是示例性的数据,可根据实际问题具体定义 template //定义模板类SeqList class SeqList { public:

SeqList( ) {length=0;} //无参构造函数 SeqList(T a[ ], int n); //有参构造函数 ~SeqList( ) { } //析构函数为空 int Length( ) {return length;} //求线性表的长度 T Get(int i); //按位查找,取线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; template SeqList::SeqList(T a[ ], int n) { int i; if (n>MaxSize) throw "参数非法";

实验二 类与对象

实验二类与对象 一、实验目的 1、学习类与对象的定义,掌握类与对象的使用方法。 2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。 3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。 4、掌握用指针和引用向函数传递参数。 5、掌握静态数据成员和静态成员函数的使用。 6、理解友元与友元函数的作用与使用方法。 二、实验内容 1、下面是一个计算器类的定义,请完成该类成员函数的实现。 class Counter { public: Counter(int number); void increment(); //给原值加1 void decrement(); //给原值减1 int getValue(); //取得计数器值 int print(); //显示计数 private: int value; }; #include class count { public: counter(int number); void increment(); void decrement(); int getvalue(int); int print();

private: int value; }; void count::increment() { int a=value+1; } void count::decrement() { int b=value-1; } int count::getvalue(int s) { value=s; return 0; } int count::print() { cout<

文本预览
相关文档 最新文档