实验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++)实验报告指导老师:***学生:吴健班级:软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++面向对象程序设计》实验内容实验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++程序的运营环境和运营(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语言实验与课程设计指导》题目:实验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个实验,含参考代码)要点
面向对象程序设计实验指导书(适用:电子信息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)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。
多态性是指一个类可以根据不同环境要求而采用不同的行为。
接口就是把数据和逻辑封装在一起的内部接口。
java类与对象实验报告
java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。
在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。
二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。
三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。
我们首先需要定义一个类,以便创建对象。
类的定义包括类名、属性和方法。
属性即对象的特征,方法即对象的行为。
2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。
对象是类的实例化,每个对象都有自己的属性和方法。
3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。
属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。
4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。
构造方法的名称必须与类名相同,没有返回类型,可以有参数。
5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。
通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。
6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。
通过使用关键字"extends"来实现继承。
7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。
通过方法的重写和重载来实现多态性。
四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
c++程序设计类和对象实验总结
一、实验目的在本次C++程序设计实验中,主要目的是通过对类和对象的学习和掌握,进一步加深对C++程序设计语言的理解和应用。
通过具体的实验操作,提高学生的编程能力和解决问题的能力,培养学生的动手能力和团队协作精神。
二、实验内容1. 掌握类的概念和基本语法,包括类的定义、成员变量、成员函数等;2. 熟悉对象的概念和使用方法,了解对象的初始化和销毁;3. 学习类的继承和派生的知识,掌握继承与派生的语法和使用;4. 能够独立编写包含类和对象的程序,实现各种功能;5. 通过实践项目,提高自己的编程水平,锻炼解决问题的能力。
三、实验过程在实验过程中,首先我们需要了解类和对象的概念,理解类的定义和对象的创建方法。
编写简单的程序进行练习,例如创建一个包含学生信息的类,并实例化对象,调用成员函数来输出学生信息。
也需要深入学习类的继承和派生的知识,理解基类和派生类的关系,掌握虚函数的概念和使用方法。
在实验中,我们编写了多个实例程序来练习类的继承和派生,加深了对这一知识点的理解。
在实验过程中,我们还遇到了一些问题,例如在使用多重继承时需要特别注意类的构造和析构顺序,以及在使用虚函数时需要注意动态绑定的原理等。
通过解决这些问题,我们不断提高了自己的编程水平,加深了对C++语言的理解。
四、实验总结通过本次实验,我们深刻理解了类和对象的概念,掌握了类的定义和对象的创建方法。
在实验中,我们编写了多个功能丰富的程序,包括学生信息管理系统、图形类的继承等。
这些程序不仅巩固了所学的知识,也让我们感受到了编程的乐趣。
通过与同学的讨论和交流,我们也学到了很多新的知识和技巧。
本次实验对我们的帮助很大,让我们更深入地理解了C++程序设计语言,提高了我们的编程水平。
希望在以后的学习和实践中,能够进一步加深对类和对象的理解,不断提高自己的编程能力。
在本次的C++程序设计实验中,我们深入学习了类和对象的概念,并通过实际的编程练习加深了对C++程序设计语言的理解和应用。
实验三类与对象
实验三类与对象实验三类与对象1、实验目的1)使用类来封装对象的属性和功能。
2)掌握类变量与实例变量,以及雷方法与实例方法的区别。
3)掌握使用package和import语句。
2、实验内容1)编写一个Java应用程序,该程序中有3各类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:●Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。
●Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。
●Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
程序模板:AreaAndLength.java请按模板要求,将【代码】提换为Java程序代码。
class Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a, double b, double c){【代码1】//参数a、b、c分别赋值给sideA、sideB、sideC if(【代码2】)//a、b、c构成三角形的条件表达式{ 【代码3】//给boo赋值}else{ 【代码4】//给boo赋值}}double getLength(){ 【代码5】//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p = (sideA + sideB + sideC) / 2.0;area = Math.sqrt(p * (p – sideA) * (p – sideB) * (p – sideC)); return area;}else{System.out.println(“不是一个三角形,不能计算面积”); return 0;}}public void setABC(double a, double b, double c){【代码6】//参数a、b、c分别赋值给sideA、sideB、sideC if(【代码7】)//a、b、c构成三角形的条件表达式{ 【代码8】//给boo赋值}else{【代码9】//给boo赋值}}}class Lader{double above,bottom,height,area;Lader(double a,double b,double h){ 【代码10】//方法体,将参数a、b、c分别赋值给above、bottom、height }double getArea(){ 【代码11】//方法体,要求计算出area并返回}}class Circle{double radius,area;Circle(double r){ 【代码12】//方法体}double getArea(){ 【代码13】//方法体,要求计算出area并返回}double getLength(){ 【代码14】//getArea方法体的代码,要求计算出length并返回}void setRadius(double newRadius){ radius = newRadius;}}public class AreaAndLength{public static void main(String args[]){double length,area;Circle circle = null;Trangle trangle;Lader lader;【代码15】//创建对象circle【代码16】//创建对象trangle【代码17】//创建对象lader【代码18】//调用Circle方法返回周长并赋值给lengthSystem.out.println(“圆的周长:”+length);【代码19】//调用Circle方法返回面积并赋值给areaSystem.out.println(“圆的面积”+area);【代码20】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);【代码21】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:“+area);【代码22】//调用Lader方法返回面积并赋值给area;System.out.println(“梯形的面积:”+area);【代码23】//调用Trangle方法设置三个边,要求将三个边修改为12,34,15【代码24】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:”+area);【代码25】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);}}实验后的练习(1)程序中仅仅省略【代码15】,编译能通过吗?(2)程序中仅仅省略【代码16】,编译能通过吗?(3)程序中仅仅省略【代码15】,运行时出现怎样的异常提示?(4)给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC(5)让AreaAndLength类中的Circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。
C++面向对象程序设计实验指导
C++面向对象程序设计实验指导书(第三版)(适用于理工科)学号:姓名:班级:指导老师:计算机系2019年7月实验1 C++程序的运行环境和运行C++程序的方法一、实验目的和要求1.熟悉VS2015的集成开发环境;2.学会使用VS2015编辑、编译、连接和运行C++程序;3.通过运行简单的C++程序,初步了解C++源程序的结构和特点;4.学会使用简单的输入输出操作。
二、实验内容1.编辑、编译、连接和运行以下的C++程序#include<iostream>using namespace std;int main(){cout<<"Hello!\n";cout<<"This is a program."<<endl;return 0;}2.编译下列程序,改正所出现的错误信息,并写出输出结果。
(1)#include<iostream>using namespace std;int main(){cin>>a;int b=3*a;cout<<"b=<<b<<\n";return 0;}(2)int main(){cout<<"Hello!\n";cout<<"Welcome to C++!";}(3)#include<iostream>using namespace std;int main(){int x,y;x=5;y=6;int z=x*y;cout<<"x*y="<<z<<endl;return 0;}3.请填空完成以下程序,并上机调试正确,写出运行结果。
#include<iostream>using namespace std;int add(int a,int b);int main(){int x,y,sum;cout<<"Enter two numbers:”<<’\n’;//在下划线处填上语句,完成用cin读入x和y__________________________________________sum=add(x,y);cout<<”The sum is:”<<sum<<’\n’;return 0;}int add(int a,int b){//在下划线处填上语句,完成计算a与b的和并返回之_________________________}实验2 C++简单程序设计练习一、实验目的和要求1.进一步熟悉VS2015的集成开发环境。
JAVA实验报告-实验3-类与对象-
Java Object-Oriented Programming Experimental ReportSystem.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2+ ", and " + lucky3);}}3.2 Working with Strings(Choose to do)3.3 Rolling Dice3.4 Computing Distance3.5 formatting Output3.6 Playing with Cards(Choose to do)3.7 Experimenting with the Integer Class(Choose to do) 3.8 Nested Panels(1)宽度两倍(4)添加主界面宽度高度设定(5)添加MyPanels4.Experimental results and data processing5.Analysis and discussionScore: 6.Teacher ReviewsSignature:Date:Experimental Report List1Exercises1) Source code list3.3package test_java_03;import java.util.Random;public class point3_3 {public static void main(String[] args) {Random ger = newint lucky1, lucky2, lucky3;lucky1 = ger.nextInt(6)+1;lucky2 = (int)(ger.nextFloat()*6)+1;lucky3 = (int)(ger.nextFloat()*10)+20;System.out.print(lucky1+lucky2);}}3.4package test_java_03;import java.util.Scanner;public class point_3_4 {public static void main (String[] args){double x1, y1, x2, y2;double distance;Scanner scan = new Scanner(System.in);System.out.print ("Enter the coordinates of the first point " + "(put a space between them): ");x1 = scan.nextDouble();y1 = scan.nextDouble();System.out.print ("Enter the coordinates of the second point: ");x2 = scan.nextDouble();y2 = scan.nextDouble();doubley=Math.abs(y2-y1)*Math.abs(y2-y1),x=Math.abs(x2-x1)*Math.abs(x2-x1);double z=Math.sqrt(y+x);System.out.print("The distance between the two points is "+z);}}3.5package test_java_03;import java.util.*;import java.text.NumberFormat;import java.text.DecimalFormat;public class point_3_5 {public static void main (String[] args){final double OUNCES_PER_POUND = 16.0;double pricePerPound;double weightOunces;double weight;double totalPrice;Scanner scan = new Scanner(System.in);NumberFormat money=NumberFormat.getCurrencyInstance();DecimalFormat fmt=new DecimalFormat("0.#####");System.out.println ("Welcome to the CS Deli!!\n ");System.out.print ("Enter the price per pound of your item: ");pricePerPound = scan.nextDouble();System.out.print ("Enter the weight (ounces): ");weightOunces = scan.nextDouble();weight = weightOunces / OUNCES_PER_POUND;totalPrice = pricePerPound * weight;System.out.println("total price is:"+fmt.format(totalPrice));}}3.8(1)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.blue);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(4)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// JPanel subPanel4 = new JPanel();// subPanel4.setPreferredSize(new Dimension(320,20));// subPanel4.setBackground(Color.orange);// JLabel label4 = new JLabel("My Panels");// subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(320,260));//primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(5)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);JPanel subPanel4 = new JPanel();subPanel4.setPreferredSize(new Dimension(320,20));subPanel4.setBackground(Color.orange);JLabel label4 = new JLabel("My Panels");subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(400,400));primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}。
c++教案第三章:类与对象
在程序的执行过程中,当遇到某一对象的生存期结束时,系统自动调用析构函数,然后再收回为对象分配的存储空间。
对象在定义时自动调用构造函数,生存期即将结束时调用析构函数!
类中的成员数据是另一个类的对象。可以在已有抽象的基础上实现更复杂的抽象。
原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对对象成员初始化。
类名(形参表);//构造函数的原型
//类的其它成员
};
类名::类名(形参表){//构造函数的实现
//函数体
}
类的构造函数承担对象的初始化工作,它旨在使对象初值有意义。
对构造函数,说明以下几点:
1.构造函数的函数名必须与类名相同。构造函数的主要作用是完成初始化对象的数据成员以及其它的初始化工作。
2.在定义构造函数时,不能指定函数返回值的类型,也不能指定为void类型。
由于构造函数属于类的成员函数,它对私有数据成员、保护的数据成员和公有的数据成员均能进行初始化。
当定义类对象时,构造函数会自动执行。
调用默认构造函数的语法:类名类对象名;
在程序中定义一个对象而没有指明初始化时,编译器便按默认构造函数来初始化该对象。
默认构造函数并不对所产生对象的数据成员赋初值;即新产生对象的数据成员的值是不确定的。
析构函数是在对象生存期即将结束的时刻由系统自动调用的。显式定义析构函数格式为:
类名::~析构函数名( ) {
语句;
}
若在类的定义中没有显式地定义析构函数时,系统将自动生成和调用一个默认析构函数,其格式为:
类名::~默认析构函数名( ) {
}
任何对象都必须有构造函数和析构函数,但在撤消对象时,要释放对象的数据成员用new运算符分配的动态空间时,必须显式地定义析构函数。
《面向对象程序设计》实验指导书
《⾯向对象程序设计》实验指导书《⾯向对象程序设计》实验指导书郭⽟柱⼴东商学院信息学院⼆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的对象,修改该对象的年龄,并输出该对象的年龄。
实验一.类与对象实验报告
浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的定义与使用学时安排: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 <iostream>#include <ctime>#include <windows.h>using namespace std;int n,floorNumber;class Elevator{private:int floor; //电梯总的楼层数bool up; //是否上行,bool为布尔类型,可取值true或falsebool down; //是否下行int currentFloor; //当前所在楼层public:Elevator(int floor);void setUpButton(); //按下上行按钮void setDownButton(); //按下下行按钮void setFloorNumber(int floorNumber); //根据要进入的楼层电梯开始运行,并逐层显示经过的楼层int getCurrentFloor();//获得当前所在楼层void charge();int choice();};Elevator::Elevator(int f){floor =f;up=false;down=false;currentFloor=1;};void Elevator::setUpButton(){if(currentFloor>floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能上行!"<<endl<<endl;}else if(floorNumber>floor){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太高啦!您想上天?!"<<endl<<endl;}else up=true;}void Elevator::setDownButton(){if(currentFloor<floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能下行!"<<endl<<endl;}else if(floorNumber<1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太低啦!您想入地?!"<<endl<<endl;}else down=true;}void Elevator::setFloorNumber(int floorNumber){if(up){for(;currentFloor<floorNumber;currentFloor++){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;up=false;}if(down){for(;currentFloor>floorNumber;currentFloor--){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;down=false;}}int Elevator::getCurrentFloor(){return currentFloor;}int Elevator::choice(){cin>>n;if(n==2&&getCurrentFloor()==1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您已经在第一层了!除非您自己打洞,不然我是不会带你下去的!"<<endl<<endl;return 0;}switch(n){case 1:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setUpButton();setFloorNumber(floorNumber); break;case 2:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setDownButton();setFloorNumber(floorNumber); break;case 3:return -1;default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREG ROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"只能选上升和下降!您难道还想玩电梯漂移?!"<<endl<<endl; break;}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"当前电梯停在"<<getCurrentFloor()<<"层"<<endl;}void Elevator::charge(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"---请选择操作---"<<endl;cout<<"| 1.上升 |"<<endl;cout<<"| 2.下降 |"<<endl;cout<<"| 3.退出 |"<<endl;cout<<"|--------------|"<<endl;}int main(){long a;time(&a);int floor;cout<<"告诉我总共有几层"<<endl;cin>>floor;Elevator el(floor);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<ctime(&a)<<endl;cout<<"本电梯共"<<floor<<"层,欢迎您的使用"<<endl<<endl;精选文档while(1){int i=0;el.charge();i=el.choice();if(i==-1) break;}return 0;}六运行结果七实验心得实验很有趣,让我初步体会了程序猿的感受。
C++实验指导书
C++程序设计实验指导书实验一C++程序的运行环境和运行(2学时)实验名称:C++程序的运行环境和运行实验目的:1、熟悉C与C++的编程区别;2、熟悉C++的函数重载。
实验要求:求两个数的平方和。
要求如下:1、有int,float和long型的数据各3个;2、重载SumSqure函数求两个相同类型变量的平方和。
实验步骤:1、添加头文件#include <iostream>和名字空间using namespace std。
若要使用cin和cout标准输入输出流,则必须添加上述两个内容。
2、构建重载SumSqure函数。
SumSqure函数的功能是对输入的两个同类型形参a,b求其平方和,并将结果返回。
对于输入和返回的不同类型int,float,long,其函数内部实现代码是一样的,所以可利用函数的重载写出三个SumSqure函数。
3、main函数中的赋值。
定义int,float,long三种类型的数据,分别调用SumSqure函数,测试其结果。
4、调用SumSqure函数。
注意SumSqure函数重载的调用,根据SumSqure函数的定义可知:实参必须是同一种类型的变量才能调用不同的SumSqure,针对不同类型求平方和。
实验名称:类与对象(一)实验目的:1、掌握类的设计;2、掌握对象的创建;3、实现一个简单的成员函数设计。
实验要求:求3个长方体的体积,编写一个基于对象的程序,数据成员包括lenth,width,height。
要求用成员函数实现以下功能:1、由键盘分别输入3个长方体的长、宽、高;2、计算长方体的体积;3、输出3个长方体的体积。
实验步骤:1、建立三个文件,分别存储长方体类的声明头文件,长方体类的定义文件和main函数测试文件。
注意:类的头文件和类的定义实现文件的命名要一致!2、头文件信息:头文件长方体类的声明中,类成员变量有:lenth,width,height;类成员函数有:V olumeCalculation(), InputData()。
Java程序设计实验指导书(答案)
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
教育实验的基本类型
教育实验的基本类型为了在教育研究中正确运用实验研究法并促进实验法的发展,必须对教育实验作出科学合理的分类。
掌握不同的分类标准,确定教育实验类型、特点、操作程序、适用范围和条件是搞好教育实验的一个重要前提。
(一)实验室实验与自然实验根据实验进行的场所,可分为实验室实验和自然实验。
1.实验室研究实验室实验指研究者根据研究的需要于经过专门设计的、人工高度控制的环境中进行的实验。
这类实验的优点是能把实验中的各种变量严格分离出来,并给予确切的操作与控制,提高研究结论的准确性和可靠性。
2.自然实验自然实验也叫现场实验,是在实际的教育情境中进行的实验。
(二)确认性实验、探索性实验与验证性实验1.确认性实验这类实验的目标主要在于借助实验搜集事实材料,确认所研究的对象是否具有研究假说内容的基本特征,并推动教育实践的发展,也叫试探性实验。
研究问题来自实际,所以具有直接的实践意义。
实验强调的是研究的应用价值,在事实基础上概况经验性规律,追求最大限度的有效性。
这类实验在现场情境下进行,在研究方法上带有很大的试探性,操作程序不太规范。
因此,内在、外在效度均不高。
2.探索性实验这类实验包括有预测作用的超前实验。
它是以认识某种教育现象或受教育者个性发展规律为目标,通过揭示与研究对象有关的因果关系及问题的解决,来尝试创建某种理论体系,所以具有较强的创新性。
探索性实验主要研究教育理论体系中的根本性问题,有重要的理论意义和实践指导意义。
此类实验以专门研究人员为主进行。
3.验证性实验它是以验证已取得的实验成果为目标,对已经取得的认识成果用再实践的经验来检验、修正和完善。
这类实验具有明显的重复性,是在不同环境条件下反复进行的,不仅对实验条件有明确分析,而且实验方案具有可操作性,关注实验结果应用的普遍性,追求实验较高的外在效度。
(三)单因素实验与多因素实验根据同一实验中自变量因素的多少,可分为单因素实验和多因素实验。
1.单因素实验它是指同一实验中研究者只操纵一个自变量的实验,也叫单一变量实验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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(); error!!}}class Account{private String account;private String name;private String address;private double balance;static double minBalance=10.0;public Account(String account,String name,String address,double balance){this.account=account;this.address=address;=name;this.balance=balance;}public void deposit(double cash){System.out.print("您账户原有余额:"+balance+" ");System.out.print("现存入:"+cash+" ");balance+=cash;System.out.println("现有余额:"+balance);}public void withdraw(double cash){double temp=balance-cash;if(temp<minBalance)System.out.println("至少保留余额:"+minBalance);else{balance=temp;System.out.println("取款成功!取款"+cash+" "+"现有余额:"+balance);}}public void tranfer(Account a1,Account a2,double cash){double temp=a1.balance-cash;if(temp<minBalance)System.out.println("余额不足!");else{a1.balance-=cash;a2.balance+=cash;System.out.println("转账成功!");System.out.println(+"转出"+cash+","++"转入"+cash);System.out.println(+"现有余额:"+a1.balance+","++"现有余额:"+a2.balance);}}public void query(){System.out.println("现有余额:"+balance);}public String toString(){return "账号:"+account+" "+"姓名:"+name+" "+"地址:"+address+" "+"现有余额:"+balance;}}2、两游戏角色决斗。
(选做,不需写作业本上)角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。
经验值每增加50时,生命值+1;生命值<0判为负。
生命值初始为1000,经验值初始为0。
给定二个不同的角色,判定交手的胜负关系。
提示:step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。
step2:建立fight方法,接收二个角色类型的参数,返回胜者。
step3:初始化二角色,调用fight方法。
class Role{int n,exp,hp; //n:交手次数exp:经验值hp:生命值Role(int h,int e) //构造函数,以生命值、经验值初始化角色对象{hp=h;exp=e;}Role fight(Role r1,Role r2) //接收两个角色类型的参数,返回胜者{while(r1.hp>=0 && r2.hp>=0) //执行计算决斗胜负的逻辑{r1.n++;//交手次数+1r1.hp--;//生命值-1r1.exp+=2;//经验值+2if( r1.exp%50==0)r1.hp++;//经验值每增加50时,生命值+1r2.n++;//交手次数+1r2.hp-=2;//生命值-2r2.exp+=3;//经验值+3if(r2.exp%50==0)r2.hp++;//经验值每增加50时,生命值+1}if(r1.hp>=0)//判断胜负System.out.print("角色1获胜");return r1;}else{System.out.print("角色2获胜");return r2;}}public static void main(String[] args){Role r1=new Role(1000,0);//初始化角色1Role r2=new Role(1000,0);//初始化角色2Role win=r1.fight(r1,r2);//决斗,返回胜者System.out.println(",双方交手了"+win.n+"次");}}3、根据分数录取学生。
设计一个学校类,其中包含成员变量line(录取分数线)和对该变量值进行设置和获取的方法。
编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、total(综合成绩)、sports(体育成绩)。
它还有获取学生的综合成绩和体育成绩的方法。
编写一个录取类,它的一个方法用于判断学生是否符合录取条件。
其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96以上并且综合成绩大于300。
在该类的main()方法中,建立若干个学生对象,对符合录取条件的学生,输出其信息及“被录取”。
class School{int line;void setLine(int x){line=x;}int getLine(){return line;}}class Student{String name;int total;int sports;public Student(String a,String b,int c,int d){name=a;id=b;total=c;sports=d;}public int getTotal(){return total;}public int getSports(){return sports;}public void getMessage(){System.out.println(name+" "+id+" "+total+" "+sports);}}class Enroll{static void enrollOrNot(Student a,School b){if(a.getTotal()>=b.getLine()||a.getTotal()>=300&&a.getSports()>=96) {a.getMessage();System.out.println("被录取!");}}public static void main(String [] args){School thxy=new School();thxy.setLine(390);Student s1=new Student("Tom","01",460,70);Student s2=new Student("Jerry","02",350,98);Student s3=new Student("Peter","03",290,96);enrollOrNot(s1,thxy);enrollOrNot(s2,thxy);enrollOrNot(s3,thxy);}}四、实验记录与分析(可自拟或选择)1、重载的构造方法具有不同个数或不同类型的参数,编译器就可以根据这一点判断出用new 关键字产生对象时,该调用哪个构造方法了。
2、每个对象拥有各自的实例成员变量,而所有对象共享一个类成员变量。