实验3 类和对象

合集下载

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

实验报告_实验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( ) 法4.写出OverrideTest中所缺的三行代码:public class OverrideTest {public static void main(String[] args) {ength;j++) ength __________;j++) ength ___________;i++){ e ngth;j++){问题:(1)二维数组如何声明、创建?二维数组的列数是否一定要求相同?答:数据类型数组名[ ][ ] 或数据类型[ ][ ] 数组名;不要求相同。

c++实验报告【范本模板】

c++实验报告【范本模板】

面向对象程序设计(C++)实验报告指导老师:***学生:吴健班级:软131学号:*********目录实验一、VC6.0环境入门与简单程序设计实验报告 (3)实验二、函数的应用实验报告 (7)实验三、类与对象实验报告 (14)实验四、C++程序结构实验报告 (22)实验五、数组、指针与字符串实验报告 (26)实验六、继承和派生实验报告 (33)实验七、多态性实验报告 (42)实验八、面向对象综合实验实验报告 (48)实验一、VC6.0环境入门与简单程序设计实验报告系软件工程班级 131 学号 139074164 姓名吴健同组者指导教师柯栋梁一、实验目的:1、熟悉VC++6.0开了环境并编写简单的C++程序。

3、使用C++语言编写简单的输入输出程序。

4、使用VC++6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。

二、实验内容:1、使用VC++建立一个标准C++程序,编译、运行如下程序:#include<iostream〉Int main(){Cout〈<”Hello World!\n";Cout<<”Welcome to C++!\n";}2、编程计算图形的面积。

程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来.3、使用DEBUG功能观察任务2程序运行中变量值的变化情况.三、实验要求:1、任务1要求熟悉VC++开发环境,并能够使用其建立第一个C++程序.2、实验前要做好充分准备,包括程序清单、调试步骤、调试方法,以及对程序结果的分析等。

四、实验报告:1.程序运行截图2.面积计算1、程序说明。

用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#include〈iostream>#include〈cmath〉using namespace std;int main(){cout〈<”1计算圆面积”<〈endl〈<"2计算矩形面积"<〈endl〈<"3计算正方形面积”〈〈endl<<"4退出"〈〈endl<<"请选择相应功能代码:”;int x; //x对应编号cin〉>x;double area;while(x!=4){if(x==1){double r;cout〈〈"半径:";cin〉>r;area=3。

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

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

《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。

(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。

(3)掌握简单C++程序的编写和调试方法。

(4)掌握重载函数的定义方法。

(5)能正确使用引用型变量。

2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。

②在自己指定的子目录中建立一个名为test.cpp的新文件。

③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。

观察和分析编译信息。

⑤根据编译信息指出的错误, 修改程序。

再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。

⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。

⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。

观察屏幕的变化。

在输出窗口应显示程序运行结果。

⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。

改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。

C++实验指导书专业资料

C++实验指导书专业资料

C++程序设计实验指导书实验一C++程序的运营环境和运营(2学时)实验名称: C++程序的运营环境和运营实验目的:1.熟悉C与C++的编程区别;2.熟悉C++的函数重载。

实验规定:求两个数的平方和。

规定如下:1、有int, float和long型的数据各3个;2.重载SumSqure函数求两个相同类型变量的平方和。

1、实验环节:2、添加头文献#include <iostream>和名字空间using namespace std。

若要使用cin和cout标准输入输出流, 则必须添加上述两个内容。

3、构建重载SumSqure函数。

SumSqure函数的功能是对输入的两个同类型形参a, b求其平方和, 并将结果返回。

对于输入和返回的不同类型int, float, long, 其函数内部实现代码是同样的, 所以可运用函数的重载写出三个SumSqure函数。

4、main函数中的赋值。

定义int, float, long三种类型的数据, 分别调用SumSqure函数, 测试其结果。

5、调用SumSqure函数。

注意SumSqure函数重载的调用, 根据SumSqure函数的定义可知: 实参必须是同一种类型的变量才干调用不同的SumSqure, 针对不同类型求平方和。

实验二类与对象(一)(4学时)实验名称: 类与对象(一)实验目的:1.掌握类的设计;2.掌握对象的创建;3.实现一个简朴的成员函数设计。

实验规定:求3个长方体的体积, 编写一个基于对象的程序, 数据成员涉及lenth, width, height。

规定用成员函数实现以下功能:1.由键盘分别输入3个长方体的长、宽、高;2.计算长方体的体积;3.输出3个长方体的体积。

实验环节:建立三个文献, 分别存储长方体类的声明头文献, 长方体类的定义文献和main函数测试文献。

注意: 类的头文献和类的定义实现文献的命名要一致!头文献信息:头文献长方体类的声明中, 类成员变量有:lenth,width,height;类成员函数有:V olumeCalculation(), InputData()。

类与对象实验报告

类与对象实验报告

类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。

本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。

实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。

类是对象的抽象描述,包含了对象的属性和方法。

以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。

2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。

通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。

例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。

3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。

例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。

这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。

4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。

通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。

例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。

实验结果:通过实验,我们深入了解了类与对象的概念和用法。

通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。

通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。

通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。

实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。

通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。

在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。

Java实验三实验报告1

Java实验三实验报告1

淮海工学院计算机工程学院实验报告书课程名:《Java语言实验与课程设计指导》题目:实验3——深入面向对象编程班级:学号:姓名:实验题目:1.定义一个学生类,定义一个大学生类和小学生类,这两个类是学生类的子类;定义一个选课接口,由大学生类实现该接口,定义一个年龄异常处理,当小学生年龄小于7岁时,弹出异常。

2.定义一个银行卡类,定义一个信用卡类和普通银行卡类,这两个类是银行卡类的子类;定义一个透支的接口,信用卡可以透支,普通银行卡不可以透支。

定义一个取款异常和透支异常,当普通银行卡取款超过银行卡余额时,弹出“取款异常”;当信用卡透支超过2万元时弹出“透支异常”。

实验代码:题1源代码:import java.awt.*;class student{String number,name,sex,bj;int age;student(String xuehao,String xingming,String xingbie,int nianling,String banji){number=xuehao;name=xingming;sex=xingbie;age=nianling;bj=banji;}}interface xuanke{abstract void select(String s);}interface illegal{abstract void illegal(int s);}class primary extends student implements illegal{String xx;primary(String xuehao,String xingming,String xingbie,int nianling,String banji,String xiaoxue){super(xuehao,xingming,xingbie,nianling,banji);}public void illegal(int s){age=s;if(age<7)System.out.println("\n出错~学生"+name+" 的年龄过小!");}}class college extends student implements xuanke{String dx,xk;college(String xuehao,String xingming,String xingbie,int nianling,String banji,String daxue){super(xuehao,xingming,xingbie,nianling,banji);dx=daxue;}public void select(String s){xk=s;}}public class test_1{public static void main(String args[]){primary p1=new primary("1","张三","男",13,"五(1)班","ZZZ小学");System.out.println(p1.number+" "++" "+p1.sex+" "+p1.age+" "+p1.bj+" "+p1.xx);p1.illegal(p1.age);primary p2=new primary("\n2","小红","女",6,"一(1)班","YYY小学");System.out.println(p2.number+" "++" "+p2.sex+" "+p2.age+" "+p2.bj+" "+p2.xx);p2.illegal(p2.age);college c1=new college("3","小茗","女",20,"软件112","XXX大学");c1.select("现代密码学");System.out.print("\n"+c1.number+" "++" "+c1.sex+" "+c1.age+" "+c1.bj+" "+c1.dx+" "+c1.xk+"\n");}}实验结果:题2源代码:import java.util.*;class bankcard{String kh,name;double yue;bankcard(String kahao,String yezhu,double shengyu) {kh=kahao;name=yezhu;yue=shengyu;}}interface touzhi{abstract void tz(double s);abstract void tzye(double s);abstract void illegal();}interface qkillegal{abstract void illegal();}class common extends bankcard implements qkillegalcommon(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void warning(){System.out.println("普通银行卡不可透支!");}public void illegal(){System.out.println("取款超额!");}}class xinyongka extends bankcard implements touzhi{double tzye;xinyongka(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void tz(double s){tzye=s;}public void tzye(double s){double t=20000+yue-s;if(s>yue)System.out.println(t);}public void illegal(){System.out.println("透支超额!");}}public class test_3{public static void main(String args[]){common c1=new common("62226200240001916658","张三",1200.00);System.out.println("卡号:"+c1.kh+"业主:"++"余额:"+c1.yue);System.out.println("请输入取款金额:");Scanner s1=new Scanner(System.in);double b=s1.nextDouble();if(b<c1.yue){double c=c1.yue-b;System.out.println("银行卡余额为:"+c);}elsec1.illegal();System.out.println("\n\n");xinyongka x1=new xinyongka("62236200243008615559","李四",500.00);System.out.println("卡号:"+x1.kh+"业主:"++"余额:"+x1.yue);System.out.println("信用卡可透支!透支金额为20000元!");System.out.println("请输入要取款金额:");Scanner s2=new Scanner(System.in);double a=s2.nextDouble();if(a<=x1.yue){double d=x1.yue-a;System.out.println("银行卡余额为:"+d);}else if(a>x1.yue&&a<=(20000+x1.yue)){System.out.println("透支余额剩余:");x1.tzye(a);}elsex1.illegal();}}实验结果:普通银行卡类:输入普通银行卡取款金额若输入金额小于余额则若大于余额则信用卡类:输入取款金额,若输入金额小于余额则若输入金额大于余额小于透支金额与余额之和,则若大于透支金额与余额之和,则。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

《面向对象程序设计》实验指导书 (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.定义类与对象
(1)类是代表一类实体的抽象。

它包含了一个共同拥有的结构和行为。

类是面向对象程序设计的基本元素。

(2)对象是一个实例。

它拥有一个特定于其类型的属性,并表现出对应的行为。

对象是程序中实际的可操作的元素。

2.类的成员
(1)类的成员可以是变量,函数,常量等等。

(2)变量:类的成员变量可以存储数据成员和提供给类的方法,这些变量被称为实例变量;类变量存储类及其对象的信息。

(3)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。

多态性是指一个类可以根据不同环境要求而采用不同的行为。

接口就是把数据和逻辑封装在一起的内部接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)pc调用setHardDisk(HardDisk h)方法,调用时实参是disk;
(6)pc调用show()方法。
4.共饮同井水:编写程序模拟两个村庄公用同一口井水。编写一个Village类,该类有一个静态的成员变量waterAmount,用于模拟井水的水量;实例变量peopleNumber表示村庄的人数,实例变量name表示村庄的名称。定义相应的成员方法操作成员变量。在主类Land的main()方法中创建两个村庄,设置村庄的名称、人数,通过一个村庄改变waterAmount的值,另一个村庄查看该值的结果。
提示:类变量是该类所有对象的共享数据;一般通过类方法操作类变量。
5.分析程序,给出运行结果
class B {
int x=100,y=200;
public void setX(int x){
x=x;
}
public void setY(int y){
this.y=y;
}
public int getXYSum(){
}
}
class B{
int n;
B(int n){
this.n=n;
}
public void setIntValue(int n){
this.n=n;
}
int intValueபைடு நூலகம்){
return n;
}
}
7.分析程序,给出输出结果
public class A{
public static void main(String args[]){
代码9 //car1调用speedUp方法,速度增加80
代码10 //car2调用speedUp方法,速度增加80
System.out.println(“car1目前的速度:”+car1.getSpeed());
System.out.println(“car2目前的速度:”+car2.getSpeed());
tom.x=22;
tom.y=33;
tom.z=55;
tom.f();
tom.g();
}
}
static long y;
y=200;
public void f(){
y=300;
}
public static void g(){
x=-23;
}
}
10.程序改错:将下面给出的程序修改成正确的代码
class Tom{
private int x=120;
protected int y=20;
int z=11;
class B{
int n;
static int sum=0;
void setN(int n){
this.n=n;
}
int getSum(){
for(int i=1;i<=n;i++)
sum=sum+i;
return sum;
}
}
public class A{
public static void main(String args[]){
{
代码4//从speed中减去d
}
void setPower(int p)
{
代码5//将p赋给power
}
void getPower()
{
代码6//返回power的值
}
double getSpeed()
{
return speed;
}
}
User.java
public classUser{
public static void main(String args[]){
B b1=new B(),b2=new B();
b1.setN(3);
b2.setN(5);
int s1=b1.getSum();
int s2=b2.getSum();
System.out.println(s1+s2);
}
}
9.程序改错:将下面给出的程序修改成正确的代码
class A{
int x=100;
private void f(){
x=200;
System.out.println(x);
}
void g(){
x=200;
System.out.println(x);
}
}
public class A{
public static void main(String args[]){
Tom tom=new Tom();
改进speedUP()方法,限制speed的值不能超过200。
改进speedDown()方法,限制speed的值不能小于0。
增加一个刹车方法void brake(),调用它能将speed的值变为0。
2.根据下面要求,编写一个Java应用程序:
①定义类StuCard,用到类成员变量(人数)和实例成员变量:学号、姓名、性别、专业、年级、籍贯等
car1.speedDown(10);
car2.speedDown(20);
System.out.println(“car1目前的速度:”+car1.getSpeed());
System.out.println(“car2目前的速度:”+car2.getSpeed());
}
}
功能扩展:
在类中定义构造方法,构造具有不同初始值的对象。
请按下面给出的程序模版,填写缺少的代码,完成程序。
Vehicle.java
public class Vehicle{
代码1//声明double型变量speed
代码2//声明int型变量power
voidspeedUp(int s)
{
代码3//将s的值累加到speed
}
void speedDown(int d)
主类Test的要求
(1)main方法中创建一个CPU对象cpu,cpu将自己的speed设置为2200;
(2)main方法中创建一个HardDisk对象disk,disk将自己的amount设置为200;
(3)main方法中创建一个PC对象pc;
(4)pc调用setCPU(CPU c)方法,调用时实参是cpu;
实验三类和对象
一、实验目的:
熟悉类和对象的定义及使用;熟悉static关键字、this关键字,访问权限等。
二、实验内容:
1.编写一个Java应用程序,该程序有2个类:Vehicle(机动车)和User(主类)。
Vehicle类的成员变量有:speed(速度)、power(功率)。成员方法有:speedUp(int s)—加速,speedDown(int d)—减速,setPower(int p)—设置功率,getPower()—获取功率
②初始化的时候用到构造方法,提供两个以上构造方法
③多个类(业务类StuCard和测试主类),用到包的概念,且分别放到不同的包中
④用到类成员访问权限,要求类成员变量为Public,实例成员变量为Private
⑤制作公有的set和get方法与外界通过消息调用的方式通信
⑥在主类中实现对业务类StuCard的读、写、修改属性等功能
Vehicle car1,car2;
代码7 //创建对象car1
代码8 //创建对象car2
car1.setPower(128);
car2.setPower(76);
System.out.println(“car1的功率是:”+car1.getPower());
System.out.println(“car2的功率是:”+car2.getPower());
Integer integer=new Integer(20);
add(integer);
System.out.println(integer.intValue());
}
public static void add(Integer m){
int t=777;
m=new Integer(t);
}
}
8.分析程序,给出输出结果
public class A{
public static void main(String args[]){
B b=new B(20);
add(b);
System.out.println(b.intValue());
}
public static void add(B m){
int t=777;
m.setIntValue(t);
return x+y;
}
}
public class A{
public static void main(String args[]){
B b=new B();
b.setX(-100);
b.setY(-200);
System.out.println(“sum=”+b.getXYSum());
}
}
6.分析程序,给出输出结果
在完成以上功能要求的情况下,可以进一步扩展。
3.用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
PC类与CPU和HardDisk类关联的UML图如下:
其中,CPU类要求getSpeed()返回speed的值,要求setSpeed(int m)方法将参数m的值赋值给speed。HardDisk类要求getAmount()返回amount的值,要求setAmount(int m)方法将参数m的值赋值给amount。PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk(HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示cpu的速度和硬盘的容量。
相关文档
最新文档