java实验报告2
java实验报告 2
实验报告课程:Java 编程技术班级:网络1203班学号:姓名:实验4 面向对象编程一、实验目的通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法,了解类的继承性和多态性的作用。
二、实验内容1.创建一个名为Dog的类,它具有重载的bark()方法。
bark()方法应根据不同的基本数据类型的参数来进行重载,bark()方法可根据参数输出狗吠(barking)、咆哮(howling)等信息。
编写main()方法来调用不同的bark()方法。
源代码如下:public class Dog {void f(int m){System.out.println("barking!");}void f(double n){System.out.println("hoeling!");}public static void main(String[] args){Dog d=new Dog();d.f(2);d.f(2.2);}}运行界面如下:2.创建Rodent(啮齿动物)类,其子类有Mouse(老鼠)、Mole(鼹鼠)、Hamster(大颊鼠)。
在父类中,提供对所有的Rodent通用的方法。
在子类中,根据该子类特定的行为习性来覆盖这些方法。
例如老鼠属杂食(omnivorous),鼹鼠主食昆虫(insect),大颊鼠主食植物种子(plant seed)。
创建一个Rodent 数组,填充不同的数据类型,然后调用父类的方法,观察会发生什么情况。
源代码如下:public class Rodent {void eat(){System.out.println("zhushi");}public static void main(String[] args){Rodent r[]=new Rodent[4];Rodent rodent=new Rodent();Mouse mouse=new Mouse();Mole mole=new Mole();Hamster hamster=new Hamster();r[0]=rodent;r[1]=mouse;r[2]=mole;r[3]=hamster;r[0].eat();r[1].eat();r[2].eat();r[3].eat();}}class Mouse extends Rodent{void eat(){System.out.println("omniovrous!");}}class Mole extends Rodent{void eat(){System.out.println("insect!");}}class Hamster extends Rodent{void eat(){System.out.println("plant seed!");}}运行界面如下:3.3.修改上述第9题中的Rodent类,使其成为一个抽象类。
JAVA实验报告 (2)
附件2:实验报告封皮2015—2016学年第1学期Java应用程序设计课程实验报告学院:计算机科学技术专业:软件工程班级:14402姓名:邵磊学号:041440230任课教师:王薇实验日期:2015年11月02日实验题目Java简介及开发环境搭建实验内容1.熟悉Java开发环境2.Java程序的编辑和运行实验目的1.熟悉Java开发环境(1)熟悉JDK工具包的下载及安装过程。
(2)掌握JAVA_HOME、CLASSPATH及Path的配置内容。
(3)掌握Java程序运行原理及javac、java命令的使用。
2.Java程序的编辑和运行(1)熟悉用记事本编写Java程序的过程。
(2)了解Java程序的基本结构。
(3)掌握javac及java命令的使用。
(4)熟悉MyEclipse集成开发环境的使用。
实验步骤1.熟悉Java开发环境(1)登录Oracle官方网站Java首页/technetwork/java/index.html并下载最新版JDK工具包。
(2)将JDK工具包安装在D:\java\jdk1.6.0_18\文件夹中。
(3)完成JDK环境配置。
创建JAVA_HOME变量并设置其值为”D:\java\jdkl1.6.0_18”,创建CLASSPATH 变量并设置其值为”D:\java\jdkl1.6.0_18\lib”文件夹中的dt.jar、tools.jar及当前目录,在Path变量原有值的基础上增加”D:\java\jdk1.6.0_18\bin”。
(4)验证JDK是否配置正确。
2.Java程序的编辑和运行(1)创建D:\javaExecise文件夹。
(2)设置显示已知文件夹类型的扩展名。
(3)利用记事本完成Java程序的编写。
(4)利用命令编译运行Javs程序(5)在MyEclipse中编译并运行Java程序实验结果1.熟悉Java开发环境单击【开始】|【运行】命令打开【运行】对话框。
JAVA实验报告(2)
实验报告一、实验目的巩固复习课上所讲内容,进一步熟悉面向对象编程。
二、实验内容编写一个Shape类及其子类,它们代表一些基本的图形,定义一个常量PI。
给出能描述这些图形所必须的属性及必要的方法,包括:Shape类中定义一个求面积和一个求周长的方法,在子类里面重写这两个方法。
三、程序清单及运行结果package homework;public abstract class Shape{String lineColor,fillColor;double pi=3.14;public abstract float calCirum();public abstract float calSquare();public Shape(String lc,String fc){lineColor=lc;fillColor=fc;}public void print(){System.out.println("Linecoler is:"+lineColor+"\tFillcolor is:"+fillColor);}public static void main(String[]args){float radius=1.5f;MyCricle mc=new MyCricle(radius,"black","white");float rWidth=1.0f;float rLong=2.0f;MyRectangle mr=new MyRectangle(rLong,rWidth,"red","blue");System.out.println("显示圆的信息:");System.out.println("圆的周长为:"+mc.calCirum());System.out.println("圆的面积为:"+mc.calSquare());mc.print();System.out.println("矩形的信息:");System.out.println("矩形的周长为:"+mr.calCirum());System.out.println("矩形的面积为:"+mr.calSquare());mr.print();}}class MyCricle extends Shape{float radius;public MyCricle(float radius,String lc,String fc){super(lc,fc);this.radius=radius;}public float calCirum(){return((float)(radius*pi*2));}public float calSquare(){return((float)(radius*radius*pi));}}class MyRectangle extends Shape{float rLong,rWidth;public MyRectangle(float rLong,float rWidth,String lc,String fc){super(lc,fc);this.rLong=rLong;this.rWidth=rWidth;}public float calCirum(){return ((float)(this.rLong+this.rWidth)*2);}public float calSquare(){return ((float)(this.rLong*this.rWidth));}}运行结果:显示圆的信息:圆的周长为:9.42圆的面积为:7.065Linecolor is:black Fillcolor is:white矩形的信息:矩形的周长为:6.0矩形的面积为:2.0Linecolor is:red Fillcoler is:blue四、实验中出现的问题及解决方法问题1:将MyCricle和MyRectangle两个子类和主函数一起写在父类里面,导致整个程序结构混乱,可读性差。
java实验二试验报告
姓名学号:班级:说明:实验2(类的继承,与接口的实现)1. 编一程序,求两个正整数m、n的最大公约数。
要求程序中有两个方法,分别使用循环和递归,最后在主方法中两次求解并输出最大公约数。
截图:代码:public class gcd {public static void main(String[] args) {int a = 6, b = 9;System.out.printf("two nums:%d %d\n", a, b);System.out.println("递归: " + gcd1(a, b));System.out.println("辗转相除: " + gcd2(a, b));}public static int gcd1(int m, int n){return m % n == 0 ? n : gcd1(n, m%n);}public static int gcd2(int m, int n){while(n != 0){int t = m;m = n;n = t % n;}return m;}}2. 使用类编写程序(在程序中定义类,然后在主方法中创建类的对象,并调用该类中的方法,观察所得结果。
)截图:代码:public class Date {public static void main(String[] args) {Date d = new Date();System.out.println(d);d.setYear(2011);d.setMonth(10);d.setDay(3);System.out.println(d);}public Date(){}public Date(int y, int m, int d){year = y; month = m; day = d;}public void setYear(int new_year){ this.year = new_year;} public void setMonth(int m){ this.month = m; }public void setDay(int d){ this.day = d; }public String toString(){return new String("" + year + "/" + month + "/" + day);}public int year = 2000, month = 1, day = 1;}3. 编写一个包含圆类的程序,并为圆类设计几个构造方法,编译并运行它。
java实训报告(通用9篇)
java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。
是组织、管理和控制信息系统开发过程的一种基本框架。
其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。
java实验2实验报告
reader=new Scanner(System.in); standard=reader.nextLine(); }while(!"no".equals(standard)); } } 四、运行结果与测试分析 1.程序分析: 首先,在 TestException 这个类中除了 main 方法和一个无参数构造函数之外,还有另外 3 个方法:testEx()、testEx1()和 testEx2()。它们的返回值都是布尔型,且都可能抛出异 常。程序从 main 方法开始执行,首先创建了一个 TestException 类的对象 testException1, 然后进入 try 语句块,用对象 testException1 调用函数 testEx,程序开始执行 testEx 函 数的函数体。在函数 testEx 的 try 块中调用了函数 testEx1,于是又转向执行 testEx1 的 函数体,但在它的 try 块中又调用了 testEx2(),于是程序转向执行 testEx2 的函数体。 在 testEx2 的 try 块中的 for 循环中,前两次循环正常执行,分别输出 i=2 和 i=1,但第 三次循环时出错(出现了除数 i 为 0 的情况),抛出异常并被本函数中的 catch 语句捕获, 输出“testEx2,catch exception”,把 ret 的值赋成 false,并抛出原异常,但在离开本 函数之前还要执行 finally 中的语句,于是输出“testEx2,finally; return value=false” 并返回 ret 的值 false,由于 finally 语句中使用了 return 语句,所以导致异常丢失,接 着程序返回 testEx2 的调用者 testEx1 中,由于 testEx2 的返回值为 false,故 testEx1 中的 ret 为 false,if 语句条件为真,返回 false,但在离开 testEx1 之前,要执行 finally 中的语句,于是输出“testEx1,finally; return value=false”并返回 ret 的值 false (由于 finally 语句中使用了 return 语句,所以 try 区域中 return 语句的返回值被覆盖)。 流程转到 testEx 中,由于 testEx1 返回 false,故 testEx 中的 ret 为 false,接着执行 finally 中的语句,输出“testEx,finally;return value=false”并返回 ret 的值 false。 接着流程返回到 main 函数中,程序正常结束。运行结果截图如下:
Java实验报告-2-类和对象
class Fushu
{
private double a; //实部
private double b;//虚部
public Fushu(double x,double y)
{
a=x;
b=y;
}
public void addfushu(double x,double y)
"b="+10.4+"+"+11.2+"*i"+"\n"+
"a+b="+a.geta()+"+"+a.getb()+"*i"+"\n"+
"a-b="+b.geta()+b.getb()+"*i");
}
}
实验结果
小结
通过本次实验,我对java里面类和对象的定义和使用有了一定的认识和熟悉。
说明:如果完成了一次实验的多个实验题目,可以在实验报告中复制该表,填写其他实验题目的报告。
{
return this.b;
}
}
Fushu a = new Fushu(12.9,9.7);
a.addfushu(10.4, 11.2);
Fushu b = new Fushu(12.9,9.7);
b.plusfushu(10.4, 11.2);
JOptionPane.showMessageDialog(null,"a="+12.9+"+"+9.7+"*i"+"\n"+
Java实验二实验报告
本科学生实验报告(二)姓名学院计算机科学学院专业计算机科学与技术班级实验课程名称Java面向对象设计试验时间2012年10 月14日指导教师及职称实验成绩开课时间2012—2013学年第一学期实验管理中心印制实验题目类与对象小组合作是○否⊙姓名班级学号一、实验目的1、熟悉Java面向对象程序设计的基本思想。
2、掌握类与对象的定义及使用方法。
3、掌握package语句与import语句的用法。
4、掌握java 继承中父类及其子类的定义方法。
5、掌握子类重写父类同名方法的方法。
6、掌握用法。
二.实验环境JDK1.6和Eclipse3.4.1开发环境三、实验内容与步骤一、分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法1、程序代码如下class Trangle {double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){sideA=a;sideB=b;sideC=c;//参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
}else{boo=false; //给boo赋值。
}}double getLength(){if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}//方法体,要求计算出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){sideA=a;sideB=b;sideC=c; //参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
java实验报告2
一练习while语句1.【实验目的】(1)为了熟练掌握java课程中的基础知识,了解java语言的灵活性和可操作性;(2)提高大家的实践操作能力;(3)通过此次实验上机,对已学知识加以运用,从而更加深刻的理解和认识老师所讲过的内容。
2.【实验算法】(1)先用小的一个数除大的一个数,得第一个余数;(2)再用第一个余数除小的一个数,得第二个余数;(3)又用第二个余数除第一个余数,得第三个余数;(4)这样逐次用后一个数去除前一个余数,直到余数是0为止。
那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。
3.【实验要求】(1)按照题目要求编写java程序代码,并得到正确的运算结果,以达到实验的目的;(2)编写程序代码的过程中,不允许使用java语言以外的其他程序语言;(3)在调试过程中,若出现错误,必须重新修改程序,并将出错的原因写在实验总结中,做出适当的解释;(4)能熟练掌握jdk6.ZH_cn的使用方法。
4.【问题与解决方法】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
解决方法:辗转相除法程序:import java.util.Scanner;public class cl {public static void main(String[] args) { System.out.println("请输入两个数:");Scanner in=new Scanner(System.in);int m=in.nextInt();int n=in.nextInt();int r;int t;int a,b;int s;a=m;b=n;if(a<a){t=a;a=b;b=t;}r=a%b;if(r==0){System.out.println("最大公约数为:"+b);System.out.println("最小公倍数为:"+a);}else{while(r!=0){a=b;b=r;r=a%b;}s=m*n/b;System.out.println("最大公约数为:"+b);System.out.println("最小公倍数为:"+s);}}}测试结果:(1)请输入两个数:948最大公约数为:3最小公倍数为:144(2)请输入两个数:88最大公约数为:8最小公倍数为:8二练习for语句1.【实验目的】(1)为了熟练掌握java课程中的基础知识,了解java语言的灵活性和可操作性;(2)提高大家的实践操作能力;(3)通过此次实验上机,对已学知识加以运用,从而更加深刻的理解和认识老师所讲过的内容。
java实验2实习报告
信息工程学院Java程序设计实习报告面向对象编程1. 实验目的掌握Java程序面向对象编程的基本架构, 会运用面向对象的思想编写Java程序。
2. 实验内容实验题1 阅读如下程序, 完成思考题。
class CCircl e{ d oubl e pi;d ouble radius;d ouble getRadius(){ return radius;}void setCircl e(d oubl e r, d oubl e p){ pi=p;radius=r;}}public class Ex2_1{ public static void main(String args[]){ CCircl e cir1=new CCircl e();cir1.setCircl e(2.0,3.1416);System.out.println("radius="+cir1.getRadius());}}程序的运行结果为: Radius=2.0。
实验题 2 设计一个用来描述汽车的类, 使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度, 使用类的非静态成员方法来表示改变汽车的实验报告的内容与格式按任课教师的要求书写。
速率和停车两个操作。
import java.util.Scanner;public class Car {String Name;d ouble Rate;d ouble Angl e;Car(String name,d ouble rate,d oubl e angl e){Name=name;Rate=rate;Angl e=angl e;}Car(){}void getrate(){if(Rate==0){System.out.println("停车! ");}else{System.out.println(" 行驶中! ");}}public static void main(String args[]){Car person=new Car();="ligang";person.Rate=90;person.Angl e=25;System.out.println(" 姓名: "++" 速度"+person.Rate+" 角度"+person.Angl e);person.getrate();}}程序运行结果如下:实验题3 定义一个类MyProgram, 包含两个属性: 一个是private的整型属性data、一个是private的String类型的属性str, 封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。
JAVA第四版实验2实验报告
实验11.实验要求:编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。
2.实验内容:3.实验分析:(1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误。
可能损失精度。
(2)在应用程序的main()方法中增加语句:float x=0.618,程序能编译通过吗?不能通过编译,提示可能损失精度。
(3)在应用程序的main()方法中增加语句:byte b=128编译能通过吗?在应用程序的main()方法中增加语句:int z=(byte)128;程序输出变量z的值是多少?增加byte b=128时编译不能通过,提示可能损失精度。
增加int z=(byte)128时结果如下所示。
实验21.实验要求:编写一个Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。
2.实验内容:3.实验分析:(1)在程序的【代码4】之后增加语句”a[3]=200;”,编译是否有错?运行是否有错?(2)在程序的【代码4】之前输出二维数组b的各个一维数组的长度和引用。
(3)在程序的【代码4】之后输出二维数组b的各个一维数组的长度和引用。
实验31.实验要求:编写一个Java应用程序,输出数组a的全部元素,并将数组a的全部或部分元素复制到其他数组中,然后改变其他数组的元素的值,再输出数组a的全部元素。
2.实验内容:3.实验分析:(1)在程序的【代码4】之后增加语句:int []tom=Arrays.copyOf(c,6);System.out.println(Arrays.toString(tom));(2)在程序的最后一个语句之后增加语句:int []jerry=Arrays.copyOf(d,1,8);System.out.println(Arrays.toString(jerry));。
Java实验报告
引言概述:Java实验报告(二)是对Java编程语言的实验进行的总结与分析。
本文将通过对实验过程中的操作和结果进行详细阐述,对Java的特性和应用进行深入探索,以及提供了一系列实验结果和实验过程中的问题及解决方案。
本文共分为引言概述、正文内容、总结三个部分。
正文内容:一、Java语言基础1.1Java的历史和特点1.2Java语言的基本特性1.3Java的运行机制1.4Java的数据类型和变量1.5Java中的运算符和表达式二、控制流语句与循环结构2.1条件控制语句2.2循环结构2.3跳转语句三、面向对象编程3.1类与对象3.2封装、继承与多态3.3抽象类与接口3.4异常处理3.5文件操作与IO流四、Java核心技术4.1Java集合框架4.2多线程编程4.3网络编程4.4GUI开发4.5数据库连接和操作五、Java应用案例分析5.1图书管理系统5.2学生信息管理系统5.3电子商务系统5.4银行管理系统5.5在线聊天程序总结:在Java实验报告(二)中,我们系统地学习了Java语言的基础知识、控制流语句与循环结构、面向对象编程、Java核心技术以及Java应用案例分析。
通过实验和实践,我们提高了对Java编程语言的理解和应用能力,为今后的学习和工作奠定了坚实的基础。
希望通过这次实验报告的撰写,能够对读者们对Java编程语言有更全面和深入的认识,激发对于编程的兴趣和灵感。
引言:Java是一种面向对象的编程语言,具有跨平台、高性能和可靠性等优点。
本文将对Java实验进行详细报告,包括实验目的、实验方法、实验结果及分析、问题和解决方案等方面。
概述:本次实验旨在通过编写Java程序,加深对Java语言及其相关知识的理解和掌握。
实验主要分为五个大点,包括环境搭建、基本语法、面向对象编程、异常处理和文件操作。
每个大点将分别进行详细阐述。
正文内容:1.环境搭建1.1安装JDK1.2配置环境变量1.3设置IDE2.基本语法2.1数据类型2.2变量和常量2.3运算符2.4控制语句2.5循环语句3.面向对象编程3.1类和对象3.2继承3.3多态3.4封装3.5接口和抽象类4.异常处理4.1异常的概念4.2异常处理机制4.3trycatch语句4.4finally语句4.5自定义异常5.文件操作5.1文件的读写5.2文件的创建和删除5.3文件的复制和移动5.4文件的压缩和解压缩5.5文件的读写性能优化实验结果及分析:通过实验,我们成功搭建了Java开发环境,并学习了Java的基本语法、面向对象编程、异常处理和文件操作等知识。
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程序设计实验报告_2
Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。
二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。
三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。
3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。
4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。
这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。
对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。
五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。
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实验报告_实验二
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报告
实验二系统类和数组一、实验目的1、通过字符串处理类的应用,掌握系统类的使用方法。
2、掌握数组的定义和使用。
3、进一步掌握 Java 程序设计的基本过程和基本方法。
二、实验内容1、应用数组和字符串,编写一个用于统计学生成绩的程序,运行之后,首先能接受用户输入不超过10 个学生的姓名和 Java 课的分数。
输入结束之后,能输出这批学生的 Java 课最高分者和最低分者的姓名和分数。
还能接受用户输入学生姓名来查询某学生的成绩,当姓名不存在时,向用户提示不存在该学生。
2、通过应用 Java 中常用的数组和字符串,编写一个简单的通讯录程序,来熟悉系统类和数组的应用。
通讯录由多条记录构成。
每条记录包括一个联系人的姓名、性别、电话、通信地址,并具有显示、查询、增加、修改、删除等功能,且每执行一次功能操作后,可以选择用类似以下的格式,输出通讯录的所有信息记录:编号姓名性别电话通信地址01 张三男 123456 上海02 李四女 456789 桂林可考虑用数组分别存储姓名,性别,电话,通信地址,那么显示、查询,增加、修改、删除操作就可转换为对数组元素的操作。
通讯录中的所有记录的每一个字段可以采用一维或二维或其它类型数组来存放。
请发挥自己的思考能力,用自己熟悉的或者觉得更合理的方式来设计程序解决问题,完成该实验。
三、设计过程分析1)定义一个学生类,学生类的成员变量包括String 类的学生姓名,Float类型的JAVA 成绩。
然后在,main类中申明、创建学生类对象数组,并且通过对象的成绩成员变量查找最高分和最低分。
2)定义一个People类,包含编号、姓名、性别、电话、通讯地址五个成员变量。
在main类中的主函数里,申明并创建People类对象数组。
通过调用数组对象的成员变量实现查找、修改、删除的作用,而添加直接是一个新的People类对象,并赋值给数组。
四、测试数据和运行结果1)依次输入四名学生的姓名和成绩李明 88王红 75张丽 60黄敏 90输出最高分和最低分学生信息输入要查询的学生姓名王红输出查询的该学生信息(测试截图如下)2)初次使用先添加2个成员,然后再测试添加功能、查询功能、删除功能、显示功能,部分测试数据及输出结果如下截图五、问题与总结问题:定义一个对象数组时,运行时,会导致NullPointerException错误,在循环对象数组成员元素时发生逻辑错误,导致查询成功后仍然提示未找到该成员。
java实验二实验报告模板
实验二:java 程序设计一、实验目的与要求一、实验目的与要求1、了解、了解Java Java 的数据类型;的数据类型;2、掌握各种变量的声明方式;、掌握各种变量的声明方式;3、理解运算符的优先级;、理解运算符的优先级;4、掌握、掌握Java Java 基本数据类型、运算符与表达式、数组的使用方法;基本数据类型、运算符与表达式、数组的使用方法;5、理解理解Java Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;6、通过以上内容,掌握、通过以上内容,掌握Java Java语言的编程规则。
二、实验内容二、实验内容读入一个浮点数值,将其转换为中文金额的大写方式,如123.45,123.45,转换为转换为转换为::壹佰贰拾叁元肆角伍分。
要求:肆角伍分。
要求:(1)当金额为整数时,当金额为整数时,只表示整数部分,只表示整数部分,只表示整数部分,省略小数部分,省略小数部分,省略小数部分,并添加并添加“整”字。
例如,123123表示为表示为表示为::壹佰贰拾叁元整;壹佰贰拾叁元整;(2)当金额中含有连续的当金额中含有连续的00时,只需写一个“零”即可,例如, 10005表示为:表示为:壹万零伍元整; (3)1010的表示方式,例如,的表示方式,例如,的表示方式,例如,110110110元表示为:壹佰壹拾元整,而元表示为:壹佰壹拾元整,而元表示为:壹佰壹拾元整,而101010则表示为:拾元整。
则表示为:拾元整。
则表示为:拾元整。
提示:将字符串型转换为浮点型可以用提示:将字符串型转换为浮点型可以用Float.parseFloat(s)Float.parseFloat(s)Float.parseFloat(s)函数转换。
函数转换。
函数转换。
三、实验器材三、实验器材微机微机+windows +windows +windows操作系统操作系统操作系统+eclipse +eclipse +eclipse四、实验步骤四、实验步骤1、程序代码、程序代码import java.io.*;import java.util.Scanner; public class ee { /*** @param args*/ public static void main(String[] args) { // TODO Auto-generated method stub /** * 数据输入*/ System.out .println(.println(""请输入一个实数"); InputStream is=System.in ; Scanner scan=new Scanner(is); float y=scan.nextFloat(); System.out .println(.println("y=""y="+y);float x=y; int ix=(int )x;)x;////整数部分float px=x-ix; px=x-ix;////小数部分String cx=ix+String cx=ix+""""; String cy=px+String cy=px+""""; /*** 处理整数部分,采用二进制转换思想*/ int []zhengshu=new int [cx.length()]; int i=0;if (cx.length()<=4) { while (ix>0) { zhengshu[i]=ix-ix/10*10;zhengshu[i]=ix-ix/10*10;////求出余数,并赋给数组zhengshui++;ix=ix/10;ix=ix/10;////商}} /*** 整数钱币输出*/for (int ii=cx.length()-1;ii>=0;ii--) { if (zhengshu[ii]==0) { if (ii!=0) { if (zhengshu[ii-1]!=0) {System.out .println(.println(""零");}}if (ii==0) {System.out .print(.print(""圆");}}if(zhengshu[ii]!=0){if(ii==3){.print(""壹仟");if(zhengshu[ii]==1) System.out.print(.print(""贰仟"); if(zhengshu[ii]==2) System.out.print(.print(""叁仟"); if(zhengshu[ii]==3) System.out.print(.print(""肆仟"); if(zhengshu[ii]==4) System.out.print(.print(""伍仟"); if(zhengshu[ii]==5) System.out.print(.print(""陆仟"); if(zhengshu[ii]==6) System.out.print(.print(""柒仟"); if(zhengshu[ii]==7) System.out.print(.print(""捌仟"); if(zhengshu[ii]==8) System.out.print(.print(""玖仟"); if(zhengshu[ii]==9) System.out.print(}if(ii==2){.print(""壹佰");if(zhengshu[ii]==1) System.out.print(.print(""贰佰"); if(zhengshu[ii]==2) System.out.print(.print(""叁佰"); if(zhengshu[ii]==3) System.out.print(.print(""肆佰"); if(zhengshu[ii]==4) System.out.print(.print(""伍佰"); if(zhengshu[ii]==5) System.out.print(.print(""陆佰"); if(zhengshu[ii]==6) System.out.print(.print(""柒佰"); if(zhengshu[ii]==7) System.out.print(.print(""捌佰"); if(zhengshu[ii]==8) System.out.print(.print(""玖佰"); if(zhengshu[ii]==9) System.out.print(}if(ii==1){.print(""壹拾");if(zhengshu[ii]==1) System.out.print(.print(""贰拾"); if(zhengshu[ii]==2) System.out.print(.print(""叁拾"); if(zhengshu[ii]==3) System.out.print(.print(""肆拾"); if(zhengshu[ii]==4) System.out.print(.print(""伍拾"); if(zhengshu[ii]==5) System.out.print(.print(""陆拾"); if(zhengshu[ii]==6) System.out.print(.print(""柒拾"); if(zhengshu[ii]==7) System.out.print(.print(""捌拾"); if(zhengshu[ii]==8) System.out.print(.print(""玖拾"); if(zhengshu[ii]==9) System.out.print(}if(ii==0){.print(""壹圆");if(zhengshu[ii]==1) System.out.print(.print(""贰圆"); if(zhengshu[ii]==2) System.out.print(.print(""叁圆"); if(zhengshu[ii]==3) System.out.print(.print(""肆圆"); if(zhengshu[ii]==4) System.out.print(.print(""伍圆"); if(zhengshu[ii]==5) System.out.print(.print(""陆圆"); if(zhengshu[ii]==6) System.out.print(.print(""柒圆"); if(zhengshu[ii]==7) System.out.print(.print(""捌圆"); if(zhengshu[ii]==8) System.out.print(.print(""玖圆"); if(zhengshu[ii]==9) System.out.print(}}}/*** 处理小数部分*/float yushu;int xiaoshu[]=new int[2];xiaoshu[0]=(int)(px*10);yushu=px*10-xiaoshu[0];xiaoshu[1]=(int)(yushu*10);if(xiaoshu[0]!=0){.print(""壹角");if(xiaoshu[0]==1) System.out.print(.print(""贰角");if(xiaoshu[0]==2) System.out.print(.print(""叁角");if(xiaoshu[0]==3) System.out.print(.print(""肆角");if(xiaoshu[0]==4) System.out.print(.print(""伍角");if(xiaoshu[0]==5) System.out.print(.print(""陆角");if(xiaoshu[0]==6) System.out.print(.print(""柒角");if(xiaoshu[0]==7) System.out.print(.print(""捌角");if(xiaoshu[0]==8) System.out.print(.print(""玖角");if(xiaoshu[0]==9) System.out.print(}else{if(xiaoshu[0]==0){if(xiaoshu[1]!=0).println(""零");System.out.println(}}if(xiaoshu[1]!=0){if (xiaoshu[1]==1) System.out .print(.print(""壹分"); if (xiaoshu[1]==2) System.out .print(.print(""贰分"); if (xiaoshu[1]==3) System.out .print(.print(""叁分"); if (xiaoshu[1]==4) System.out .print(.print(""肆分"); if (xiaoshu[1]==5) System.out .print(.print(""伍分"); if (xiaoshu[1]==6) System.out .print(.print(""陆分"); if (xiaoshu[1]==7) System.out .print(.print(""柒分");if (xiaoshu[1]==8) System.out .print(.print(""捌分");if (xiaoshu[1]==9) System.out .print(.print(""玖分"); }}}五、实验结果五、实验结果请输入一个实数请输入一个实数 34.678 y=34.678 叁拾肆圆陆角柒分叁拾肆圆陆角柒分请输入一个实数请输入一个实数 123.23 y=123.23壹佰贰拾叁圆贰角叁分壹佰贰拾叁圆贰角叁分请输入一个实数请输入一个实数 110.00 y=110.0 壹佰壹拾圆壹佰壹拾圆六、实验小结六、实验小结1、通过这个实验巩固了、通过这个实验巩固了java java java的基础知识:包括数据类型、变量的声明方式、运算符的的基础知识:包括数据类型、变量的声明方式、运算符的优先级、表达式的应用、数组的使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
switch(n){
case 1:System.out.printf("Monday");
break;
case 2:System.out.printf("Tuesday");
break;
case 3:System.out.printf("Wedesday");
输出l为555.0,f1为35.0,l1为
(2)何时需要用到强制类型转换?可能会造成什么不良后果?
答:当把级别高的变量的值赋给级别低的变量时要用到强制类型转换,可能会导致精度的损失。
4.从键盘输入3个数,求最小值并输出。
import java.io.*;
class TheMin {
public static void main(String[] args) {
System.out.println("l1="+l1);
System.out.println("d1="+d1);
}
}
思考:
(1)上述程序用到了哪些自动类型转换?分别如何实现?
long l=555lfloat f1=f*b long l1=l+i1;
把级别低的变量的值赋给级别高的变量,自动完成数据类型的转换。
五、指导教师评语
成绩
批阅人
日期
System.out.println("x="+x+",y="+y);
}
}
思考:
(1)上述程序中用到了哪些运算符?运算符的优先级如何?
答:上述程序1中运用到了+,%,/,*,=运算符。
运算符的优先级为:*,/,%为3级,+为4级,=为14级。
(2)增1和减1运算符(++和--)放在变量之前和放在变量之后,其用法有何不同?
final double PI=3.14159;
int a,b,c;
a=b=c=5;
a=++b-++c;
System.out.println("a="+a+"b="+b+"c="+c);
a=b+++c++;
System.out.println("a="+a+"b="+b+"c="+c);
a=b--+c--;
import java.util.*;
public class practice2_5{
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
System.out.println("输入一个整数:");
System.out.println("a="+a+"b="+b+"c="+c);
}
}
(3)public class sy2_2_3{
public static void main(String args[]){
boolean x,y;
x=5>3||3*4<6&&!(5>3);
y=2==6&&9>8+4||5+6<+4&&!x;
实验报告
(2014 / 2015学年第2学期)
课程名称
JAVA程序设计
实验名称
数据类型及表达式
实验时间
2015
年
3
月
26
日
指导单位
计算机学院/软件学院
软件工程系
指导教师
周莉
学生姓名
班级学号
学院(系)
计算机软件学院
专业
计算机科学与技术
实验名称
数据类型及表达式
指导教师
周莉
实验类型
上机
实验学时
2
实验时间
2015-3-26
double d=2.5;
System.out.println("c="+(a+b+a%b));
System.out.println("c="+a+b+a%b);
d=c*b+a/d*b;
System.out.println("d="+d);
}
}
(2)public class sy2_2_2{
public static void main(String args[]){
boolean bool=true;
System.out.printf("final PI=%f\n",PI);
System.out.printf("byte b=%d\n",b);
System.out.printf("short s=%d\n",s);
System.out.printf("int i=%d\n",i);
答:增1和减1放在变量后表示变量先进性运算再自身加1,放在变量前表示变量先进性自增1或自减1之后再参与运算。
3.输入并运行下面的程序并分析结果,掌握自动类型转换的用法。
public class sy2_3{
public static void main(String args[]){
byte b=10;
PI结果最后一位多了一个0,因为按照浮点型输出,小数点后面保留六位;
b是按照整型输出,十六进制0x55十进制为85;
s
l是按照整型输出,十六进制0xffffffffl十进制为4294967295;
f浮点型输出,小数点后保留六位;
d浮点型输出,小数点后保留六位;
(3)3.14159是什么类型的,.25f是什么类型的?
System.out.printf("long l=%d\n",l);
System.out.printf("char c=%c\n",c);
System.out.printf("float f=%f\n",f);
System.out.printf("double d=%f\n",d);
System.out.printf("boolean bool=%b\n",bool);
char c='a';
int i=90;
long l=555l;
float f=3.5f;
double d=1.234;
float f1=f*b;
int i1=c+i;
long l1=l+i1;
double d1=f1/i1-d;
System.out.println("f1="+f1);
System.out.println("i1="+i1);
一、实验目的
1.掌握Java语言的基本数据类型概念
2.掌握变量、常量和表达式的用法
3.理解类型转换、运算符结合律的概念
二、实验环境(实验creator
三、实验内容
1.输入并运行下面的程序,体会各种基本数据类型的变量的声明、初始化及使用。
public class sy2_1{
num1 = Double.parseDouble(in.readLine());
System.out.println("请输入第二个数字:");
num2 = Double.parseDouble(in.readLine());
System.out.println("请输入第二个数字:");
num3 = Double.parseDouble(in.readLine());
} catch (Exception e) {
System.out.println("请输入数字");
}
System.out.println("最小数是:"+ Math.min(Math.min(num1, num2),Math.min(num2, num3)));
}
}
5.从键盘输入一个1-7之间的整数(如果输入的数不满足条件,则要求用户重新输入),输出对应的英文单词表达的星期几。
break;
default:System.out.printf("不满足条件,请重新输入");
}
}
}
运行结果:
四、实验小结(包括问题和解决方法、心得体会等)
通过本次上机实验,在几道实验例题中,我对Java语言的基本数据类型有了更深的了解掌握。对于老师提出的考察变量、常量和表达式的用法的问题,做起来比较得心应手,因为有很多规则都和C语言还有C++有共通之处。在进行数据之间的强制转换的时候,可能会造成精度的丢失。Switch结构中,switch语句首先计算表达式的值,如果表达式的值与某个case后面的常量值相同,就执行case里的语句,直到碰到break语句。分支语句一定要看清条件,避免出现错误。
}
}
思考:
(1)上述程序中定义了哪些变量和常量:每个变量的变量名、数据类型分别是什么?常量的名和值是什么?