ImageVerifierCode 换一换
格式:DOCX , 页数:74 ,大小:4.24MB ,
资源ID:498421      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-498421.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java实验报告项目一二三.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Java实验报告项目一二三.docx

1、Java实验报告项目一二三Java实验报告项目一 Java语言基础一、实验学习目标1熟悉Java开发环境2了解和掌握Java的基本数据类型和基本运算3掌握Java语言的条件控制语句,循环语句以及转向语句。4理解和掌握数组的基本内容(包括数组声明,初始化,复制等)。5掌握多维数组的定义和使用。二、实验设备PC三、实验内容1配置JDK运行路径并编译运行第一个Java应用程序。2. 通过求最大值,算术运算,位移运算等小程序体会Java的基本数据类型和基本运算。 3通过成绩等级判定,九九乘法表等小程序体会Java语言的条件控制语句,循环语句以及转向语句 。4编写程序实现通过键盘输入10个数字并对这些数

2、字进行排序,然后以从小到大的顺序输出。5编写程序实现两个矩阵相乘。四、实验原理 JDK(Java Development Toolkit)是Sun公司开发的Java开发工具包,它是一个简单的命令行工具,主要包括软件库、编译Java源代码的编译器、运行Java字节码的解释器,以及测试Java Applet的Applet阅读器,还有其他一些有用的工具。JDK主要是通过DOS命令行,在DOS环境下进行Java程序的编译和运行。常用的JDK工具包括javac、java、javadoc、appletviewer、jar、jdb、javah、javap、extcheck命令。要了解它们的具体语法描述,可以

3、在设置好JDK路径后,在DOS环境下直接输入相关“工具名称”按回车,就能够看到每种工具的具体使用语法。五、实验步骤1安装好JDK 5.0后,如果想在系统的任意目录下编译和运行编写好的Java程序,需要先设置环境变量。本实验将在Windows系统下的环境变量中设置JDK运行路径( 以使用安装程序的默认路径:C:Program FilesJava jdk1.5.0_06为例)。(1)鼠标右键单击“我的电脑”,选择“属性”,在弹出对话框中选择“高级”下的“环境变量”,如图1.1所示。(2)在“系统变量”中选择Path,单击“编辑”按钮,如图1.2所示,在弹出对话框中的“变量值”文本框中添加;C:Pr

4、ogram FilesJavajdk1.5.0_06bin (如果前一个变量值后已有“;”则将路径信息加入即可),单击“确定”按钮,如图1.3所示。图1.1图1.2图1.3 (3)在“环境变量”对话框中单击“新建”按钮,如图1.4所示,在弹出对话框中的“变量名”后输入java_home,“变量值”后输入C:Program FilesJavajdk1.5.0_06,单击“确定”按钮,如图1.5所示。图1.4(4)在“环境变量”下单击“新建”按钮,在弹出对话框中的“变量名”后输入classpath,在“变量值”后输入C:Program FilesJavajdk1.5.0_06libtools.ja

5、r;C:Program FilesJava jdk1.5.0_06jrelibrt.jar; .;,单击“确定”按钮,如图1.6所示。 图1.5 图1.6 至此环境变量设置完毕, 可以通过在DOS环境下直接键入javac命令按回车来检查环境变量设置是否成功,如果设置成功则可看到如图1.7所示结果。图1.7在以后需要通过DOS命令直接编译和执行Java程序时,只需进入Java程序所在的存放目录,通过javac和Java命令编译和执行相应程序。内容一:设置好JDK 5.0的路径后,使用任意文本编辑器编写第一个Java程序,程序源代码如图1.8所示。将文件保存成以HelloWorld.java为文件

6、名的文件。使用DOS命令进入HelloWorld.java文件所存放的目录(如:D:Example),使用javac命令编译该应用程序,通过编译后在该文件夹中会生成一个名为HelloWorld.class的class文件,该class文件包含程序的字节码(Java字节码中包含的是Java解释程序将要执行的指令码),使用Java命令执行该class文件运行结果截图如下所示:内容二:阅读并分析程序Example1.java,程序源代码如图所示。请写出分析的结果。然后新建Example1.java文件,将程序输入并保存。使用DOS命令进入其所存放的目录,编译运行该程序,看运行结果是否与之前的分析一致

7、。如果不一致,请分析出错的原因。以上程序中结果1可看做:(-i)+i+i=-3,此时i=0结果2可看作:i+(+i)=0+1=1,此时i=1结果3可看作:i=i+i+(i+4)=6结果4可看作:i=3+(3*2)%i=3+0=3结果5可看作:x=x+1.2*3+x=8.2结果6可看作:x=x%3+4*2+x=2.2+8+8.2=18.4程序的运行结果如下:所以程序正确。内容三:阅读如图所示程序。新建CompareTwoNumbers1.java文件,输入程序,将程序中“代码1-4”处补充完整并保存。使用DOS命令进入其所存放的目录,编译运行该程序。通过键盘在控制台输入任意2个实数,将完整程序和

8、运行结果截图写入实验报告。补充后的程序为:运行结果为:实验小结:一开始不知道代码到底应该填什么,试了很多次都没有成功,就像代码1,我开始确实不知道应改怎样实例化一个scanner对象,而且在代码四那也试了很多次。这次实验让我不再只是认为代码就是数字什么的了。内容四:阅读如图所示程序。新建BitMovement.java文件,输入程序,将程序中“代码1-4”处补充完整并保存。使用DOS命令进入其所存放的目录,编译运行该程序。通过键盘在控制台输入任意1个整数,分析运行结果并将完整程序和运行结果截图写入实验报告补充后程序为:运行结果为:结果分析:这个程序的主要目的是为了实验数的位移,3分别表示向左移

9、5位和向右移3位,也即在原来的基础上分别乘以2的5次方和除以2的三次方,但是如果右移时溢出了则结果为0;结果中8*32即为256,8/8为1,而且因为4=90:A,89-90:B等)。新建ChineseGrade2.java文件,输入程序,将如图所示程序补充完整并保存。使用DOS命令进入其所存放的目录,编译运行该程序。通过键盘在控制台输入10个学生的成绩,并将完整程序和运行结果截图写入实验报告。补充后程序为: 实验运行结果为:实验小结:一开始看到这个程序感觉挺简单的,因为以前这样程序做了很多,但是真正在运行的时候才知道不是想象的那么简单,这次的问题主要是出在返回值上,开始试了很多种方法,但是都

10、不成功,刚突然看见在就就java中字符型用String而不是char。内容六:阅读如图所示程序,该程序要求输出一个九九乘法表。新建MultiplyList1.java文件,输入程序,将如图所示程序补充完整并保存。使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。若直接将程序补充:运行结果为:若将output放到括号外:运行结果为:实验小结:由上比较可以看出,第二种情况更加符合九九乘法表的要求,看起来也更加方便一点,这个主要是语句所放的位置的问题。内容七:阅读如图所示程序。新建InsertSort.java文件,输入程序,将程序中“代码1-4”处补充完整并

11、保存。使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。补充后程序为:运行后的结果为:实验小结:整体的来说这个程序相对还是比较简单,最大的问题就是在进行插序程序是没有注意数据类型,使得有的不兼容。内容八:阅读如图所示程序,该程序通过键盘输入两个矩阵(前提是作为乘数的矩阵的列数和作为被乘数的矩阵的行数相等),并将它们相乘的结果输出。新建MatrixMultiply.java文件,输入程序,找出程序中的4处错误并说明错误原因。使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。以上程序四处错误是:1、2、3、4、修改后的

12、程序为:程序运行结果为:实验小结:这个程序很容易在数组初始化的时候加上多余的东西,从而使程序出错,这个程序一方面是早教我们如何编程,另一方面是在教我们尽量不要犯“未检查错误”,这种错误很让人吃亏。项目二 Java面向对象程序设计一、实验学习目标1理解类的定义和对象的声明2理解掌握构造函数的使用3理解静态成员和实例成员的区别4理解掌握子类概念和方法覆盖的使用5理解掌握多态和动态绑定的含义与使用二、实验设备PC 三、实验原理1类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance

13、)。 2在Java类中声明变量、方法和内部类时,可使用关键字static做为修饰符。static标记的变量或方法由整个类(所有实例)共享,如访问控制权限允许,可不必创建该类对象而直接用类名加“.”调用。static成员也称类成员或静态成员,如:类属性、类方法、静态方法等。3Java语言中变量按被声明的位置划分为局部变量(方法或语句块内部定义的变量)个成员变量(方法外部、类的内部定义的变量)。局部变量的作用域就是它所在的方法或语句块在程序调用方法(进入语句块)时,局部变量才被创建并可用,随方法(语句块)的退出。成员变量在类的定义中声明,在创建对象的同时创建有关的成员变量。成员变量依附于对象存在,

14、具有与对象相同的生存期和作用域。 4在方法覆盖(又名方法重写)的时候应注意:在子类中可以根据需要对从父类中继承来的方法进行重写。重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型。重写方法不能使用比被重写方法更严格的访问权限。5多态性是指具有相同的方法接口,却有不同的实现。在Java中超类往往定义一个通用的方法,而其不同的实现则由它不同的子类来完成。当通过对象来调用这样一个方法时,Java会根据运行时该对象的实际类型来决定用方法的哪个版本来执行,即动态绑定。四、实验内容1通过一个程序体会类的定义和对象的声明以及构造函数的使用。2通过一个程序体会静态成员和实例成员的区别3通过一个程

15、序体会子类概念和方法覆盖的使用4通过一个程序体会多态和动态绑定的含义与使用五、实验步骤内容一:(1)阅读如图2.1所示程序。该程序实现了一个圆环类Ring,该类有3个属性,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性可以自行设置也可以得到其值,并且该程序还可以返回圆环的面积Area。图2.1(2)新建Ring.java文件,输入程序,将程序中“代码1-4”处补充完整并保存。(3)使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。补充后程序为:实验运行结果为:实验小结:就代码的补充而言,是很简单的,主要问题是出

16、在getcolor上,其类型为String,很容易写成char。内容二:阅读如图2.2所示程序。该程序实现了一个圆类Circle,该类有3个属性,分别是圆周率pi,半径radius和圆对象个数objectNo,其中圆周率和圆对象个数为static成员。并且该程序还有两个static方法用来设置圆周率和显示当前圆对象个数。图2.2(2)新建Circle.java文件,输入程序并保存。(3)使用DOS命令进入其所存放的目录,编译运行该程序。分析观察运行结果并将运行结果截图写入实验报告。(4)能否将程序中的cir1.setRadius(10)改为Circle.setRadius(10)?为什么?将圆

17、周率pi的static修饰符去掉,会出现什么结果?为什么?将setPI(double p)的 static修饰符去掉呢?圆对象个数objectNo为什么要设置为static,它的作用是什么?将你的分析写入实验报告。补充修改后程序为:运行结果为:实验分析和小结:将程序中的cir1.setRadius(10)改为Circle.setRadius(10)的运行结果为因为Circle.setRadius()不是静态方法,所以不能在static中调用。将圆周率pi的static修饰符去掉的运行结果为将setPI(double p)的 static修饰符去掉的运行结果为圆对象个数objectNo设置为st

18、atic是因为在main函数中要静态调用Circle(),其作用是为了方便调用,是程序编译运行时不出错。 开始的时候我是把程序保存为Circlr.java,但是不论怎么做都不能运行成功,但是后来把程序重命名为StaticTest.java就可以运行了,这是因为开始我没有注意main函数在哪一个类中。内容三:阅读如图2.3所示程序。该程序实现了一个父类Telephone和其子类Mobilephone,该类有电话品牌,电话号码等属性,另外还有计算话费和显示信息等方法。子类Mobilephone除了具有父类的属性外,还有网络类型,被叫时间等属性,另外它还有自己的计算话费和显示信息的方法。 图2.3(

19、2)新建Inheritance.java文件,输入程序,将程序中“代码1-5”处补充完整并保存。(3)使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。(4)Mobilephone类的display( )方法中的 callCost( )方法调用的是谁的方法?如何调用父类的callCost( )方法?另外,将Mobilephone类的构造方法中的super(b, num)去掉,有什么结果?为什么?将你的分析写入实验报告。补充后程序为:运行结果为:实验分析和小结:Mobilephone类的display( )方法中的 callCost( )方法调用的是Tel

20、ephone类的方法,将Mobilephone类的构造方法中的super(b, num)去掉后运行结果为因为在子类的构造方法中需要使用super(argument_list)语句调用父类的构造方法。内容四:阅读如图2.4所示程序。该程序实现了三个类:抽象父类Student(包括了一些学生的基本信息,如姓名,所学课程,课程成绩等)和其子类Undergraduate,Postgraduate。两个子类之间的主要差别是计算课程成绩等级的标准有所不同。图2.4(2)新建Polymorphism.java文件,输入程序,将程序中“代码1-5”处补充完整并保存。(3)使用DOS命令进入其所存放的目录,编译

21、运行该程序。并将完整程序和运行结果截图写入实验报告。(4)能否在main()方法中添加语句Students s1 = new Students (陈建平)?为什么?main()方法中的语句studentsi.calculateGrade()都是调用哪些类的calculateGrade()方法?将你的分析写入实验报告。补充后程序为:运行结果为:实验分析和小结:在main()方法中添加语句Students s1 = new Students (陈建平)的运行结果为:因为程序中没有Students()这个方法。main()方法中的语句studentsi.calculateGrade()调用的有Und

22、ergraduate和Postgraduate类的calculateGrade()方法,因为在五个学生中既有本科生又有研究生,所以两个类中的方法都有调用。这个程序最容易出错的就是在初始化courseGrade为空串时和按课程索引号设置课程成绩,初始化空串时容易把null写成NULL,而在设置成绩时开始有点不知道如何写。最后看到getCourseScore时就知道了,虽然不是很懂。项目三 Java高级编程一、实验学习目标1了解掌握javax.swing包中的常用GUI组件2了解掌握事件处理机制3了解掌握5种常用的布局管理器4了解掌握javax.swing包中外观设置5了解掌握字节流和字符流概念及

23、其使用6了解掌握ObjectInputStream, ObjectOutputStream的使用和对象序列化概念 7掌握 ZipOutputStream以及ZipIputStream的使用二、实验设备PC三、实验内容1通过一个名片录入界面程序体会javax.swing包中的常用GUI组件和常用的布局管理器的使用。2. 通过一个文字字体设置程序体会javax.swing包中外观设置和事件处理机制。3通过在文件中对对象进行数据的读写的程序体会ObjectInputStream, ObjectOutputStream的使用和对象序列化概念 。4通过压缩和解压两个小程序体会ZipOutputStrea

24、m以及ZipIputStream的使用。 四、实验原理1Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包。AWT的缺省实现使用了对等机制,即每一个Java GUI窗口部件都在底层的窗口系统中有一个对应的组件。例如,每一个java.awt.Button对象将在底层窗口系统中创建一个唯一对应的button。当用户点击那个按钮的时候,事件将从本地实现库传送到Java虚拟机里,并且最终传送到与java.awt.Button对象相关联的逻辑。对等系统的实现以及Java组件与对等组件之间的交流的实现都隐藏在底层JVM实现中,Java语言级的代码仍然跨平台。AW

25、T 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置,包括早期的 Web 浏览器中的 Java 实现。另外它也非常稳定,这意味着我们不需要单独安装这个工具包,在任何一个 Java 运行环境中都可以使用它。AWT 是一个非常简单的具有有限 GUI 组件、布局管理器和事件的工具包 。 因为 Sun 公司决定为 AWT 使用一种最小公分母(LCD)的方法(即AWT只拥有所有平台上都存在的组件的公有集合)。因此它只会使用为所有 Java 主机环境定义的 GUI 组件。最终的结果非常不幸,有些经常使用的组件,例如表、树、进度条等,都不支持。对于需要更多组件类型的应用程序来说,需要从头开

26、始创建这些组件,这是一个很大的负担。2 Java Swing 是 Java Foundation Classes(JFC)的一部分,它是试图解决 AWT 缺点的一个尝试。在 Swing 中,Sun 开发了一个经过仔细设计的、灵活而强大的 GUI 工具包。 Swing 是在 AWT 组件基础上构建的,所有 Swing 组件实际上也是 AWT 的一部分。Swing 使用了 AWT 的事件模型和支持类,例如 Colors、Images 和 Graphics。 为了克服在不同主机上行为也会不同的缺点,Swing 将对主机控件的依赖性降至了最低。实际上,Swing 只为诸如窗口和框架之类的顶层 组件使用

27、对等体。大部分组件(JComponent 及其子类)都是使用纯 Java 代码来模拟的。这意味着 Swing 天生就可以在所有主机之间很好地进行移植。因此,Swing 通常看起来并不像是本地程序。实际上,它有很多外观,有些模拟(尽管通常并不精确)不同主机的外观,有些则提供了独特的外观。 Swing 对基于对等体的组件使用的术语是重量级(heavyweight),对于模拟的组件使用的术语是轻量级(lightweight)。实际上,Swing 可以支持在一个 GUI 中混合使用重量级组件和轻量级组件,例如在一个 JContainer 中混合使用 AWT 和 Swing 控件,但是如果组件产生了重叠

28、,就必须注意绘制这些控件的顺序。Swing 无法充分利用硬件 GUI 加速器和专用主机 GUI 操作的优点。结果是 Swing 应用程序可能比本地 GUI 的程序运行速度都慢。Sun 花费了大量的精力来改进Swing 的性能,这种缺点正在变得日益微弱。由于 Swing 的设计更加健壮,因此其代码基础也更坚实。这意味着它可以在一台健壮的机器上比 AWT 运行得更好。 3Java是通过数据流来实现数据的输入和输出的。通过数据流,程序可以从外部获得数据信息,也可以将数据信息传送到外部。在Java中,Reader和Writer是所有基于字符的数据流类的父类,它们可以处理16位的字符。另外,InputS

29、tream和OutputStream是所有基于字节的数据流类的父类,它们处理8位的字节数据。Java的对象序列化就是将对象的状态转换成字节流,以后可以通过这些字节信息再生成相同状态的对象。对象序列化能使对象获得持续性,可以长久保存。五、实验步骤1阅读分析如图3.2所示程序。该程序实现了一个名片录入界面,当点击“取消”按钮时程序退出。程序运行结果如图3.1所示。图3.1 图3.2(2)新建CardManager.java文件,输入程序,将程序中“代码1-7”处补充完整并保存。(3)使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。(4)CardManage

30、r()方法中的ButtonGroup有什么用处?如果改变程序窗口的大小,会发生什么情况?为什么?将你的分析写入实验报告。(5)参考Java API文档,将本程序修改为用GridBagLayout布局管理器管理组件,使得组件能随程序窗口的变化成比例变化。将修改后的程序和运行结果截图写入实验报告。补充后程序为:运行结果为:实验分析和小结:CardManager()方法中的ButtonGroup是为创建按钮,及程序中的性别按钮,如果改变窗口的大小运行结果为:虽然窗口大小改变了,但是并没有设置要求各项也随着窗口的变化而拉伸,所以就只是窗口改变而已。2阅读分析如图3.4所示程序。该程序可根据用户的选择对文字的字体,大小,颜色,风格等进行设置 。程序运行结果如图3.3所示。图3.3图3.4(2)新建ArtFont.java文件,输入程序,将程序中“程序段1-4”处补充完整并保存。(3)使用DOS命令进入其所存放的目录,编译运行该程序。并将完整程序和运行结果截图写入实验报告。(4)将程序中的语句colorBtn.addActionListener(this)改为如下形式:colorBtn.addActionListener(new ActionListener() if(e.getSource()=colorBtn)/改变颜色 colorStyle=J

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2