版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 实验指导与习题解答程绍辉东北大学秦皇岛分校2003.11目录Java 实验指导1实验目的与要求1实验一 JDK开发工具1实验二 基本输入输出3实验三 Java语言基础4实验四 顺序结构6实验五 分支语句8实验六 循环语句10实验七 数组11实验八 类与对象12实验九 继承与多态14实验十 异常处理18实验十一 常用基础类库与工具类库20实验十二 用户自定义成分21实验十三 GUI标准组件及事件处理22实验十四 Applet23实验十五 流式输入输出26实验十六 多线程机制28实验十七 网络编程30实验十八 JDBC技术32实验十九 Sevlet与JSP33习题解答37第一章程序设计基
2、础37第二章 Java语言概述39第三章 Java语言基础41第四章结构化编程43第五章面向对象编程45第七章常用基础类库与工具类库47第八章图形用户界面49第九章 Applet51Java语言程序设计期末复习综合练习题60Java 实验指导实验目的与要求上机实验是一个重要教学环节。根据课程的教学计划,应当在讲授课程内容的同时,每周安排一定时间的上机实验。通过系统地上机练习,力求能够达到以下四个目的:(1)加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。(2)在上机实验中,提高学生对Java语言各部分内容的综合
3、使用能力,逐步掌握Java语言程序设计的规律与技巧。(3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(4)通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。对学生上机实验提出以下要求:(1)上机实验之前,学生应当为每次上机的内容作好充分准备。对每次上机需要完成的题目进行认真的分析,列出实验具体步骤,写出符合题目要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。(2)按照实验目的和实验内容以及思考题的要求进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。(3)根
4、据实验结果,写出实验报告。实验报告应当包括:实验题目,程序清单,运行结果,以及通过上机取得了哪些经验。实验一 JDK开发工具一、实验目的1熟悉JDK开发环境。2熟悉EditPlus编辑器的使用。3掌握Java Application的程序结构和开发过程。4了解Java Applet的功能与程序结构。二、实验内容1JDK开发环境(1)开发环境安装在“C:JDK1.2.1”目录下。(2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。进入命令行(MS-DOS)方式,进行如下设置:SET PATH=C:JDK1.2.1BIN;%PATH%SET CLASSP
5、ATH=.; %CLASSPATH%2EditPlus编辑器(1)单击“开始”菜单,选择“程序”,选择“EditPlus”,单击“EditPlus”项。(2)在“File”菜单中选择“New”建立新文件;“Open”打开已存在的文件;“Save”保存文件;“Close”关闭文件。(3)在“Edit”菜单中选择“Undo”取消上次操作;“Redo”重复上次操作;“Cut”块剪切;“Copy”块复制;“Paste”块粘贴;“Delete”块删除。(4)在“Search”菜单中选择“Find”查找;“Change”查找并替换。3掌握Java Application程序开发过程(1)打开EditPlu
6、s编辑器。(2)键入如下程序:import java.io.*;public class HelloWorld1public static void main(String arg)System.out.println(Hello World!); (3)检查无误后(注意大小写)保存文件。可将文件保存在“D:Java”目录中,注意文件名为HelloWorld1.java。(4)进入命令行(MS-DOS)方式,设定当前目录为“D:Java”,运行Java编译器:D:Javajavac HelloWorld1.java(5)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器
7、进行修改。常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。(6)利用Java解释器运行这个Java Application程序,并查看运行结果。D:Javajava HelloWorld14了解下面的Java Applet的程序结构和开发过程。import java.awt.Graphics;import java.applet.Applet;public class HelloWorld2 extends Appletpublic
8、void paint(Graphics g) g.drawString(Hello World!,25,25);5.了解下面程序的结构。class People float hight,weight; String head, ear, mouth; void speak (String s) System.out.println(s) ; class A public static void main(String args ) People zhubajie; zhubajie=new People(); zhubajie.weight=200f; zhubajie.hight=1.70f
9、;zhubajie.head=大头; zhubajie.ear=两只大耳朵 ; zhubajie.mouth=一只大嘴; System.out.println ( 重量+zhubajie.weight + 身高+zhubajie.hight) ; System.out.println ( zhubajie.head+zhubajie.mouth+zhubajie.ear) ; zhubajie.speak(师傅,咱们别去西天了,改去月宫吧.);三、思考题1什么是Java虚拟机?它的作用是什么?2Java Application程序与Java Applet程序的不同之处有那些?实验二 基本输入输
10、出一、实验目的1掌握标准输入输出处理。2掌握BufferedReader类的使用方法。二、实验内容1运行下面的程序,掌握Java Application标准输入输出。import java.io.*;public class SimpleCharInOut public static void main(String arg) char c= ; System.out.print(Enter a character please:); try c=(char)System.in.read(); catch(IOException e); System.out.println(Youre ent
11、ered character +c); 2运行下面的程序,掌握BufferedReader类的使用方法。import java.io.*;public class apublic static void main(String args) throws IOException int i; float f,r;BufferedReader din = new BufferedReader(new InputStreamReader(System.in); System.out.print(input i: ); i=Integer.parseInt(din.readLine(); System
12、.out.print(input f: ); f=Float.parseFloat(din.readLine(); r=i+f; System.out.println(i+f+=+r); 三、思考题1使用BufferedReader类从键盘接收一个整数和一个实数,计算它们的和,然后在屏幕上输出。提示:关键语句如下: BufferedReader din = new BufferedReader( new InputStreamReader(System.in); i=Integer.parseInt(din.readLine(); f=Float.parseFloat(din.readLine
13、();2本实验的实验内容1中为什么要使用try-catch语句?实验三 Java语言基础一、实验目的1掌握标识符的定义规则。2掌握表达式的组成。3掌握各种数据类型及其使用方法。4理解定义变量的作用,掌握定义变量的方法。5掌握各种运算符的使用及其优先级控制。二、实验内容1运行下面的程序,掌握变量定义与数据类型。import java.io.*;public class SimpleTypes public static void main(String args) byte b=055; short s=0x55ff; int i=1000000; long l=3615L; char c=c;
14、 float f=0.23F; double d=0.7E-3; boolean bool=true; System.out.println(b=+b); System.out.println(s=+s); System.out.println(i=+i); System.out.println(l=+l); System.out.println(c=+c); System.out.println(f=+f); System.out.println(d=+d); System.out.println(bool=+bool); 2运行下面的程序,掌握算术运算。import java.io.*;p
15、ublic class ArithmaticOp public static void main(String args) int a=5+4; /a=9 int b=a*2; /b=18 int c=b/4; /c=4 int d=b-c; /d=14 int e=-d; /e=-14 int f=e%4; /f=-2 double g=18.4; double h=g%4; /h=2.4 int i=3; int j=i+; /i=4,j=3 int k=+i; /i=5,k=5 System.out.println(a=+a); System.out.println(b=+b); Sys
16、tem.out.println(c=+c); System.out.println(d=+d); System.out.println(e=+e); System.out.println(f=+f); System.out.println(g=+g); System.out.println(h=+h); System.out.println(i=+i); System.out.println(j=+j); System.out.println(k=+k); 3运行下面的程序,掌握关系运算与逻辑运算import java.io.*;public class RelationAndConditio
17、nOp2 public static void main(String args) int a=25,b=3; boolean d=a5); System.out.println(e+!=0&+a+/+e+5=+d); int f=0; d=(f!=0&a/f5); System.out.println(f+!=0&+a+/+f+5=+d); d=(f!=0&a/f5); System.out.println(f+!=0&+a+/+f+5=+d); 三、思考题1定义变量的作用是什么?2Java运算符的优先级与结合性是怎样的?3将本实验的实验内容1中的 long l=3615L;改为:long
18、l=3615;会出现什么情况?为什么?提示:缺省的整型常量为int型,long型常量后面要加l或L。4.将本实验的实验内容1中的 float f=0.23F;改为:float f=0.23;会出现什么情况?为什么?提示:缺省的浮点型常量为双精度(double)型,单精度(float)型常量后面加f或F。5分析本实验的实验内容2中的语句 int j=i+; int k=+i;的执行过程。提示: j=i i=i+1 以及 i=i+1 k=i6分析本实验的实验内容3中的语句d=(f!=0&a/f5);和语句d=(f!=0&a/f5);有什么区别?提示:对于快速逻辑与运算,当运算符左侧表达式的值为tr
19、ue时,不再计算右侧表达式的值。实验四 顺序结构一、实验目的1理解定义变量的作用,掌握定义变量的方法。2掌握顺序结构程序控制。3掌握算法与程序设计的基本方法。二、实验内容1已知半径r5,求圆的面积。2已知半径r5,求球的体积。3用户输入圆的半径r,求圆的面积。4用户输入球的半径r,求球的体积。5已知半径r5,高h10 求圆柱的表面积。6已知半径r5,高h10 求圆柱的体积。7已知三角形三条边长为3,4,5 求面积。8已知注水管需要3小时注满水,排水管需要5小时排空,同时打开,问多长时间注满水?9输入注水管单独注满水时间,排水管单独排空水时间,问:同时打开,多长时间注满水?10同一个笼子里,有一
20、些鸡和兔子,如果这些鸡和兔子一共有40个头,100只脚,请问笼内有鸡和兔各多少只?三、思考题1定义变量的作用是什么?2算法的作用是什么?3将本实验的实验内容8这样编程对不对?为什么?double v;double inspeed=3.0;double outspeed=5.0;double needtime;needtime=v/(v/inspeed-v/outspeed);提示:编程之前要先设计好算法。4. 将本实验的实验内容10这样编程对不对?为什么?int x,y,h40,f=100;x+y=h;2x+4y=f;System.out.print(“cock:”+x+”rabbit:”+y
21、);或:int x,y,h=40,f=100;hx+y;f=2x+4y;System.out.print(“cock:”+x+”rabbit:”+y);提示:编程之前要先设计好算法。注意赋值操作符的含义和用法。5. 复习输入变量值的方法:public static void main(String args) throws IOException float r;BufferedReader din = new BufferedReader(new InputStreamReader(System.in); r=Float.parseFloat(din.readLine(); 实验五 分支语句
22、一、实验目的1掌握if语句、if-else-if结构的使用。2掌握switch语句的使用。二、实验内容1使用简单if语句编程,从键盘键入三个整数,然后按照从小到大的顺序将其输出。2分别使用if-else-if语句和switch语句编程,确定某一月在哪个季节。三、思考题1使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序结构和流程分别是什么?2使用if语句和switch语句都可以实现多分支,它们之间的区别是什么?3编程输入学生的学习成绩的等级,给出相应的成绩范围。设A级为85分以上(包括85分);B级为70分以上(包括70分);C级为60分以上(包括60分);D级为60分以
23、下。分别使用if语句和switch语句实现。提示:使用switch语句的关键代码如下: switch(grade) caseA:System.out.println(grade+ is 85100); break; caseB:System.out.println(grade+ is 7084); break; caseC:System.out.println(grade+ is 6069); break; caseD:System.out.println(grade+ is60); break; default:System.out.println( input error); 4编程输入学
24、生的学习成绩的等级,给出该等级是否及格的信息。A、B、C级为及格;D级为不及格。分别使用if语句和switch语句实现。提示:使用switch语句时,应结合break语句完成,关键代码如下: switch(grade) caseA: caseB: caseC:System.out.println(grade+ is=60); break; caseD:System.out.println(grade+ is60); break; default:System.out.println( input error); 5编程输入学生的学习成绩,给出相应的等级。设85分以上(包括85分)为A级;70分
25、以上(包括70分)为B级;60分以上(包括60分)为C级;60分以下为D级。分别使用if语句和switch语句实现。提示:使用if语句时,应使用if语句的嵌套或if-else-if的形式,关键代码如下:if(x=85) System.out.println(x+属于A级.);else if(x=70) System.out.println(x+属于B级.);else if(x=60) System.out.println(x+属于C级.);else if(x60) System.out.println(x+属于D级.);switch语句的给定条件要求是数值而非逻辑值,所以应结合if语句共同完成
26、。实验六 循环语句一、实验目的1掌握使用while语句实现循环。2了解使用do-while语句实现循环。3掌握使用for语句实现循环。4了解continue语句和break语句的使用。二、实验内容1分别使用while、do-while和for语句编程,求1100的和。2使用continue语句实现:将100300之间的不能被3整除的数输出。3使用break语句实现记数:从1100,当数到78时程序终止。三、思考题1使用while、do-while和for语句实现循环的程序程序结构和流程分别是什么?2使用while、do-while和for语句实现循环的区别是什么?3分别使用while、do-w
27、hile和for语句编程,找出所有的水仙花数并输出。水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:371=33+73+13,371就是一个水仙花数。提示:使用while语句的关键代码如下:while(x=3)提示:关键代码如下: f0=f1=1; for(i=2;i10;i+) fi=fi-1+fi-2;3编程采用冒泡法实现对数组元素由小到大排序。冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。提示:关键代码如下: for(i=0;iintArray.length-1;i+) for(j=i+1;jintArrayj) t=intArrayi;intArrayi=
28、intArrayj;intArrayj=t; 实验八 类与对象一、实验目的1掌握类的声明。2掌握对象的创建。3掌握方法的定义和调用。4掌握构造函数的使用。二、实验内容1编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。2将上题的方法setDemo改用构造函数实现初始化。三、思考题1一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?2为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候
29、执行?被谁调用?3编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。并创建一个对象验证。提示:关键代码如下: void move(int newX,int newY) x=newX; y=newY; void print() System.out.println(name+:x=+x+ y=+y); p.print(); p.move(50,50); System.out.println(*after moving*); p.print(); /call method of an obj
30、ect4定义一个类实现银行帐户的概念,包括的变量有“帐号”和“存款余额”,包括的方法有“存款”、“取款”和“查询余额”。定义主类,创建帐户类的对象,并完成相应操作。提示:关键代码如下:public int getleftmoney()return leftmoney;public void savemoney(double money)leftmoney+=money;public void getmoney(double money)if(money=leftmoney)leftmoney-=money;elseSystem.out.println(只能取:+leftmoney);banka
31、ccount ba=new bankaccount(123456,1000);ba.savemoney(2000);System.out.println(存入2000元后余额为:+ba.getleftmoney();ba.getmoney(1500);System.out.println(1500元后余额为:+ba.getleftmoney();实验九 继承与多态一、实验目的1掌握类的继承方法。2掌握变量的继承和覆盖。3掌握方法的继承、重载和覆盖。4了解接口的实现方法。二、实验内容1运行下面的程序,理解成员变量的继承与隐藏。import java.io.*;class sum_3 int su
32、m,num1,num2; static int num3; /定义构造函数初始化对象 sum_3() num1=0; num2=0; num3=0; sum=0; class sub_sum3 extends sum_3 int sum,num1,num2; /隐藏父类sum_3中的实例变量 static int num3; /隐藏父类sum_3中的类变量 void sum(int i,int j,int k) num1=i; num2=j; num3=k; sum=num1+num2+num3; public class computing public static void main (
33、String arg) sub_sum3 m1=new sub_sum3(); m1.sum(100,200,300); System.out.println(sum=+m1.num1+m1.num2+m1.num3+=+m1.sum); 2运行下面的程序,理解方法的继承。class Sort3 double max1,max2,max3; Sort3() max1=-1; max2=-1; max3=-1; void sort() double s; if (max1max2)s=max1;max1=max2;max2=s; if (max1max3)s=max1;max1=max3;max
34、3=s; if (max2max3)s=max2;max2=max3;max3=s; class sub_Sort3 extends Sort3 void subsort(double i,double j,double k) max1=i; max2=j; max3=k; sort(); /调用父类中的方法sort() public class Class1 public static void main (String args) sub_Sort3 m1 = new sub_Sort3(); m1.subsort(100,200,300); System.out.println(三个数从
35、大到小为:+m1.max1+,+m1.max2+,+m1.max3); 3运行下面的程序,理解方法的重载。class Sort2or3 double max1,max2,max3; Sort2or3() max1=-1; max2=-1; max3=-1; void sort(double i,double j) double s; max1=i; max2=j; if(max1max2)s=max1;max1=max2;max2=s; void sort(double i,double j,double k) double s; max1=i; max2=j; max3=k; if (max
36、1max2)s=max1;max1=max2;max2=s; if (max1max3)s=max1;max1=max3;max3=s; if (max2max3)s=max2;max2=max3;max3=s; public class Class1 public static void main (String args) Sort2or3 m1 = new Sort2or3(); m1.sort(100,200); System.out.println(两个数从大到小为:+m1.max1+,+m1.max2); m1.sort(50,150,100); System.out.printl
37、n(三个数从大到小为:+m1.max1+,+m1.max2+,+m1.max3); 4运行下面的程序,理解方法的覆盖。class sort_Demo int i,j,k,swap; sort_Demo() i=j=k=swap=0; void sort(int t1,int t2) /父类中的方法用来实现升序 /用选择法按升序排列 for(i=0;it1-1;i+) k=i; for(j=i+1;jt1;j+) if(t2jt2k) k=j; if (k!=i) swap=t2i; t2i=t2k; t2k=swap; class sub_sort_Demo extends sort_Demo
38、 void sort(int t1,int t2) /子类中的方法实现降序 /用选择法实现降序排列 for(i=0;it1-1;i+) k=i; for(j=i+1;jt2k) k=j; if (k!=i) swap=t2i; t2i=t2k; t2k=swap; public class Class1 public static void main (String args) int a=34,12,8,67,88,23,98,101,119,56; sort_Demo m1=new sort_Demo(); sub_sort_Demo m2=new sub_sort_Demo(); System.out.println(排序前的数据为:); for (int i=0;i10;i+) System.out.print( +ai); /调用父类中的sotr()方法 m1.sort(a.length ,a); System.out.println(n按升序排列的数据为:); for (int i=0;i10;i+) System.out.print( +ai); /调用子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度宠物活体交易风险评估与管理合同3篇
- 2025至2031年中国耐潮纸面石膏板行业投资前景及策略咨询研究报告
- 二零二五年度厨具设备租赁合同终止后资产处置合同3篇
- 二零二五年度绿色农业项目耕地指标出让合作合同2篇
- 2025至2031年中国氧气变送器行业投资前景及策略咨询研究报告
- 2025至2031年中国对接机行业投资前景及策略咨询研究报告
- 动员机制与社区治理创新-深度研究
- 2025至2030年中国铝合金4孔馈线窗数据监测研究报告
- 2025至2030年中国蒸发磁控溅射镀膜机数据监测研究报告
- 2025至2030年中国网粘石数据监测研究报告
- 七年级下册-备战2024年中考历史总复习核心考点与重难点练习(统部编版)
- 2024年佛山市劳动合同条例
- 污水管网规划建设方案
- 城镇智慧排水系统技术标准
- 采购管理制度及流程采购管理制度及流程
- 新修订药品GMP中药饮片附录解读课件
- 五年级美术下册第9课《写意蔬果》-优秀课件4人教版
- 节能降耗课件
- 尼尔森数据市场分析报告
- 氧气雾化吸入法
- 领导干部个人有关事项报告表(模板)
评论
0/150
提交评论