您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > java实验指导 (2)
Java程序设计实验指导书编著:刘毅前言一、上机实验目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解Java语言的基本结构和程序设计方法。通过亲手编程掌握Java语言编程的方法。二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了10个实验。学生可以在课内机时先完成指导书中给出的程序,理解所学的知识,在此基础上再编写其他应用程序。三、实验任务与时间安排《Java语言》是一门实践性很强的课程,除了在课内安排的实验外,鼓励同学在课外用相关技术进行编程练习。《Java语言》上机实验时间为30学时,与教学内容同时进行上机实验。30个上机学时分为10个实验,在该单元学习后安排1次上机实验。实验1简单Java程序调试1.1实验目的(1)掌握Java应用程序和JavaApplet程序的调试步骤;(2)了解Java程序的基本组成结构;(3)了解字符方式和图形方式下数据的输出方法。1.2知识要点1.2.1Java编程运行环境的安装(1)在根据自己的操作系统下载安装程序,按安装说明进行安装。(2)设置环境变量。以WinXP为例,在“我的电脑”上点右键,打开属性→高级→环境变量→系统变量,选中变量path进行编辑,在后面加入“;C:\j2sdk1.4.2\bin”,注意:这里的目录C:\j2sdk1.4.2是你安装Java的目录。(3)打开命令提示符窗口,输入javac命令按回车,如果出现命令的使用参数说明,则表示设置正确,如果出现非法命令的错误提示,则应该重新设置。1.2.2Java程序调试步骤Java程序的调试分编辑、编译、运行3个步骤,见图1-1。(1)源程序的编辑可用记事本等文本编辑器对Java源程序进行输入和修改。源程序文件的名字一定要与Java的主类名称保持一致。所谓主类是指Java应用程序中含有main方法的类,JavaApplet程序中继承Applet的类。(2)对源程序进行编译命令格式:javac文件名.java编译的目的是将Java源程序转化为字节码文件,只有字节码文件才能被Java解释程序运行。如果程序中有语法错误,则在命令行将显示出错误信息,错误信息中会指示出错的行,错误类型,用户要仔细查看错误,根据错误指示修改源程序。每次改动程序后要重新编译,直到无错才执行程序。(3)java应用程序的运行命令格式:java文件名执行程序是执行字节码文件(.class类型的文件),但命令行在java命令后只要给出文件名即可。运行程序后将产生输出结果,用户可检查分析结果是否正确,如果不正确,说明程序逻辑思路存在问题,检查改正逻辑错误后重新编译运行。(4)applet程序的运行在JavaApplet程序编译通过后,运行时必须嵌入在一个HTML文件中,因此,需要制作一个HTML文件(不妨假设名称为x.htm),文件内容中包括有Applet标记。html文件与字节码文件通常放在同一目录下。查看Applet运行结果有两种方法:方法1:用浏览器访问HTML文件方法2:用JDK中包含的APPLET测试程序(appletviewer)运行HTML文件。例如:appletviewerx.htm1.2.3常见错误处理错误1:javac命令为非法处理办法:安装java后,path环境变量设置是否正确。错误2:执行javacX.java时显示找不到文件X.java文件。处理办法:进入到X.java所在的目录进行操作。在当前目录下用dir显示,看是否有X.java文件,如果发现你保存的文件为X.java.txt,则说明,你保存文件时未选择所有文件类型,Windows自动给文件添加后缀。解决办法可用如下命令将文件改名:renameX.java.txtX.java命令格式为:rename旧文件名新文件名错误3:文件编译通过,但运行时显示找不到类。处理办法:有可能文件名与类名不一致,而且类名未定义为public,例如:以下程序文件名起名hello.java,编译通过,运行时输入javahello则出现“NoClassDefFoundError”的错误,运行输入javaHello可输出结果。还有可能是系统的classpath环境未将当前目录作为类的搜索路径。只要将代表当前目录的“.”放到classpath的设置值中即可。DOS命令可用:setclasspath=%classpath%;.错误4:常见程序代码问题括号不匹配;变量未定义;访问未初始化的变量;main方法未设置为static等。1.2.4几个常用DOS命令(1)显示当前目录下有哪些文件命令格式:dir(2)更改当前盘命令格式:盘符:例如将当前盘改为D盘用如下命令。C:\D:D:\(3)进入当前目录下某个子目录命令格式:cd子目录名例如,以下命令进入xyz子目录D:\CDxyzD:\xyz(4)设置path路径(假设JDK安装在d盘的jdk14文件夹下path=%path%;d:\jdk14\bin1.2.5Java程序的特点(1)任何程序代码均封装在类中。(2)主类的名称与源程序的文件名保持一致。(3)严格区分大小写。(4)Java应用程序的特点特点1:main方法作为程序执行入口特点2:在DOS命令方式下执行(5)JavaApplet程序的特点特点1:applet程序必须继承Applet类;特点2:Applet程序在HTML页面文件中运行。1.3试验内容样例1:编写应用程序输出如下三角形。****************【参考程序】publicclassStar{publicstaticvoidmain(Stringa[]){System.out.println(*);System.out.println(***);System.out.println(*****);System.out.println(*******);}}程序运行结果如图1-2所示。【编程技巧】(1)main方法是应用程序执行入口;(2)如何在命令控制台输出字符串。样例2:编写Applet程序绘制一个红色三角形,三角形中央绘制兰色文字“三角形”。【参考程序】(1)Applet程序importjava.awt.*;importjava.applet.Applet;publicclasstriangleextendsApplet{publicvoidpaint(Graphicsg){g.setColor(Color.red);//设置画笔颜色为红色g.drawLine(80,20,20,100);g.drawLine(20,100,140,100);g.drawLine(140,100,80,20);g.setColor(Color.blue);//设置画笔颜色为兰色g.drawString(三角形,65,80);}}【编程技巧】(1)如何引入某个包的类;(2)编写Applet程序要继承Applet类;(3)paint方法会自动执行,用画笔对象可绘制图形。(2)HTML文件htmlbodyappletcode=triangle.classwidth=300height=300/applet/body/html用appletviewer查看程序运行结果如图1-3所示。1.4思考题1)以下哪个是Java应用程序main方法的有效定义?A.publicstaticvoidmain();B.publicstaticvoidmain(Stringargs);C.publicstaticvoidmain(Stringargs[]);D.publicstaticvoidmain(Graphicsg);E.publicstaticbooleanmain(Stringa[]);2)编译和运行以下代码的结果为:publicclassMyMain{publicstaticvoidmain(Stringargv){System.out.println(Hellocruelworld);}}A.编译错误;B.运行输出Hellocruelworld;C.编译无错,但运行时指示没有定义构造方法。D.编译无错,但运行时指示没有正确定义main方法。3)以下程序的运行结果为:publicclassTest{publicstaticvoidmain(Stringargv[]){System.out.println(x=+5);}}A.5B.x=5C.x=+5D.x=54)以下程序的运行结果为:publicclassTest{publicstaticvoidmain(Stringargv[]){System.out.println(good+morning);}}A.goodmorningB.good+morningC.goodmorningD.good+morning实验2Java符号与表达式2.1实验目的(1)熟悉基本数据类型及其占用空间大小,熟悉标识符的定义特点;(2)熟悉常见转义字符的含义;(3)掌握不同类型数据的赋值转换原则,熟悉自动转换与强制转换的含义;(4)掌握常用运算符的使用。2.2试验内容样例1:调试分析以下程序的运行结果:publicclasstest{publicstaticvoidmain(Stringa[]){intm=0;System.out.println(m++=+m++);System.out.println(++m=+(++m));booleanx;x=(53)&&(4==6);System.out.println(x=+x);m=m%2;System.out.println(result=+m+1);inty=m*m+2*m-1;System.out.println(m=+m+,y=+y);}}样例2:已知梯形的上底为3,下底为5,高为2.4,求其面积。2.3参考答案样例1答案:【输出结果】m++=0++m=2x=falseresult=01m=0,y=-1【说明】(1)注意m++和++m的求值差异;(2)注意输出语句中与字符串的拼接运算次序。字符串“result”先与m的值拼接,然后再与1拼接。样例2答案:【参考程序1】publicclassArea{publicstaticvoidmain(Stringa[]){doublex=3;//上底doubley=5;//下底doublez=2.4;//高doubles=(x+y)*z/2;//计算面积System.out.println(面积=+s);}}【参考程序2】publicclassArea{publicstaticvoidmain(Stringa[]){doubles=(3+5)*2.4/2;//计算面积System.out.println(面积=+s);}}【说明】计算机编程解法可以是多样的,只要能实现目标即可。但要注意程序的可读性,对引入的变量通常要加以注释。2.4思考题1)现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为:A.int类型B.double类型C.float类型D.long类型2)下面程序段的输出结果是:inta=2;System.out.print(a++);System.out.print(a);System.out.print(++a);A.333B.334C.234D.2333)以下代码的输出结果?publicclassTest{intx=3;publicstaticvoidmain(Stringargv[]){intx=012;System.out.println(x);}}A.12B.012C.10D.34)下列定义语句正确的是:A.charc=\n;B.inti=12;C.floatf=2.8;D.booleanb=null;5)检查如下代码:publicclassQuiz2_l{publicstaticvoidmain(String[]args){inta=8;int
本文标题:java实验指导 (2)
链接地址:https://www.777doc.com/doc-6291313 .html