java程序设计实验指导书er.doc_第1页
java程序设计实验指导书er.doc_第2页
java程序设计实验指导书er.doc_第3页
java程序设计实验指导书er.doc_第4页
java程序设计实验指导书er.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java程序设计实验指导书er 燕山大学经济管理学院JAVA程序设计语言实验指导书经济管理学院电子商务系xx年8月实验说明JAVA程序设计语言Java语言是一种完全面向对象的计算机程序设计语言,它具有“一次编写,到处运行”的跨平台特性。 该课程作为电子商务专业的一门专业课,主要介绍JAVA程序设计语言的基本知识,为日后学生进一步学习J2ME或J2EE打下牢固的程序设计语言基础。 实验课是JAVA程序设计语言的重要实践环节。 通过实验,使学生加深理解、验证、巩固课堂教学内容,加深对JAVA程序设计的过程、方法的理解,发挥学生的想象力和创新能力。 本实验课程共开设5个实验项目。 实验方式与基本要求学生须在实验前预习相应实验内容,熟悉实验的基本原理、方法及要求、制定好上机步骤,弄清实验目的;实验每次均为2学时,学生须按时到场;要求学生掌握程序设计的各种基本方法与步骤,并在实验中得到提高。 考核及报告实验时立将各种问题与结果记录下来,实验内容可以通过截图等方式存入U盘,并在课后完成实验报告内容;任课教师对每次记录都要进行检查、分析、登记;课程总成绩应为理论考核、实验成绩的综合;其中实验课程成绩占30%,理论课成绩占70。 一实验一熟悉Java程序开发环境 一、实验目的 (1)了解和使用J2sdk1.5.0(JDK)集成环境。 (2)熟悉J2sdk集成环境的基本命令、功能和基本用法。 并学会配置path等环境变量 (3)学习并熟练掌握使用J2SDK环境进Java程序开发的全过程(包括源程序的、编译、调试、运行和结果查看)。 (4)了解和掌握JCREATOR和Eclipse集成环境的安装,简单应用。 (5)了解Java Application和Applet程序的基本结构。 (6)了解Java程序文件名和类名的说明方法。 二、实验内容与要求 (1)安装Jdk1.5.0集成环境,安装成功后,配置path,classpath路径,让用户在任何目录下均可用到Java的系统资源。 设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。 进入命令行(MS-DOS)方式,进行如下设置SET PATH=D:JDK1.5.0BIN;%PATH%SET CLASSPATH=.;%CLASSPATH% (2)安装Jdk1.5.0Doc,并查看Jdk1.5.0Doc文档中,和课堂教学有关系的部分。 在整个实验过程中都可以参考。 (3)建立自己的工作目录如d:user。 以后的Java程序和过程文件均放置在此目录下。 输入一个Application源程序,学习、编译、运行程序的方法。 /例1-1文件HelloWorldApp.java如下:/HelloWorldApp.javapublic classHelloWorldApppublic staticvoid main(String args)System.out.println(Hello World!);本程序的作用是输出下面一行信息Hello World!现在我们可以运行该程序。 首先把它放到一个名为HelloWorldApp.java的文件中,这里,这文件名应和类名相同,因为Java解释器要求公共类必须放在与其同名的文件中。 然后对它进行编译d:userjavac HelloWorldApp.java编译的结果是生成字节码文件HelloWorldApp.class。 最后用java解释器来运行该字节码文件d:userjava HelloWorldApp结果在屏幕上显示HelloWorld! (4)输入一个applet源程序,学习、编译、运行程序的方法。 简单的Applet小程序例1-2/HelloWorldApplet.javaimport java.awt.*;import java.applet.*;public classHelloWorldApplet extendsApplet/anappletpublic voidpaint(Graphics g)g.drawString(Hello Worldin Applet!,20,20);这个程序中没有实现main()方法,这是Applet与应用程序Application(如上例)的区别之一。 为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后对它进行编译d:userjavac HelloWorldApplet.java得到字节码文件HelloWorldApplet.class。 由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。 它的文件如下 An Applet其中用标记来启动HelloWorldApplet.code指明字节码所在的文件,width和height指明applet所占的大小,把这个HTML文件存入Example.html,然后运行d:userappletviewer Example.html这时屏幕上弹出一个窗口,其中显示Hello Worldin Applet!。 三、思考题1什么是Java虚拟机?它的作用是什么?J Jaava虚拟机即JVM,是a java平台的基础,并且与各种基于硬件的平台相连,它提供了a java程序运行的必要环境。 J Jaava虚拟机的作用是使a java应用达到平台无关2Java Application程序与Java Applet程序的不同之处有那些?请各位同学收集错误代码与提示信息,以及产生错误的原因。 一.结构上的区别(11。 )运行方式不同。 a JavaApplication,可以独立运行(有a java虚拟机的地方他都可以运行)。 a Javat Applet程序不能单独运行,它必须依附于一个用L HTML语言编写的网页并嵌入其中,通过与Java a兼容的浏览器来控制执行。 (22)运行工具不同。 运行a Javat Applet程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。 Javan Application程序被编译以后,用普通的a Java解释器就可以使其边解释边执行,而a Javat Applet必须通过网络浏览器或者t Applet观察器才能执行。 (33)程序结构不同。 每个a Javan Application程序必定含有一个并且只有一个n main方法,程序执行时,首先寻找n main方法,并以口此为入口点开始运行。 含有n main方法的那个类,常被称为主类,也就是说,a Javan Application程序都含有一个主类。 而t Applet程序则含没有含n main方法的主类,这也正是t Applet程序不能独立运行的原因。 尽管t Applet没有含n main方法的主类,但t Applet个一定有一个从t java.applet.Applet派生的类,它是由a Java系统提供的。 (44)a Javat Applet程序可以直接利用浏览器或AppletViewer r提供的图形用户界面,而a Javan Application程序则必须另外书写专用代码来营建自己的图形界面。 (55)受到的限制不同a Javan Application程序可以设计成能进行是各种操作的程序,包括读写文件的操作,但是a Javat Applet对站写点的磁盘文件既不能进行读操作,也不能进行写操作。 然而,由于t Applet的引入,使b Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的L HTML语言编写成的b Web页面真正具功有了超文本功能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,t Applet使b Web增页面增加了按钮等功能,从而增加了交互性。 二.执行方面a Javan Application一般是在本地运行,而a Javat Applet一般在服务端运行。 3列举出5种以上Java开发平台,分析他们的优缺点或特点。 答11)jdk简单易用,开发、执行效率非常高。 k jdk的缺点是用它开发的a Java应用几乎不可能。 22)JCreator具有智能感知与语法着色等功能,还具有项目管理、项目模板等功能,适合初学者使用。 :3)NetBeans:是开放源码的a Java集成开发环境,能够对a Java应用系统的编码、编译、调试和部署提供全功能支持,并将版本控制和XML L融入它众多的功能之中。 4)Eclipse与商业软件不同,e Eclipse是一个完全的、开放源代码的、可扩展的a Java集成开发环境。 e Eclipse平台具有较好的灵活性,但缺点是使用较复杂,对初学者而言掌握起来不太容易。 5)JBuilder r JBuilder是世界上第一个实现跨平台的a Java集成开发环境,是纯a Java语言编写的编译器。 rJBuilder功能强大,但对机器硬件要求较高,内存资源占用严重。 不适合a Java初学者使用。 二实验二简单数据类型和流程控制 一、实验目的1掌握Java语言的标识符和保留字,各简单数据类型变量以及有逻辑量意义数据的表示方法以及表示条件的表达式的类型。 2掌握Java语言中具各种运算符表达式的基本知识。 3熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。 4熟练掌握使用if语句的嵌套及switch语句进行多分支结构程序设计的基本方法。 5熟练掌握while、do-while和for三种语句组成循环结构的基本方法。 熟练掌握特殊流程控制语句如break,continue,标号语句。 6熟练掌握一维数组和二维数组的使用7把课堂上学到的理论用于实践,并验证理论的正确性,和发现新的问题 二、实验内容与要求 1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public classCh21public staticvoid main(String args)char x,y,z;x=K;y=;z=117;System.out.print(x);System.out.print(y);System.out.print(z); 2、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public classCh22public staticvoid main(String args)boolean x,y,z;int a=12,b=24;x=(ab);y=(a!=b);z=(a+b=36);System.out.println(x=+x);System.out.println(y=+y);System.out.println(z=+z); 3、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public classCh23public staticvoid main(String args)int x,y,z=0;for(x=1;x=10;x+)for(y=1;y5)break;z+;System.out.println(z=+z);4设int year,month,day分别表示一个日期中的年月日,试编程求a)对于任意三个整数,判断其是否为一个合法的日期值。 b)给定一个日期值,计算若干天后的日期值c)如果有两个日期值,计算他们相距的天数。 a)给定一个日期值,计算若干天后的日期值如果有两个日期值,计算他们相距的天数3.找出一个二维数组的鞍点,即该位置上的元素在该行上最大、在列上最小(也可能没有鞍点。 ) 6、编写一个程序,要求将一个浮点数强制转化成整型后再输出。 7请计算出3至1000范围内最大的10个素数,放入数组中,并计算出其累加和。 public classTest/判断一个数是不是素数 三、思考题1定义变量的作用是什么?定义变量主要是用于调用其值,还有逻辑判断时使用。 2Java运算符的优先级与结合性是怎样的?Java运算符的优先级序列号符号名称结合性(与操作数)目数说明1.点从左到右双目()圆括号从左到右方括号从左到右2+正号从右到左单目-负号从右到左单目+自增从右到左单目前缀增,后缀增-自减从右到左前缀减,后缀减按位非/取补运算从右到左单目!逻辑非从右到左单目“!”不可以与“=”联用3*乘从左到右双目/除从左到右双目整数除法取商的整数部分,小数部分去掉,不四舍五入%取余从左到右双目4+加从左到右双目-减从左到右双目5带符号右移位运算符从左到右双目无符号右移从左到右双目6大于从左到右双目=大于或等于从左到右双目instanceof确定某对象是否属于指定的类从左到右双目7=等于从左到右双目关系运算符“=”说明!=不等于从左到右双目8&按位与从左到右双目9|按位或从左到右双目10按位异或从左到右双目11&短路与从左到右双目12|短路或从左到右双目13?:条件运算符从右到左三目14=赋值运算符从右到左双目+=混合赋值运算符-=*=/=%=&=|=说明1.算术运算符+:加法-减法*乘法/除法%取余运算2.关系运算符 :(同关系运算符“”)=:(同关系运算符“=:(同关系运算符“”)=若使用该运算符比较两个对象的引用(变量),则实质上是比较两个变量是否引用了相同的对象。 所谓相同的对象是指,是否是在堆栈(Heap)中开辟的同一块儿内存单元中存放的对象。 若比较两个对象的引用(变量)所引用的对象的内容是否相同,则应该使用equals()方法,该方法的返回值类型是布尔值。 需要注意的是若用类库中的类创建对象,则对象的引用调用equals()方法比较的是对象的内容;若用自定义的类来创建对象,则对象的引用调用equals()方法比较的是两个引用是否引用了同一个对象,因为第二种情况equals()方法默认的是比较引用。 !=(同关系运算符“=”)3.逻辑运算符(操作符只能是布尔类型的)&|!4.位运算符&|!不可以与=联用,因为!是一元操作符;不可以对布尔类型的数据进行按位非运算5.移位运算符(只能处理整数运算符)Char、byte、short类型,在进行移位之前,都将被转换成int类型,移位后的结果也是int类型;移位符号右边的操作数只截取其二进制的后5位(目的是防止因为移位操作而超出int类型的表示范围2的5次方是32,int类型的最大范围是32位);对long类型进行移位,结果仍然是long类型,移位符号右边的操作符只截取其二进制的后6位。 若符号位为正,则在最高位插入0;若符号位为负,则在最高位插入1无论正负,都在最高位插入03long l=121233;float f=100.2323;这两行代码在编译时有什么错误。 4&和&有什么区别?&和&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为e true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &还具有短路的功能,即如果第一个表达式为false,则不再计于算第二个表达式,例如,对于if(str!=null&!str.equals(“”)表达式,当当r str为l null时,后面的表达式不会执行,所以不会出现n NullPointerException如果将&改为&,则会抛出n NullPointerException异常。 3If(x=33&+y0)y y会增长,3If(x=33&+y0)不会增长&还可以用作位运算符,当&操作符两边的表达式不是boolean n类型时,&表示按位与操作,我们通常使用f0x0f来与一个整数进行&运算,来获取该整数的最低44个t bit位5break,continue在流程控制中的作用。 breaklabel;/用来从h switch语句、循环语句中跳出;continuelable;/跳过循环体的剩余语句,开始执行下一次循环三实验三类、对象基础知识 一、实验目的 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、熟练掌握封装性,多态性的概念 4、理解面向对象的程序设计方法。 二、实验内容与要求1运行下面的程序,理解面向对象的程序设计方法的基本概念。 class valuepublic intx,y;public value(int a,int b)x=a;y=b;public classCh31public staticvoid main(String args)int total;value num=new value(24,65);total=num.x+num.y;System.out.println(add=+total); 2、定义一个类实现银行帐户的概念,包括的变量有帐号和存款余额,包括的方法有存款、取款、查询余额和”显示帐号”,。 定义主类,创建帐户类的对象,并完成相应操作。 提示关键代码如下public intgetleftmoney()return leftmoney;public voidsavemoney(double money)leftmoney+=money;public voidgetmoney(double money)if(money=leftmoney)leftmoney-=money;elseSystem.out.println(只能取+leftmoney);bankaount ba=new bankaount(888123,1000);ba.savemoney (21000);System.out.println(存入21000元后余额为+ba.getleftmoney();ba.getmoney (11500);System.out.println(11500元后余额为+ba.getleftmoney();3先创建一个Point类,然后定义Trianglele类。 在Trianglele类中定义三个Point的实体来表示一个三角形的三个点,再定义一个方法setTri对这三个点进行初始化,然后定义两个方法求三角形的周长、面积。 在main()中创建一个对象,求给定三点的三角形的周长、面积。 3将上题的方法setTri改用构造方法实现初始化。 4、编写JAVA程序求园柱体的表面积和体积,已知底面圆心p为(0,0),半径r为10,圆柱体高5。 三、思考题1一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?不能,这种变量称为局部变量,局部变量的作用域是所在的方法和代码块,当程序执行流进入所在方法(或代码块)时创建,在方法或代码块退出时消亡,可以在整个类内共享的变量是全局变量,方法的参数不能在方法之外使用,因为其生命周期只存在于方法内。 2为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候执行?被谁调用?在在java中,构造函数又称为构造方法。 特殊性在于构造方法的名称必须与类名相同,构造方法不能有返回值,用户不能直接调用构造方法,必须通过关键词new自动调用它。 构造方法可以重载,即定义多个构造方法,其参数表不同。 重载构造方法的目的是使类对象具有不同的初始值,为类对象的初始化提供方便。 3子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?答方法重写4同名的不同方法共存的情况称为什么?如何区分这些同名方法?答这种情况称为方法重载。 区分这些同名方法是根据方法的参数表,参数的类型和个数。 5定义一个矩形类Rectangle,再定义接口InterfaceRec,其中包含方法getArea();由矩形类派生出一个正方形类,自行扩充成员变量和方法,并实现此接口InterfaceRec中的方法。 四实验四异常处理 一、实验目的 1、理解什么是例外 2、掌握java的例外处理机制和方法 二、实验内容与要求 1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果mport java.io.*;public classCh61public staticvoid main(String args)throws IOExceptionintko=new int15;int n,a;String x;BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in);System.out.print(Enter aninteger:);x=keyin.readLine();n=Integer.parseInt(x);trya=110/n;ko15=100;System.out.println(此描述无法执行!);catch(ArithmeticException e)System.out.println(除数为0的错误);catch(ArrayIndexOutOfBoundsException f)System.out.println(数组索引值大于数组长度的错误!);System.out.println(执行完catch的描述!);当修改代码后2运行下面的程序,自己给出程序的运行结果。 import java.io.*;public classCh62public Ch62()tryint a=new int2;a4=3;System.out.println(After handlingexception returnhere?);catch(IndexOutOfBoundsException e)System.err.println(exception msg:+e.getMessage();System.err.println(exception string:+e.toString();e.printStackTrace();finallySystem.out.println(-);System.out.println(finally);System.out.println(No exception?);public staticvoid main(String args)new Ch62();3使用Java Aplication的命令行参数读入两个数据,计算它们的和,然后将和输出。 编程自定义例外OnlyOneException与NoOprandException。 如果参数的数目不足,显示相应提示信息并退出程序的执行。 三、思考题1.下面程序在编译时会出现什么错误?import java.io.*;class ExceptionDemo1public staticvoid main(String args)FileInputStream fis=new FileInputStream(“text.dat”);int b;while(b=fis.read()!=-1System.out.print(b);fis.close();2异常分为哪两类?J Jaava处理的异常可以大致分为两类r Error及其子类、n Exception(包括n RuntimeException及其他n Exception类)。 J Java a对于不同的异常采取不同的策略。 r Error意味着很难恢复的严重错误,一般不由程序处理。 n RuntimeException意味着程序设计或实现问题,例如使用数组越界、算数运算异常(例如除00运算)、空指针异常(即没有初始化的空指针)等其他的异常通常是由环境因素引起的,如文件的不存在,无效的的L URL等。 3如果申明int a=new int-10;应属于那类异常NegativeArraySizeException4比较throw和throws两者的用法上的区别。 s throws是声明异常,w thow是确定要抛出异常。 w throw关键字通常用在方法体中,并且抛出一个异常对象。 执行w throw语句后,运行流程立即停止,它后面的语句都不执行。 通过w throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用s throws关键字在方法声明中指明要抛出的异常;如果要捕捉w throw抛出的异常,则必须使用tryh catch语句。 s throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。 当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。 w throw写在方法体内s,throws写在方法名的后面,两个都是用于抛出异常。 5本实验的实验内容2中,finally程序块的作用是什么?y finally是在发生异常时候的一种最后的补充,就是一种填补,最后无论发现没发现Exception,都会执行y finally这个语句。 不论发生什么,都会执行y finally这个语句。 五实验五用户图形界面GUI标准组件及事件处理 一、实验目的1.掌握常用GUI控制组件的使用方法。 2.掌握事件处理的方法。 3了解swing控件的概念。 二、实验内容1编程包含一个标签和一个按钮,单击按钮时,标签的内容在你好和再见之间切换。 2编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。 3编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的背景色为青色,未选中时为灰色。 4编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为普通、黑体和斜体。 选择文本标签为普通的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为黑体的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为斜体的单选按钮时,普通按钮中的文字的字体为斜体。 5编程包含一个下拉列表和一个按钮,下拉列表中有 10、 14、18三个选项。 选择10时,按钮中文字的字号为10,选择14时,按钮中文字的字号为14,选择18时,按钮中文字的字号为18。 6编程包含一个列表和两个标签,在第一个标签中显示列表中被双击的选项的内容,在第二个标签中显示列表中被选中的所有选项的内容。 7编程确定当前鼠标的位置坐标。 8编程创建一个F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论