1《Java语言程序设计》上机实验指导手册实验一Java环境演练【目的】①安装并配置Java运行开发环境;②掌握开发Java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序;③学习同时编译多个Java源文件。【内容】1.一个简单的应用程序实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“Wearestudents”。程序运行效果示例:程序运行效果如下图所示:程序模板:Hello.javapublicclassHello{publicstaticvoidmain(Stringargs[]){【代码1】//命令行窗口输出你好,很高兴学习JavaAa=newA();a.fA();}}classA{voidfA(){【代码2】//命令行窗口输出Wearestudents}}实验后的练习:1.编译器怎样提示丢失大括号的错误?2.编译器怎样提示语句丢失分号的错误?3.编译器怎样提示将System写成system这一错误?4.编译器怎样提示将String写成string这一错误?2.联合编译2实验要求:编写4个源文件:Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。将4个源文件保存到同一目录中,例如:C:\100,然后编译Hello.java。程序模板:模板1:Hello.javapublicclassMainClass{publicstaticvoidmain(Stringargs[]){【代码1】//命令行窗口输出你好,只需编译我Aa=newA();a.fA();Bb=newB();b.fB();}}模板2:A.javapublicclassA{voidfA(){【代码2】//命令行窗口输出IamA}}模板3:B.javapublicclassB{voidfB(){【代码3】//命令行窗口输出IamB}}模板4:C.javapublicclassC{voidfC(){【代码4】//命令行窗口输出IamC}}3实验后的练习:5.将Hello.java编译通过后,不断修改A.java源文件中的代码,比如,在命令行窗口输出“我是A类”或“我被修改了”。要求每次修改A.java源文件后,单独编译A.java,然后直接运行应用程序Hello。6.如果需要编译某个目录下的全部Java源文件,比如C:\1000目录,可以使用如下命令:c:\1000\javac*.java【结果】将本次上机实验结果按照以上内容依次填写实验目标、过程、结果。【注意事项】①实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同组人,试验日期、交报告日期等。②报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。【思考题】实验二Java基本数据类型与控制语句【目的】①掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;②掌握使用if…elseif多分支语句;③使用if…else分支和while循环语句解决问题。【内容】1.输出希腊字母表。实验要求:编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。程序模板:GreekAlphabet.javapublicclassGreekAlphabet{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintstartPosition=0,endPosition=0;charcStart='α',cEnd='ω';startPosition=(int)cStart;endPosition=(int)cEnd;System.out.println(希腊字母\'α\'在unicode表中的顺序位置:+startPosition);System.out.println(希腊字母表:);for(inti=startPosition;i=endPosition;i++){charc='\0';c=(char)i;4System.out.print(+c);if((i-startPosition+1)%10==0)System.out.println();}}}实验后的练习:1.将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?2.在应用程序的main方法中增加语句:floatx=0.618;程序能编译通过么?3.在应用程序的main方法中增加语句:bytey=128;程序能编译通过么?4.在应用程序的main方法中增加语句:intz=(byte)128;程序输出变量z的值是多少?2.回文数。实验要求:编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。程序运行效果示例:程序运行效果如下图所示:程序模板:Number.javaimportjavax.swing.JOptionPane;publicclassNumber{publicstaticvoidmain(Stringargs[]){intnumber=0,d5,d4,d3,d2,d1;Stringstr=JOptionPane.showInputDialog(输入一个1至99999之间的数);number=Integer.parseInt(str);if(【代码1】)//判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;5if(【代码5】)//判断number是5位数的条件{System.out.println(number+是5位数);if(【代码6】)//判断number是回文数的条件{System.out.println(number+是回文数);}else{System.out.println(number+不是回文数);}}elseif(【代码7】)//判断number是4位数的条件{System.out.println(number+是4位数);if(【代码8】)//判断number是回文数的条件码{System.out.println(number+是回文数);}else{System.out.println(number+不是回文数);}}elseif(【代码9】)//判断number是3位数的条件{System.out.println(number+是3位数);if(【代码10】)//判断number是回文数的条件{System.out.println(number+是回文数);}else{System.out.println(number+不是回文数);}}elseif(d2!=0){System.out.println(number+是2位数);if(d1==d2){System.out.println(number+是回文数);}else6{System.out.println(number+不是回文数);}}elseif(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.javaimportjavax.swing.JOptionPane;publicclassGuessNumber{publicstaticvoidmain(Stringargs[]){System.out.println(给你一个1至100之间的整数,请猜测这个数);intrealNumber=(int)(Math.random()*100)+1;intyourGuess=0;Stringstr=JOptionPane.showInputDialog(输入您的猜测:);yourGuess=Integer.parseInt(str);while(【代码1】)//循环条件{if(【代码2】)//条件代码{7str=JOptionPane.showInputDialog(猜大了,再输入你的猜测:);yourGuess=Integer.parseInt(str);}elseif(【代码3】)//条件代码{str=JOptionPane.showInputDialog(猜小了,再输入你的猜测:);yourGuess=Integer.parseInt(str);}}System.out.println(猜对了!);}}实验后的练习:1.用“yourGuessrealNumber”替换【代码1】,可以么?2.语句:“System.out.println(“猜对了!”);”为何要放在while循环语句之后?放在while语句的循环体中合理吗?【结果】将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。【注意事项】①实验报告要求每人提交一份,使用专门的报告纸,内容写全,包括实验名称、班级、姓名、同组人,试验日期、交报告日期等。②报告不需要填写源代码,只要将完成情况和所有练习题结果写上就可以。实验三类与对象、继承【目的】①使用类来封装对象的属性和功能;②掌握类变量与实例变量,以及类方法与实例方法的区别;③掌握使用package和import语句。④巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写【内容】1.三角形、梯形和圆形的类封装实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。8c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。程序运行效果示例:程序运行效果如下图所示:程序模板:AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】)//a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。}else{【代码4】//给boo赋值。}}doublegetLength(){【代码5】//方法体,要求计算出length的值并返回}publicdoublegetArea(){if(boo){doublep=(s