Java实验二
Java语言实验2程序控制结构
一、实验目的1.理解定义变量的作用,掌握定义变量的方法。
2.掌握顺序结构程序控制。
3.掌握算法与程序设计的基本方法。
4.掌握if语句、if-else-if结构的使用。
5.掌握switch语句的使用。
6.掌握使用while语句实现循环。
7.了解使用do-while语句实现循环。
8.掌握使用for语句实现循环。
9.了解continue语句和break语句的使用。
10.掌握一维数组的概念、定义和使用。
二、实验内容及步骤1.顺序结构(1)任务写一个程序,读入三个整数并打印他们的平均值。
源代码:public class renwu1 {public static void main(String[] args) {int sum = 0;int aver = 0;Scanner scanner = new Scanner(System.in);for(int i = 1;i <= 3; i++) {System.out.print("请输入第" + i +"个数:");sum +=scanner.nextInt();aver = sum / i;}System.out.println("平均数是:" + aver);}}运行结果:写一个程序,读入两个浮点数并打印他们的和、差和积。
源代码:public static void main(String[] args) {float sum = 0;float cha = 0;float ji = 0;Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个浮点数:");float num1 = scanner.nextFloat();System.out.println("请输入第二个浮点数:");float num2 = scanner.nextFloat();sum = num1 + num2;cha = num1 - num2;ji = num1 * num2;System.out.println("和是:" + sum);System.out.println("差是:" + cha);System.out.println("积是:" + ji);}}运行结果:2.分支结构(1)任务任务1:使用简单if语句编程,从键盘键入三个整数,然后按照从小到大的顺序将其输出。
JAVA实验报告-实验二
Location类:
public abstract class Location { protected String Name; protected Location[] Exits; protected String Description;
public String getName() { return Name; } public void setName(String name) { = name; } public Room[] getExits() { return Exits; } public void setExits(Room[] exits) { this.Exits = exits; } public String getDescription() { return Description; } public void setDescription(String description) { this.Description = description; } }
室 内 Living Room, Kitchen
JAVA实验二
实验二Java语言基础
一、实验目的
1.掌握标识符的定义规则。
2.掌握表达式的组成。
3.掌握各种数据类型及其使用方法。
4.理解定义变量的作用,掌握定义变量的方法。
5.掌握各种运算符的使用及其优先级控制。
二、实验内容
1.运行下面的程序,掌握变量定义与数据类型。
2.运行下面的程序,掌握算术运算。
3.运行下面的程序,掌握关系运算与逻辑运算
三、思考题
1.定义变量的作用是什么?
2.Java运算符的优先级与结合性是怎样的?
3.将本实验的实验内容1中的
long l=3615L;
改为:
long l=3615;
会出现什么情况?为什么?
提示:缺省的整型常量为int型,long型常量后面要加l或L。
4.将本实验的实验内容1中的
float f=0.23F;
改为: float f=0.23;
会出现什么情况?为什么?
提示:缺省的浮点型常量为双精度(double)型,单精度(float)型常量后面加f或F。
5.分析本实验的实验内容2中的语句
int j=i++;
int k=++i;
的执行过程。
提示: j=i i=i+1
以及 i=i+1 k=i
6.分析本实验的实验内容3中的语句
d=(f!=0&&a/f>5);
和语句
d=(f!=0&a/f>5);
有什么区别?
提示:对于快速逻辑与运算,当运算符左侧表达式的值为true时,不再计算右侧表达式的值。
实验二Java类编程实验
实验⼆Java类编程实验实验⼆Java类编程实验实验⽬的1.掌握Java类的基本定义和使⽤⽅法2.熟悉Java语⾔的基本语法和运⾏原理3.掌握Java的基本数据类型、表达式和程序控制结构4.熟悉Eclipse开发环境的基本使⽤⽅法实验内容1. 对象的创建和使⽤使⽤集成开发环境编写⼀个圆环类Ring的Java程序。
圆环类有3个数据成员,分别是内半径innerRadius,外半径outerRadius 和颜⾊color,这些属性通过get和set⽅法进⾏封装。
另外,圆环类中的getArea⽅法可以返回其⾯积。
把程序中的代码补充完整,并查看结果。
public class Ring {private double innerRadius;private double outerRadius;private String color;public Ring(double iRadius, double oRadius, String c) { //初始化数据成员}//⽤get和set⽅法封装数据成员public double getArea() {}public static void main(String[] args) {Ring ring = new Ring(5,8,"red");System.out.println("圆环的内半径: " +ring.getInnerRadius( ));System.out.println("圆环的外半径: " + ring.getOuterRadius( ));System.out.println("圆环的颜⾊: " + ring.color);System.out.println("圆环的⾯积: " + ring.getArea() + "\n");ring.setInnerRadius(4);//设置圆环ring的外半径为6ring.setColor("blue");System.out.println("圆环的内半径: " + ring.getInnerRadius( ));System.out.println("圆环的外半径: " + ring.getOuterRadius( ));System.out.println("圆环的颜⾊: " + ring.color);System.out.println("圆环的⾯积: " + ring.getArea());}}思考:1)将程序中的语句Ring ring = new Ring(5,8,"red"); 改成Ring ring = newRing();修改后编译运⾏,此时有错误发⽣吗?分析错误的原因。
java实验2
实验二面向对象基础一、实验目的:熟悉Java类的结构,掌握类的定义、方法和属性的定义以及对象的实现,通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法二、实验内容:1.定义一个“圆”类,该圆类的数据成员包括:圆心点位置及圆的半径;方法成员有:设置圆心位置、获取圆的圆心位置及构造方法。
要求构造方法、可以接收圆心位置参数,而半径使用缺省值1;2.定义以上圆的子类,使它具有获取半径方法、设置半径方法和构造方法,要求构造方法可同时接收圆心位置及半径两个参数;3.编写完整的程序实现上述两个圆类的对象,并且分别调用各种方法,对比这些方法的执行结果,并据此写出详细的实验报告。
4.掌握对修饰符的使用三、实验要求:1. 实现两个类的继承关系;2. 用多种方法实现两个类的对象;3. 程序应包括各个被调用方法的执行结果的显示。
4.四、实验步骤:第一部分:1.进入Java编程环境;2. 新建一个Java文件,命名为circles. java;3. 定义圆类fatherCircle,按实验内容1定义它的属性和方法;4. 定义子类sonCircle,按实验内容2定义它的属性和方法;5. 定义主类和主方法,构建上述两个类的对象fatherObject和sonObject,并通过这两个对象调用它们的属性和方法,输出方法执行结果。
第二部分:使用修饰符有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符如下。
[public] [private] [protected] [package] [static] [final] [transient] [volatile]不同修饰符的访问控制权限如表6.1 所示。
(1)程序功能:通过两个类说明静态变量、方法与实例变量、方法的区别。
java实验二附答案
Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。
通过实例验证编程无误。
(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。
通过实例验证编程无误。
(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。
(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
java实验二
java实验二、类与对象一、实验目的1.掌握类的声明。
2.掌握对象的创建。
3.掌握方法的定义和调用。
4.掌握构造函数的使用。
二、实验内容1.编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。
创建一个对象,求给定尺寸的立方体的体积。
将方法setDemo再改用构造函数实现初始化。
3.编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数完成初始化,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。
并创建一个对象验证。
提示:关键代码如下:void move(int newX,int newY){x=newX;y=newY;}void print(){System.out.println(":x="+x+" y="+y);}…p.print();p.move(50,50);System.out.println("**after moving**");p.print(); //call method of an object4.定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"和"查询余额"。
定义主类,创建帐户类的对象,并完成相应操作。
提示:关键代码如下:public int getleftmoney(){return leftmoney;}public void savemoney(double money){leftmoney+=money;}public void getmoney(double money){if(money<=leftmoney)leftmoney-=money;elseSystem.out.println("只能取:"+leftmoney);}…Bankaccount ba=new Bankaccount(123456,1000);ba.savemoney(2000);System.out.println("存入2000元后余额为:"+ba.getleftmoney()); ba.getmoney(1500);System.out.println("取1500元后余额为:"+ba.getleftmoney());。
java实验2实验报告
引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。
实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。
实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。
2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。
要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。
3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。
编写各个类和方法的代码,确保代码的规范和可读性。
4.调试和测试:编写完代码后,进行充分的调试和测试工作。
确保程序能够正确运行并符合预期的功能需求。
5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。
可以通过重构代码、增加异常处理等方式进行优化。
6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。
实验结果:实验结果表明,本次实验成功实现了所要求的功能。
通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
同时,通过实验过程中的调试和测试工作,我对程序的错误处理和调试技巧也有了一定的了解和掌握。
实验分析:通过本次实验,我认识到了面向对象编程的重要性和优势。
在程序设计过程中,合理设计类和对象的关系,充分利用面向对象编程的特性,可以提高程序的可读性、可维护性和扩展性。
同时,对于Java编程语言的学习和理解也是很有必要的,它是一种广泛应用于软件开发的编程语言。
总结:本次实验是一次很好的学习和实践机会,通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
在实验过程中,我收获了很多,对面向对象编程有了更深刻的理解,也对程序的调试和测试有了更多的经验。
java实验2实验报告1
java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。
通过实践,提高我们的编程能力和解决问题的能力。
二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。
操作系统为 Windows 10。
三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。
定义构造方法用于初始化学生对象的属性。
定义获取和设置学生属性的方法。
2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。
计算并返回学生的平均年龄。
3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。
四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。
java实验报告 二
实验二:面向对象编程一、实验目的通过编程和上机实验了解Java语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进行程序设计的方法。
二、实验要求1、编写程序实现类的定义和使用。
2、编写不同成员和不同成员方法修饰方法的程序。
3、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序和多态性(成员方法重载、构造方法重载)的程序。
4、编写接口的定义和使用的程序。
5、编写包的定义和使用的程序。
三、实验内容及运行结果1、类的定义和使用●定义一个满足如下要求的Date类:a.用下面的格式输出日期:日/月/年b.可运行在日期上加一天操作c.设置日期用该类编写一个显示当前日期的程序。
●创建一个桌子Table类,该类中有桌子名称、重量、桌面宽度、长度及桌子高度属性。
其中有:a.构造函数初始化所有数据成员b.Area():计算桌面的面积c.Display():在屏幕上输出所有数据成员的值d.ChangeWeight(int ):改变桌子重量的函数e.在main()中实现创建一个桌子对象,计算桌面的面积,改变桌子重量,并在屏幕上输出所有桌子数据成员的值。
源代码:class Table{private String name;private double weight;private double width;private double length;private double height;//构造函数public Table(String name,double weigth,double width,double length,double height){ = name;this.weight = weight;this.width = width;this.length = length;this.height = height;}//计算桌面的面积public double Area(){return width*length;}//在屏幕上输出所有数据成员的值public void Display(){System.out.println("桌子的名称: "+name+", "+"重量(kg): "+weight);System.out.println("桌面的宽度(cm): "+width+", "+"长度(cm): "+length);System.out.println("桌子的高度(cm): "+height);}//改变桌子重量的函数public void ChangeWeight(double weight){this.weight = weight;}}class TestTable{public static void main(String[] args){Table t = new Table("桌神",10,100,60,130);//计算桌面的面积System.out.println("桌面的面积为:"+t.Area());//改变桌子重量t.ChangeWeight(15);//在屏幕上输出所有桌子数据成员的值t.Display();}}运行结果:2、修饰符的使用:有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
Java实验2
实验2类和对象一、实验目的:1、学习定义类和使用类创建对象。
2、掌握对象变量和普通变量的区别,学习掌握使用对象调用其成员的方法。
3、学习掌握类的构造方法。
4、学习掌握给方法传递对象。
5、学习掌握类变量、类方法。
6、学习掌握关键字this。
7、学习掌握类抽象的概念。
二、实验任务:1、使用Java SDK建立一个非图形化的标准Java程序,学习类的定义、使用类创建对象、通过对象调用其成员、类的构造方法的作用、如何给方法传递对象、掌握静态变量、静态方法的用法。
程序要求:(1)首先创建Circle类表示平面上的圆,要求该类具备构造方法,以初始化表示半径的私有数据成员radius;具备求圆面积的方法;还要具备一个静态数据成员numOfObjects,用来统计程序运行过程中创建圆对象的个数。
(2)创建一个静态方法public static void printCircle(Circle c),功能是输出参数圆对象c的相关信息,包括半径和面积的值。
(不是Circle的成员方法)(3)程序运行中创建2个以上的圆对象,分别输出相关信息,并统计输出对象的数目。
2、使用Java SDK建立一个非图形化的标准Java程序,进一步学习上述的内容以及关键字this的使用和类抽象的概念。
程序要求:(1)首先创建有理数类Rational,该类包含构造方法和加、减、乘、除方法。
(2)程序主方法中创建两个有理数对象,分别进行加、减、乘、除运算,并输出运算结果。
三、实验步骤:1、使用Windows写字板编辑源程序如下。
public class TestInstanceAndClassVariable{// Main methodpublic static void main(String[] args){// Create circle1Circle circle1 = new Circle();// Display circle1 BEFORE circle2 is createdSystem.out.println("Before creating circle2");System.out.print("circle1 is : ");printCircle(circle1);// Create circle2Circle circle2 = new Circle(5);// Change the radius in circle1circle1.setRadius(9);// Display circle1 and circle2 AFTER circle2 was createdSystem.out.println("\nAfter creating circle2 and modifying " +"circle1's radius to 9");System.out.print("circle1 is : ");printCircle(circle1);System.out.print("circle2 is : ");printCircle(circle2);}// Print circle informationpublic static void printCircle(Circle c){System.out.println("radius (" + c.getRadius() +") and number of Circle objects (" +c.getNumOfObjects() + ")");}}// Circle.java: Circle class with instance and class variablesclass Circle{private double radius;private static int numOfObjects = 0; // Class variable// Default constructorpublic Circle(){radius = 1.0;numOfObjects++;}// Construct a circle with a specified radiuspublic Circle(double r){radius = r;numOfObjects++;}// Getter method for radiuspublic double getRadius(){return radius;}// Setter method for radiuspublic void setRadius(double newRadius){radius = newRadius;}// Getter method for numOfObjectspublic static int getNumOfObjects(){return numOfObjects;}// Find circle areapublic double findArea(){return radius*radius*Math.PI;}}2、把上面编辑的源程序保存成Java源程序文件(扩展名为java),程序文件名为TestInstanceAndClassVariable.java。
Java实验二
Java实验⼆⼀、实验内容1. 初步掌握单元测试和TDD2. 理解并掌握⾯向对象三要素:封装、继承、多态3. 初步掌握UML建模4. 熟悉S.O.L.I.D原则5. 了解设计模式⼆、实验过程(本次试验都是在⾃⼰电脑上完成,没有使⽤实验楼)(⼀)单元测试⽤程序解决问题时,要会写三种码:伪代码、产品代码、测试代码TDD的⼀般步骤如下:1.明确当前要完成的功能,记录成⼀个测试列表2.快速完成编写针对此功能的测试⽤例3.测试代码编译不通过(没产品代码呢)4.编写产品代码5.测试通过6.对代码进⾏重构,并保证测试通过(重构下次实验练习)7.循环完成所有功能的开发(⼆)⾯向对象三要素1.抽象抽象就是抽出事物的本质特征⽽暂时不考虑他们的细节。
对于复杂系统问题⼈们借助分层次抽象的⽅法进⾏问题求解;在抽象的最⾼层,可以使⽤问题环境的语⾔,以概括的⽅式叙述问题的解。
在抽象的较低层,则采⽤过程化的⽅式进⾏描述。
在描述问题解时,使⽤⾯向问题和⾯向实现的术语。
程序设计中,抽象包括两个⽅⾯,⼀是过程抽象,⼆是数据抽象。
2.封装、继承与多态⾯向对象(Object-Oriented)的三要素包括:封装、继承、多态。
过程抽象的结果是函数,数据抽象的结果是抽象数据类型。
封装实际上使⽤⽅法(method)将类的数据隐藏起来,控制⽤户对类的修改和访问数据的程度,从⽽带来模块化(Modularity)和信息隐藏(Information hiding)的好处;接⼝(interface)是封装的准确描述⼿段。
(三)设计模式初步(1)S.O.L.I.D原则⾯向对象三要素是“封装、继承、多态”,任何⾯向对象编程语⾔都会在语法上⽀持这三要素。
如何借助抽象思维⽤好三要素特别是多态还是⾮常困难的,S.O.L.I.D类设计原则是⼀个很好的指导。
(2)模式与设计模式模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯⽤解决之道(Solution)。
Java实验报告_实验二
Java实验报告_实验⼆实验2 类和对象【实验宗旨】每天做⼀点编程练习。
【实验⽬的】1、学习和掌握Java创建对象的⽅法。
2、学习和掌握通过创建对象、使⽤类的⽅法。
3、学习和掌握Java类定义的⽅法。
4、了解类设计的⼀般原则。
【实验内容】1、(Java API类的应⽤)使⽤java.util.Random类,创建种⼦是1000的Random对象,然后使⽤nextInt(100)⽅法显⽰0到100 之间前50个随机整数。
【实验预习】创建Random对象,含有1000个种⼦,然后输出其中的前50个⽆输⼊,创建Random random = new Random(1000);利⽤for循环输出前50的随机数。
【实验过程及结果记录】import java.util.Random;public class JavaText {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}}【实验总结】练习产⽣随机数的⽅法(Random).2.(使⽤StackOfIntegers类,显⽰素数因⼦)编写⼀个程序,提⽰⽤户输⼊⼀个正整数,然后以降序显⽰它的所有最⼩因⼦。
例如:如果整数为120,那么显⽰的最⼩因⼦为5、3、2、2、2。
使⽤StackOfIntegers类存储因⼦(如:2、2、2、3、5),获取之后按倒序显⽰这些因⼦。
【实验预习】练习类的调⽤,使⽤StackOfIntegers类【实验过程及结果记录】import java.util.*;import java.awt.*;import javax.swing.*;public class zhiyinshu{public static void main (String[] args) {StackOfIntegers h1 =new StackOfIntegers(); StackOfIntegers h2 =new StackOfIntegers();String str=JOptionPane.showInputDialog(null,"请输⼊⼀个正整数","分解质因数",JOptionPane.QUESTION_MESSAGE); int yuanshu = Integer.parseInt(str);int i=2;int b=0;int c=0;do{i=2;b=0;do{if(yuanshu%i==0){yuanshu=yuanshu/i;h1.jilu(i);b=1;}i++;}while(b==0&&i}while(ih1.jilu(yuanshu);c=h1.getsize();for(int v=0;vh2.jilu(h1.esc());for(int v=0;vSystem.out.print(""+h2.esc()+"\n"); }}class StackOfIntegers {private int size;private int[] zhan;public static final int a=16;public StackOfIntegers(){this(a);}public StackOfIntegers(int n){zhan = new int[n];}public void jilu(int up) {if(size>=zhan.length){int[] temp = new int[zhan.length * 2];System.arraycopy(zhan,0,temp,0,zhan.length);zhan=temp;}zhan[size++]=up;}public int esc(){return zhan[--size];}public int getsize(){return size;}}【实验总结】练习了创建随机数的⽅法以及Java的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。
java实验报告实验2答案(共5篇)
java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
实验内容:创建一个java项目,命名为experiment2。
(如何创建项目参考《实验一》的项目创建方法。
)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add方法把组件加入到容器中。
1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。
Java程序的设计_试验2(学生版)
刻画机动车的功率。定义了 speedUp(int s)方法,体现机动车有加速功能。定义了 speedDown()方法,
体现机动车有减速功能。定义了 setPower(int s),用于设置机动车的功率。定义了 getPower()方法,用
于获取机动车的功率。
在主类 User 的 mian()方法中用 Vehicle 类创建对象,并让该对象调用方法设置功率,演示加速和
实验 2 家中的电视
1.实验要求
编写一个 Java 应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调 用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下: 有三个源文件,其中 TV.java 中的 TV 类负责创建“电视”对象。Family.java 中的 Family 类
Vehicle car1,car2; 【代码 7】 //使用 new 运算符和默认的构造方法创建对象 car1 【代码 8】 //使用 new 运算符和默认的构造方法创建对象 car2 car1.setPower(128); car2.setPower(76); System.out.println("car1 的功率是:"+car1.getPower()); System.out.println("car2 的功率是:"+car2.getPower()); 【代码 9】 //car1 调用 speedUp 方法将自己的 speed 的值增加 80 【代码 10】 //car2 调用 speedUp 方法将自己的 speed 的值增加 80 System.out.println("car1 目前的速度:"+car1.getSpeed()); System.out.println("car2 目前的速度:"+car2.getSpeed()); car1.speedDown(10); car2.speedDown(20); System.out.println("car1 目前的速度:"+car1.getSpeed()); System.out.println("car2 目前的速度:"+car2.getSpeed()); } } 1.3 实验指导 创建一个对象时,成员变量被分配空间,这些存空间称作该对象的实体或变量,而对象中存 放着引用,以确保这些变量被该对象操作使用。 空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,在 运行时会产生异常:NullPointerException,对象时动态地分配实体的,Java 的编译器对空对 象不做检查。因此,在编译时要避免使用空对象。 1.4 实验改进(编写程序,并给出结果) 1. 改进 speedUp()方法,使得 Vehicle 类的对象加速时不能将 speed 值超过 200. 2. 改进 speedDown()方法,使得 Vehicle 类的对象在减速时不能将 speed 值小于 0. 3. 增进一个刹车方法 void brake(),Vehicle 类的对象调用它能将 speed 的值变成 0. 1.5 实验结果
Java实验指导书(实验二)
实验二基本数据类型与数组一、实验目的1、掌握Java语言中的基本数据类型的基本概念及使用方法;2、掌握Java语言中数组的基本概念及使用方法;3、掌握Java语言中运算符以及基本控制语句的使用方法;4、掌握Java语言中的基本输入与输出方法;5、理解程序设计中健壮性的重要性。
二、实验要求1、根据实验步骤中提出的要求,使用记事本编写相应的Java程序;2、使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;3、根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;4、记录实验中遇到的各类问题并以及解决办法。
三、实验步骤1、输入与输出(1)采用记事本编写下面所给的Java程序并保存为InputTest.java;import java.util.*;class InputTest {public static void main(String args[]){Scanner reader=new Scanner(System.in);int n;n=reader.nextInt();System.out.println("n="+n);}}(2)如果在程序运行时输入1k,将会出现什么错误?是什么原因造成的?(3)请在程序的某处增加以下代码:while (!reader.hasNextInt()){reader.nextLine();System.out.println("输入格式错误,请重新输入:");}(4)以上的程序有什么含义与作用?(5)什么是健壮性?添加代码后的程序与之前的程序对比健壮性如何?2、除法运算;(1)采用记事本编写下面所给的Java程序并保存为Division.java;import java.util.*;class Division{public static void main(String args[]){Scanner reader=new Scanner(System.in);int a,b;double q;System.out.println("请输入被除数:");if (reader.hasNextInt())a=reader.nextInt();System.out.println("请输入除数:");if (reader.hasNextInt())b=reader.nextInt();q=a/b;System.out.printf("除法算式及运算结果:\n%10d / %d= %10.2f",a,b,q);}}(2)修改Division.java直至程序编译正确为止;(3)该程序运行后如果输入的除数为0,则将出错,请修改程序直至程序运行正确为止;(4)该程序的结果始终为整数,请修改该程序使其输出正确的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 Java基本数据类型与控制语句
【目的】
①掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;
②掌握使用if…else if多分支语句;
③使用if…else分支和while循环语句解决问题。
【内容】
1.输出希腊字母表。
✧实验要求:
编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。
✧程序:
GreekAlphabet.java
public class GreekAlphabet
{
public static void main (String args[ ])
{
int startPosition=0,endPosition=0;
char cStart='α',cEnd='ω';
startPosition=cStart;
//cStart做int型转换据运算,并将结果赋值给startPosition
endPosition=cEnd; //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);
System.out.println("希腊字母表:");
for(int i=startPosition;i<=endPosition;i++)
{
char c='\0';
c=(char)i; //i做char型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
运行结果:
✧实验后的练习:
1.将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?
2.在应用程序的main方法中增加语句:
float x=0.618;
程序能编译通过么?
3.在应用程序的main方法中增加语句:
byte y=128;
程序能编译通过么?
4.在应用程序的main方法中增加语句:
int z=(byte)128;
程序输出变量z的值是多少?
2.回文数。
✧实验要求:
编写一个Java应用程序。
用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。
回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
✧程序:
Number.java
import javax.swing.JOptionPane;
public class Number
{
public static void main(String args[])
{
int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");
number=Integer.parseInt(str);
if((number>=1)&&(number<=99999)) //判断number在1至99999之间的条件
{
d5=number/10000; //计算number的最高位(万位)d5
d4=number% 10000/1000; //计算number的千位d4
d3= number%1000/100 ; //计算number的百位d3
d2=number%100/10;
d1=number%10;
if(d5!=0) //判断number是5位数的条件
{
System.out.println(number+"是5位数");
if(d5==d1&&d2==d4) //判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0) //判断number是4位数的条件
{
System.out.println(number+"是4位数");
if(d4==d1&&d3==d2) //判断number是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0) //判断number是3位数的条件
{
System.out.println(number+"是3位数");
if(d3==d1) //判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是2位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1!=0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d不在1至99999之间",number);
}
}
}运行结果:
✧实验后的练习:
1.程序运行时,用户从键盘输入2332,程序提示怎样的信息?
2.程序运行时,用户从键盘输入654321,程序提示怎样的信息?
3.程序运行时,用户从键盘输入33321,程序提示怎样的信息?
3.猜数字游戏。
✧实验要求:
编写一个Java应用程序,实现下列功能:
1)程序随机分配给客户一个1—100之间的整数
2)用户在输入对话框中输入自己的猜测
3)程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”。
4)用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。
✧程序:
GuessNumber.java
import javax.swing.JOptionPane;
public class GuessNumber
{
public static void main (String args[ ])
{
System.out.println("给你一个1至100之间的整数,请猜测这个数");
int realNumber=(int)(Math.random()*100)+1;
int yourGuess=0;
String str=JOptionPane.showInputDialog("输入您的猜测:");
yourGuess=Integer.parseInt(str);
while(yourGuess!=srealNumber) //循环条件
{
if(yourGuess>realNumber) //条件代码
{
str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
else if(yourGuess<realNumber) //条件代码
{
str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");
yourGuess=Integer.parseInt(str);
}
}
System.out.println("猜对了!");
}
}
实验后的练习:
1.用“yourGuess>realNumber”替换【代码1】,可以么?
2. 语句:“System.out.println(“猜对了!”);”为何要放在while循环语句之后?放在
while语句的循环体中合理吗?
【结果】
将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。
【注意事项】
①实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同
组人,试验日期、交报告日期等。
②报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。
【思考题】。