类与对象(1)
类与对象(6学时)
一、实验目的
1.掌握C++类的概念和基本组成,学会设计类,掌握类对象的声明和使用方法;
2.熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用;
3.掌握静态数据成员的使用。
二、实验内容及步骤
1.声明一个Circle类,有
1)数据成员Radius(半径)
2)成员函数GetArea()计算圆的面积
3)构造函数Circle(float radius)进行初始化
4)析构函数
在主函数中创建一个Circle类的对象进行测试(输入一个数值,作为Circle类对象的半径,调用该对象的GetArea()求以该数值为半径的圆的面积)。
2.声明一个tree类,有
1)数据成员ages(树龄)
2)成员函数grow(int years)对ages加上years
3)成员函数age()显示对象的数据成员ages的值
4)构造函数tree(int n=0)进行初始化
5)析构函数
在主函数中创建一个tree类的对象进行测试(创建一个树龄为18的对象,调用age()显示树龄,之后调用grow(4),生长4年,再显示树龄)。
3.改正以下程序中的错误,并分析错误原因。提示:该程序中point类的
构造函数定义不正确, 在main()中对数据成员的访问不正确。要求修改
程序后,在主函数中创建一个对象并初始化为坐标(5,5),然后输出
这个点的X,Y坐标。
4.声明一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两
点的坐标,并有成员函数计算矩形的周长及面积。编程实现求左下角与右上角坐标分别为(2.1,3.2),(5.2,6.3)的矩形周长及面积。
5.人员信息管理系统:
以一个小型公司的人员管理为例,说明类及成员函数的设计。提示:
1)类的设计:
某小型公司,需要存储雇员的编号、级别、月薪,并显示全部信息。
根据这些需求,设计一个类employee,在该类中,包括的数据成员有:编号(int individualEmpNo)
级别(int grade)
月薪(float accumPay)
成员函数有:
设置编号(void setEmpNo(int steps)):编号顺序加1(利用静态变量实现)
提取编号(void getEmpNo)
晋升级别(void promote(int increment)):提升的级别由参数指定
提取级别(int getGrade)
设置月薪(void SetAccumPay(float pa)):
提取月薪(float GetAccumPay)
构造函数(用于设置数据成员编号、级别和月薪初值)
析构函数
2)整个程序分为两个独立的文档:employee.h(包含类的定义和类的
实现)和employee.cpp(主函数文件)
3)在主函数main()中创建employee类的两个对象,对它们设计编号、
级别和月薪,并输出每个雇员的基本信息。
实验5 类和对象1答案
实验5:Java类与对象 一、实验目的 (1)使用类来封装对象的属性和功能; (2)掌握Java类的定义。 (3)java对象的使用 二、实验任务 (1)按要求编写一个Java程序。 (2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。 三、实验内容 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。 class Student{ long studentID; int classID; String name; String sex; int age; public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID; this.classID=classID; https://www.360docs.net/doc/bd2168673.html,=name; this.sex=sex; this.age=age; } public long getStudentID(){ return studentID; } public int getClassID(){
实验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.360docs.net/doc/bd2168673.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;
实验一:类和对象1
实验一:类和对象 【实验目的】 1.理解对象和类,掌握类的定义及如何创建一个对象; 2.掌握构造方法的运用; 3.掌握方法的定义和参数传递; 4. 掌握类的继承机制。 【实验准备】 一、复习配套教材相关章节的内容; 二、预习本次实验; 【实验内容】 1.编写一个程序,显示水果的定购行情。定义一个带有参数的构造方法,这些参数用于存放产品名,数量和价格。在主程序中输出三种不同的水果。package avage; public class text { String name; int agr; double page; public text(){ } public text(String name,int agr,double page){ https://www.360docs.net/doc/bd2168673.html,=name; this.agr=agr; this.page=page; } public void evagre(){ System.out.println("水果名为:"+https://www.360docs.net/doc/bd2168673.html,); System.out.println("水果数量:"+this.agr); System.out.println("水果单价:"+this.page); } } public class text1 { /** * @param args
*/ public static void main(String[] args) { // TODO Auto-generated method stub text s=new text(); https://www.360docs.net/doc/bd2168673.html,="苹果"; s.agr =10; s.page=1.0; s.evagre(); text c=new text(); https://www.360docs.net/doc/bd2168673.html,="香蕉"; s.agr =10; s.page=1.0; s.evagre(); text d=new text(); https://www.360docs.net/doc/bd2168673.html,="橘子"; s.agr =10; s.page=1.0; s.evagre(); 2. 编写一个学生类,封装学生的学号、姓名、成绩等信息。再编写一个主类,
类和对象练习题
类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d d) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法内定义的变量:( b b ) A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:( d d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c 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 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 b )。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( bb b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( a )。 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的语句中正确的是( d ) 。 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 实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:20  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的 1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: windows或linux下的c++编译器 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 四、实验内容 编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。 要求: 1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。
2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 4.电梯一旦开始运作就会始终运行,直到窗口关闭。 5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。 五程序清单 #include 实验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()函数的入口处。 广东技术师范学院实验报告 学院:计算机科学学 院 专业: 计算机科学与 技术(师范) 班级:成绩: 姓名:孔哥哥学号:组别:组员: 实验地点:Win10电脑实验日期:指导教师签名: 实验名称: 一、实验目的: 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、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。定义主类,创建帐户类的对象,并完成相应操作。 2.1新建一个AccountTester的类,以下是代码: public class AccountTester { public static void main(String[] args) { BankAccount anAccount; anAccount=new BankAccount("小明",12121000,1000); System.out.println("账户名字:"+anAccount.getOwnerName()); System.out.println("账户号码:"+anAccount.getAccountNumber()); System.out.println("账户现有:$"+anAccount.getBalance()); System.out.println("存款$500,以后有:"+anAccount.setBalance(500)); System.out.println("取款$700,以后有"+anAccount.withdraw(700)); } } 2.2再建一个BankAccount类,代码如下: //定义类方法 public class BankAccount { private String ownerName; private int accountNumber; private float balance; //定义构造函数,如果没有接收参数就生成一个空的对象 public BankAccount(){ 实验一类和对象 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 目录结构C++语言程序设计实验答案_类与对象
实验1:类、对象基础知识运用
实验一 类和对象
C++实验二类与对象(附答案)