JAVA实验 +答案
java实验报告实验1答案

实验一熟悉NetBeans IDE 平台,开发环境及Java编程实验目的:1、我们使用的开发平台是NetBeans IDE,希望通过本次实验同学们能对NetBeans IDE 的开发环境有一个清楚的了解并能熟练运用,对Java语法进行初步运用,对面向对象的编程有一个直观的认识和深入理解,对于Java的基础知识进行理解运用和巩固。
为以后的实验中能够进行开发程序打下基础。
2、通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
实验内容:● 1. 编写一个体现面向对象思想的程序。
● 2. 编写一个创建对象和使用对象的方法的程序。
● 3. 编写一个显示当前日期和时间的程序。
● 4. 编写不同成员变量修饰方法的程序。
● 5. 编写不同成员方法修饰方法的程序。
● 6. 编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
●7. 编写体现类的多态性(成员方法重载、构造方法重载)的程序。
实验步骤:●双击桌面上的NetBeans IDE 6.5.1快捷方式或在文件菜单中打开它。
图1-1点击文件,创建新项目,创建一个项目名:experiment1。
点击按钮下一步:在项目名称处输入:experiment1 然后点击完成:项目experiment1在experiment1 下实现程序样例1:编写应用程序输出如下三角形。
****************【参考程序】public class Star{public static voidmain(String a[]){System.out.println(" *");System.out.println(" ***");System.out.println(" *****");System.out.println("*******");}}程序运行结果如图1-2所示。
浙大JAVA实验题答案

实验8 Method的使用1.程序填空题,不要改变与输入输出有关的语句;50001输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和保留 4 位小数;s = 1 + 1/2 +....+ 1/n要求定义并调用函数factn计算n的阶乘;例:括号内是说明输入:2 repeat=22 n=210 n=10输出:public class Test50001 {public static void mainString args {int ri,repeat;int i,n;double s;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/-----------/s=0;for i=1;i<=n;i++s+=fact i;}}/---------------/static double fact int n {int i;double f=1;for i=1;i<=n;i++f=i;return f;}}50002输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aa…an个a之和;要求定义并调用函数fna,n,它的功能是返回aa…an个a;例如,fn3,2的返回值是33;例:括号内是说明输入2 repeat=22 3 a=2, n=38 5 a=8, n=5输出246 2+22+22298760 8+88+888+8888+88888imponner;public class Test50002{public static void mainString args{int ri, repeat;int i, n,a;long sn;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{a=;n=;/------------/sn=0;for i=1;i<=n;i++sn+=fn a,i;}}/------------/s tatic int fn int a,int n{int s=0;forint i=1;i<=n;i++s=s10+a;return s;}}50003输入一个正整数repeat 0<repeat<10,做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数;要求定义并调用函数countdigitnumber,digit,它的功能是统计整数number中数字digit的个数;例如,countdigit10090,0的返回值是3;例:括号内是说明输入:3 repeat=3-219022345543输出:count=2 -21902中有2个2count=1 有1个2count=0 345543中没有2public class Test50003{public static void mainString args{int ri, repeat;int count;long n;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{n=;/---------/n=n;count=countdigit n,2;}}/------------/static int countdigit long number,int digit{....要求定义并调用函数fibn,它的功能是返回第n项Fibonacci数;例如,fib7的返回值是13;例:括号内是说明输入:3 repeat=31 10 m=1, n=1020 100 m=20, n=1001000 6000 m=1000, n=6000输出:1 123 5 8 1到10之间的Fibonacci数21 34 55 89 20到100之间的Fibonacci数1597 2584 4181 1000到6000之间的Fibonacci数public class Test50006{public static void mainString args{int ri,repeat;int i, m, n;long f;Scanner in=new Scanner;repeat=;forri=1; ri<=repeat; ri++{m=;n=;/---------/i=1;f=1;while f<=n{if f>=m " ";i++;f=fib i;}}}/------------/sta ti c long fib int n{ //返回第n项Fibonacci数int i;long a=1,b=1,f=1;for i=3;i<=n;i++{ //从第3项开始计算f=a+b;a=b;b=f;}return f;}}50007输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=10000,输出m 到n之间的所有完数完数就是因子和与它本身相等的数;要求定义并调用函数factorsumnumber,它的功能是返回number的因子和;例如,factorsum12的返回值是161+2+3+4+6;例:括号内是说明输入:2 repeat=220 500 m=100, n=4001 100 m=1, n=100输出:28 4961 6 28public class Test50007{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if i==factorsum i" ";}}/---------/static int factorsum int number{ //返回number的因子和int sum=0;if number==1sum=1;forint i=1;i<=number-1;i++if number%i==0sum+=i;return sum;}}50008输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入2 个正整数m和n1<=m,n<=1000,输出m 到n之间的所有满足各位数字的立方和等于它本身的数;要求定义并调用函数isnumber判断number的各位数字之立方和是否等于它本身;例:括号内是说明输入:2 repeat=2100 400 m=100, n=4001 100 m=1, n=100输出:153 370 371 111+555+333=153; 333+777=370; 333+777+111=3711public class Test50008{public static void mainString args{int ri,repeat;int i, m, n;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{m=;n=;/---------/for i=m;i<=n;i++if is i" ";}}/---------///判断number的各位数字之立方和是否等于它本身static boolean is int number{int sum=0,n,digit;n=number;while n>0{digit=n%10;n=n/10;sum+=digitdigitdigit;}if number==sum return true;else return false;}}50009输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入一个整数,将它逆序输出;要求定义并调用函数reversenumber,它的功能是返回number的逆序数;例如reverse12345的返回值是54321;例:括号内是说明输入4 repeat=4123456 -100 -2 99输出654321-1-299public class Test50009{public static void mainString args{int ri,repeat;long n, res;Scanner in=new Scanner;repeat=;forri=1;ri<=repeat;ri++{n=;/---------/res=reverse n;}}/---------/static long reverse long number{//返回number的逆序数int flag=1;long a=0,digit;if number<0{flag=-1;number=-number;}while number>0{digit=number%10; //分离出个位数字a=a10+digit; //形成当前的逆序数number=number/10;}return flaga;}}50011输入一个正整数repeat 0<repeat<10,做repeat次下列运算:输入三个整数a、b和c,输出其中较大的数;要求定义和调用函数maxa, b, c找出a、b中较大的数,函数形参a、b和c的类型是int;输入输出示例:括号内是说明输入3 repeat=3输入:5 8 9 a=5, b=8-1 -10 -5 a=-1, b=-101 1 1 a=1, b=1输出:max5,8,9=9max-1,-10,-5=-1max1,1,1=1public class Test50011 {public static void mainString args {int ri, repeat;int a,b,c,maximun;Scanner in = new Scanner;repeat = ;for ri = 1; ri <= repeat; ri++ {a = ;b = ;c=;/-----------------/maximun=maximuna,b,c;Sy}}/-------------------/static int maximunint a,int b,int c{int max=a;ifmax<bmax=b;ifmax<cmax=c;return max;}}。
Java程序设计实验指导书(答案)

第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
java实验答案

实验一水仙花数:class shuixianhua{//水仙花数public static void main(String arg[]) {int i,a,a1,b,b1,c;for(i=100;i<1000;i++){a=i%10;a1=i/10;b=a1%10;b1=a1/10;c=b1%10;if(i==(a*a*a+b*b*b+c*c*c))System.out.println(i);}}}输出如下:153370371407打印出100以内素数:public class sushu {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint i,j,k=0;for(i=2;i<100;i++){if(i==2)System.out.println(i);i++;for(j=2;j<i;j++){if(i%j!=0)k=1;}if(k==1)System.out.println(i);}}求1!+2!+ (20)public class jiecheng {public static void main(String[] args) {int i,sum=0,k;for(i=1;i<=20;i++){k=ji(i);sum=k+sum;}System.out.print(sum);}static int ji(int n){if(n==1)return 1;elsereturn ji(n-1)*n;}}习题2.6public class Test{public static void main(String[] args)//第19题,打出图形.菱形{int n=3;for(int i=1;i<=n;i++){for(int k=n-1;k>=i;k--){System.out.print(" ");}for(int j=1;j<=2*i-1;j++)//打印*{System.out.print("*");}System.out.println();}}}编写程序,命令行窗口输出希腊字母表。
java实验一附答案

Java实验一实验内容(1)写一个应用程序:在屏幕上显示hellojava(2) 写一个Applet小程序,输出hellojava(3) 利用循环计算2+4+6+8+……+100的总和并显示输出结果(4) 编程计算从10到20的平方值并将结果保存在一个数组中实验目的1熟练掌握Java中的数据类型、运算符、表达式及流程控制语句;2掌握数组的定义、建立及其使用方法;3熟悉Java一般程序的结构。
介于机房没有相关java编程软件,我们用txt文件来写java程序。
写完后,修改文件名的后缀,改为.java.编译:点“开始”-“运行”-输入“cmd”-打开你保存.java文件的目录-输入“javac文件名.java”,就会生成.class文件运行:在打开的DOS 环境里,打开你保存.java文件的目录,输入“java 文件名”即可答案:1 JA V A 语言基础(1)写一个应用程序:在屏幕上显示hellojavapublic class HelloWorld{public static void main(String[] args){System.out.println("Hello World!");}}(2)写一个Applet小程序,输出hellojavaimport javax.swing.JApplet;//引入类JAppletimport javax.swing.JLabel;//引入标签类JLabelpublic class HelloWorldApplet extends JApplet{public void init(){System.out.println("init Applet");}public void start(){System.out.println("start Applet");getContentPane().add(new JLabel("HelloWorldApplet"));}public void stop(){System.out.println("stop Applet");}public void destroy(){System.out.println("destory Applet");}}(3)利用循环计算2+4+6+8+……+100的总和并显示输出结果public class s{public static void main(String args[]){int i=2,sum=0;while(i<=100){sum+=i;i+=2;}System.out.println("求和结果是:"+sum);}}(4)编程计算从10到20的平方值并将结果保存在一个数组中public class Square{public static void printSquare(){long a[] =new long[11];int i;for(i=10;i<=20;i++)a[i-10]=i*i;for(i=0;i<=10;i++)System.out.println(10+i+"的平方值"+a[i]);}public static void main(String args[]){printSquare();}}。
java实验答案全.doc

public void Display(){
if(this.average>=80) status = 1;
else statu$=O;
if(status==l) System.out.println(name+":通过!");if(status==O) System.out.println(name+••:不通过!’•);
}
public float get_y(){ return this.y;
}
//显示点的位罝
public String getLocation(){
String str = "("+(this.x)+","+(this.y)+")"+"\n"; return str;
}
//修改点的坐标
public void changeLocation(float a,float b){
st2.Display();
}
}
实验
2.按照要求编写Java Application程序。
假定要为某个公司编写雇员工资支付程序。这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
经理(Manager):每月获得一份固定的工资;
销售人员(Salesman):在基本工资的基础上每月还有销售提成;
class Student {
public String name; public double a,b,c; public double average; int status;
}
class Undergraduate extends Student {
java实验期末考试题及答案

java实验期末考试题及答案一、选择题(每题2分,共20分)1. Java中,下面哪个关键字用于声明一个类?A. classB. interfaceC. structD. enum答案:A2. 下列哪个选项不是Java的基本数据类型?A. intB. floatC. doubleD. String答案:D3. 在Java中,哪个关键字用于捕获异常?A. tryB. catchC. throwD. finally答案:B4. Java中,哪个关键字用于定义一个方法?A. functionB. methodC. defD. void5. 在Java中,下列哪个关键字用于实现多态?A. extendsB. implementsC. interfaceD. abstract答案:A6. Java中,哪个关键字用于声明一个接口?A. classB. interfaceC. abstractD. final答案:B7. Java中,哪个关键字用于声明一个常量?A. finalB. constC. staticD. volatile答案:A8. 在Java中,哪个关键字用于声明一个同步方法?A. synchronizedB. volatileC. transientD. strictfp答案:A9. Java中,哪个关键字用于声明一个内部类?B. nestedC. staticD. private答案:A10. 在Java中,哪个关键字用于声明一个泛型?A. genericB. templateC. typeD. generic答案:D二、填空题(每题2分,共20分)1. Java程序的执行是由____开始的。
答案:main方法2. Java中,____关键字用于声明一个类的成员变量为常量。
答案:final3. Java中,____关键字用于声明一个类的方法不生成字节码。
答案:native4. 在Java中,____关键字用于声明一个类只能被同一个包中的其他类访问。
java上机实验答案与解析

JAVA上机实验题答案与解析实验一 Java程序编程1.编写一个Java应用程序,输出内容为Hello;注:文件位置位于e:\2:\Hello.java 编译:1e:2cd 2 3javac Hello.java4java Hello2.编写一个Java小应用程序,输出内容为我一边听音乐,一边学Java;第一步编写import java.awt.;import java.applet.;public class MyApplet extends Applet{public void paintGraphics g{g.drawString"我一边听音乐,我一边做java",25,25;}}第二步在DOS环境中编译....javac MyApplet.java第三步使用记事本编写<applet code=MyApplet.class height=200 width=120></applet>第四步将记事本文件名命名为MyApplet.html第五步打开MyApplet.html实验二类的定义1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为15,20,10,30;定义方法getX,getY分别获得点的横坐标和纵坐标;定义方法setX,setY分别获得点的横坐标和纵坐标;并且把p1和p2输出;public class Point {double x,y;Pointdouble x,double y{this.x=x;this.y=y;}double getX{return x;}double getY{return y;}void setXdouble x{this.x=x;}void setYdouble y{this.y=y;}public static void mainString args {Point p1=new Point15,20;//初始化Point p2=new Point10,30;}运行结果:横坐标为15.0 纵坐标为20.0横坐标为10.0 纵坐标为 30.02.编写Java应用程序,自定义Circle类,类中有两个double 变量r,s,一个类变量pi,利用构造方法实现对半径是3和5.5的初始化,自定义getArea方法实现圆面积求解;public class Circle {double s,r;public Circledouble r{this.r=r;}double get Area{this.s=pirr;return s;}public static void mainString args {Circle c1=new Circle3;Circle c2=new Circle5.5;Area ;Area;}}实验三类的继承和多态性1.1编写一个接口ShapePara,要求:接口中的方法: int getArea:获得图形的面积;int getCircumference:获得图形的周长2编写一个圆类Circle,要求:圆类Circle实现接口ShapePara;该类包含有成员变量:radius:public 修饰的double类型radius,表示圆的半径;x:private修饰的double型变量x,表示圆心的横坐标;y:protected修饰的double型变量y,表示圆心的纵坐标;包含的方法有:Circledouble radius 有参构造方法;以形参表中的参数初始化半径,圆心为坐标原点; double getRadius:获取半径为方法的返回值;void setCenterdouble x, double y:利用形参表中的参数设置类Circle的圆心坐标;void setRadiusdouble radius:利用形参表中的参数设置类Circle的radius域;在主方法中产生半径为5的圆;interface ShapePara {double getAreadouble r;double getCircumferencedouble r;}//注: Circle是在接口中建立的calss,即先建立接口,在建立接口的类class Circle implements ShapePara{private double x;protected double y;public double r;Circledouble r{this.r=r;}void setRadiusdouble r{this.r=r;}double getRadius{return r;double getArea{return 3.14rr;}double getCircumference{return 3.142r;}void setCenterdouble x,double y{this.x=x;this.y=y;}double getCenterx{return x;}double getCentery{return y;}}public class A {public static void mainString args { Circle ci=new Circle5;ci.setRadius5;ci.setCenter0, 0;}答案:78.50.00.02.定义图形类Shape,该类中有获得面积的方法getArea;定义长方形类Rect,该类是Shape 的子类,类中有矩形长和宽的变量double a,double b,设置长和宽的方法setWidth、setHeight,使用getArea求矩形面积;利用getArea方法实现题1中圆面积的求解; class Shape {double getAreadouble r{return 0;}}public class Rect extends Shape {double a,b,area;Rectdouble width,double heigh{a=width;b=height;;}void setWidthdouble width {a=width;}void setHeightdouble height {b=height;}double getWidth{return a;}double getHeight{return b;}double getArea{area=ab;return area;}}public class A {public static void mainString args {Rect rect=new Rect;double w=12.76,h=25.28;rect.setWidthw;rect.setHeighth;}}答案:圆的的面积:78.5矩形对象的宽:12.76 高:25.283. 编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs,获得腿数量的方法getLegs,设置动物名称的方法 setKind,获得动物名称的方法 getKind,获得动物数量的方法 getCount;定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount;定义Tiger类,是Animal类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;定义SouthEastTiger类,是Tiger类的子类,统计老虎的数量 count,获得老虎数量的方法 getCount;public class Animal {String name;int legs;static int count;Animal{count++;}void setLegsint legs{this.legs=legs;}int getLegs{return legs;}void setKindString name{=name;}String getKind{return name;}int getCount{return count;}}public class Fish extends Animal{static int countFish;Fish{countFish++;}int getCount{return countFish;}}public class Tiger extends Animal{static int countTiger;Tiger{countTiger++;}int getCount{return countTiger;}}public class SouthEastTiger extends Tiger{} public class A {public static void mainString args{Fish f=new Fish;Tiger t=new Tiger;SouthEastTiger st=new SouthEastTiger;}实验四异常处理1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理;forinti=0;i<4;i++{intk;switchi{case0:intzero=0;k=911/zero;break;case1:intb=null;k=b0;break;case2:int c=new int2;k=c9;break;case3:charch="abc".charAt99;break;}}package Exception;public class TestException {public static void mainString args{forint i=0;i<4;i++{try{int k;switchi{case 0: int zero=0;k=911/zero;break;case 1: int b=null;k=b0;break;case 2: int c=new int2;k=c9;break;case 3: char ch="abc".charAt99;break;}}catchArithmeticException e{}}catchArrayIndexOutOfBoundsException e{}}}}}运行结果:/ by zeronull9String index out of range: 992.建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawaldouble dAmount,当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank100,表示存入银行100元,当用方法withdrawal150,withdrawal-15时会抛出自定义异常;提示: InsufficientFundsException,NagativeFundsException为自定义的类,分别产生余额不足异常和取款为负数异常,需继承Exception类;通过输出结果了解java异常的产生,并将该Java程序放在exception包中; package Exception;//注解先建立一个package,然后在包中建立各种类public class InsufficientFundsException extends Exception{ String s1;InsufficientFundsExceptionString t{s1=t;}public String getMassage1{return s1;}}package Exception;public class NagativeFundsException extends Exception{ String s;NagativeFundsExceptionString t{s=t;}public String getMassage{return s;}}package Exception;public class Bank extends Exception{static double ba=0;Bankdouble r{ba=ba+r;}void withDrawaldouble dAmount throws InsufficientFundsException,NagativeFundsException{ifdAmount>ba throw new InsufficientFundsException"取款余额不足";else ifdAmount<0 throw new NagativeFundsException"取款为负数";else}}package Exception;import java.util.;public class A{public static void mainString args {Bank b=new Bank100;Scanner sc=new ScannerSystem.in;try {b.withDrawalsc.nextInt;}catchInsufficientFundsException e{}catchNagativeFundsException e{}}}运行结果:请输入一个数80银行里还剩余:20.0实验五输入输出1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显示在屏幕上;import java.io.;public class TextRw {public static void mainString args throws IOException {File f=new File"f:\\TextRw.txt";FileWriter fw=new FileWriterf;fw.write"学号姓名";fw.close;FileReader fr=new FileReaderf;int i;whilei=fr.read=-1fr.close;}}2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取IoDemo.java源程序文件,再通过键盘输入文件的名称为iodemo.txt,把IoDemo.java的源程序存入3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc;import java.io.;public class BinIoDemo{public static void mainString args throws IOException{File f1=new File"e:\\1.doc";FileInputStream in=new FileInputStreamf1;File f2 = new File"e:\\“学号”+“姓名”.doc";FileOutputStream out=new FileOutputStreamf2;byte buf = new byte2048;int num = in.readbuf;while num = -1 {out.writebuf, 0, num;out.flush;num = in.readbuf;}in.close;out.close;}}实验六多线程编程1.随便选择两个城市作为预选旅游目标;实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间1000ms以内,哪个先显示完毕,就决定去哪个城市;分别用Runnable接口和Thread类实现;通过Threadpublic class Hw1Thread extends Thread{String a;private int sleepTime;public Hw1ThreadString a{supera;this.a=a;sleepTime=intMath.random6000;}public void run{int count1=0,count2=0;ifThread.currentThread.getName.equalsIgnoreCase"ShangHai"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}ifThread.currentThread.getName.equalsIgnoreCase"BeiJIng"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常也可以在方法头抛出throw异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";td1.start;td2.start;}}通过Runnable接口:public class Hw1Thread implements Runnable{String a;private int sleepTime;int count1=0,count2=0;public Hw1ThreadString a{this.a=a;sleepTime=intMath.random1000;}public void run{ //重写run方法ifThread.currentThread.getName.equalsIgnoreCase"td1"{ forint i=0;i<10;i++{try{Thread.sleepsleepTime;count1++;}catchInterruptedException exception{}; //使用sleep方法需要抛出中断异常ifcount1>count2 && count1==10{}else ifcount2>count1 && count2==10{}}}ifThread.currentThread.getName.equalsIgnoreCase"td2"{forint i=0;i<10;i++{try{Thread.sleepsleepTime;count2++;ifcount1>count2 && count1==10{ //判断哪个城市的输出次数先达到10,达到则终止输出}else ifcount2>count1 && count2==10{}catchInterruptedException exception{};//使用sleep方法需要抛出中断异常}}}}public class Hw1ThreadText {public static void mainString args throws InterruptedException { Hw1Thread td1=new Hw1Thread"ShangHai";Hw1Thread td2=new Hw1Thread"BeiJing";new Threadtd1,"td1".start;new Threadtd2,"td2".start;}}2.用继承Thread类方法实现多线程程序;有两个学生小明和小红,小明准备睡10分钟以后开始听课,小红准备睡1小时以后开始听课,雷老师大喊三声“上课了”,小明醒后把小红吵醒,他们开始听课;学生:小明、小红睡觉:明:10min 红:60min老师:喊三声明醒->红醒;上课;class Stu extends Thread{Thread student1,student2,teacher;Stu {teacher=new Threadthis;student1=new Threadthis;student2=new Threadthis;teacher.setName"雷老师";student1.setName"小明";student2.setName"小红";}public void run {ifThread.currentThread==student1 {Thread.sleep10006010;}catchInterruptedException e {}}ifThread.currentThread==student2 {Thread.sleep10006060;}catchInterruptedException e {}}else ifThread.currentThread==teacher { forint i=1;i<=3;i++ {try { Thread.sleep500;}catchInterruptedException e{} }student1.interrupt; //吵醒student student2.interrupt;}}}public class A{public static void mainString args {Stu s=new Stu;}}实验七图像用户界面1.编程实现如下界面:当在第一个文本框中输入直接回车,会在第二个文本框中得第一个文本框输入值的平方,单击求和,会在第二个文本框中得到两个文本框中的和;import java.awt.;public class Test implements ActionListener{TextField tf,tf1;Button b;Frame f;Test{f=new Frame;f.setSize150, 150;f.setLocation300, 300;Panel p=new Panel;Panel p1=new Panel;Panel p2=new Panel;tf=new TextField10;tf1=new TextField10;b=new Button"求和";p.addtf;p1.addtf1;p2.addb;f.addp,BorderLayout.NORTH;f.addp1,BorderLayout.CENTER;f.addp2,BorderLayout.SOUTH;f.setVisibletrue;f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};tf.addActionListenerthis;b.addActionListenerthis;}public static void mainString args {new Test;}public void actionPerformedActionEvent e{ int i;ife.getSource==tf{i=Integer.parseInttf.getText;tf1.setTextString.valueOfii;}else ife.getSource==b{i=Integer.parseInttf.getText+Integer.parseInttf1.getText;tf1.setTextString.valueOfi;}}}2.按照如下图所示的窗体布局,其中包含Label,TextField,Button控件,Label控件的名称为l1,l2,l3,l4,l5;TextField的大小为10,Button控件的名称如图所示;所完成的功能是:单击关闭按钮能够关闭窗体;单击“计算”按钮,将得出1号商品和2号商品的费用并显示在合计文本框中;输入1号商品的价格,如果2号商品的价格和1号商品价格相同,在1号商品显示价格控件中回车,2号商品的价格显示和1号商品相同;输入1号商品的数量,如果2号商品的数量和1号商品数量相同,在1号商品显示数量控件中回车,2号商品的数量和1号商品数量相同;import java.awt.;public class Price {public Price{Frame f=new Frame"商品计费";Label l1=new Label"1号商品价格";Label l2=new Label"数量";Label l3=new Label"2号商品价格";Label l4=new Label"数量";Label l5=new Label"合计";//创建标签Button b=new Button"计算";//创建按钮final TextField tf1=new TextField10;final TextField tf2=new TextField10;final TextField tf3=new TextField10;final TextField tf4=new TextField10;//文本框final TextField tf5=new TextField10;Panel p1=new Panel;Panel p2=new Panel;Panel p3=new Panel;p1.addl1;p1.addtf1;p1.addl2;p1.addtf2;p2.addl3;p2.addtf3;p2.addl4;p2.addtf4;p3.addb;p3.addl5;p3.addtf5;//使用这种布局添加方法可以使用Layout默认布局进行布局f.addp1,BorderLayout.NORTH;f.addp2,BorderLayout.CENTER;f.addp3,BorderLayout.SOUTH;f.setSize400, 150;f.setLocation200, 200;f.setVisibletrue; //以上备注同实验1以下蓝色字体按照题1中的思路编程tf1.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf3.setTexttf1.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框1"1号商品价格"添加键盘监控器,接收到回车符完成相应功能tf2.addKeyListenernew KeyListener{public void keyPressedKeyEvent e{ife.getKeyCode == KeyEvent.VK_ENTER{tf4.setTexttf2.getText;}}public void keyReleasedKeyEvent e {}public void keyTypedKeyEvent e {}}; //对文本框2"数量"添加键盘监控器,接收到回车符完成相应功能f.addWindowListenernew WindowAdapter{public void windowClosingWindowEvent e{System.exit0;}};//窗体的关闭监控器b.addActionListenernew ActionListener {public void actionPerformedActionEvent e{int p1,p2,num1,num2;p1=Integer.parseInttf1.getText;p2=Integer.parseInttf3.getText;num1=Integer.parseInttf2.getText;num2=Integer.parseInttf4.getText;tf5.setTextInteger.toStringp1num1+p2num2;}};//按钮监控器}public static void mainString args {new Price;}}实验八 JDBC编程1. 用access建立数据库ssm,库中有student表,表中字段有:学号number,姓名name,性别gender,年龄 age,成绩score,科目course;1使用“insert into”向表中添加5个你熟悉的同学的学号、姓名、年龄、成绩和科目,并将添加以后的学生信息显示在控制台端;2使用“select ”条件查询得到成绩是80分以上的同学信息;3使用“update ”将表中学号等于自己学号的成绩修改为85分,并将修改以后的表中所有学生信息显示在控制台端;4 使用“delete ”将表中成绩高于80分以上的学生信息删除,并将删除以后的表中所有学生信息显示在控制台端;//以下代码中已经屏蔽的内容只可执行一次,多次执行会产生重复错误import java.sql.;public class DataTest {public static void mainString args throws SQLException {try {} catch ClassNotFoundException e {e.printStackTrace;}Connectioncon=DriverManager.getConnection"jdbc:odbc:ssm","test","1234";Statement state=con.createStatement;////ResultSet rs1=state.executeQuery"SELECT FROM student";//查找student表中的所有信息//ResultSet rs2=state.executeQuery"select FROM student WHERE score>80";//选择成绩大于80的学僧//ResultSet rs3=state.executeQuery"select FROM student";state.executeUpdate"DELETE FROM student WHERE score>80";//删除分数大于80的学生信息ResultSet rs4=state.executeQuery"select FROM student";whilers1.next{}whilers2.next{}whilers3.next{}/whilers4.next{}con.close;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
double radius; // 半径
public Circle(double r){
radius = r;
}
public double area(){ // 实现 Shape 接口中的方法(这是必须的)
return PI*radius*radius;
}
public double perimeter(){ // 定义求圆周长的方法
ArithmeticException 异常。
5.运行下面程序时,会产生什么异常?( C )
public class X7_1_5 {
public static void main(String[] args) {
int[] z = {1,2,3,4};
int p = z[4];
int x = 0;
public void disp(int n) {
int sum=0; for(int i=1;i<=n;i++) {
sum=sum+i; } System.out.println(sum); } } class Pro implements OneToN { public void disp(int n) { long pro=1; for(int i=1;i<=n;i++) {
ArrayIndexOutOfBoundsException 异常。
6.下列程序执行的结果是( B )。
public class X7_1_6 { public static void main(String[] args) { try{ return; } finally{ System.out.println("Finally"); } }
}
A.程序正常运行,但不输出任何结果 B.程序正常运行,并输出 Finally
C.编译通过,但运行时出现异常
D.因为没有 catch 子句,因此不能通过编译
【解析】在执行 try-catch-finally 语句块时,最后必须执行 finally 语句块中的内容,而本程序
没有异常发生,因此程序正常运行,并输出 Finally。
实验 8
一、选择题
1.关于异常的含义,下列描述中最正确的一个是( D )。
A.程序编译错误
B.程序语法错误
C.程序自定义的异常事件
D.程序编译或运行时发生的异常事件
【解析】异常就是程序编译或运行时发生的异常事件。
2.自定义异常时,可以通过对下列哪一项进行继承?( C )
A.Error 类
B.Applet 类
属性:圆半径 radius。
方法:构造方法;实现接口中求面积方法 area();求周长方法 perimeter()。
(3)“Cylinder.java”文件,在该文件中定义圆柱体类 Cylinder,该类口在 cylinder 包中,
继承圆类。
属性:圆柱体高度 height。
方法:构造方法;求表面积方法 area();求体积方法 volume()。
【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:
第一步:首先创建 p1 包,在其中创建 Shape 接口
// Shape.java 文件
package p1; // 创建 p1 包
public interface Shape{
// 定义 Shape 接口
…
}
第二步:创建 Circle 类和 Cylinder 类,它们都定义在 p2 包中。
super(r); height = h; } public double area(){ return 2*PI*radius*radius+2*PI*radius*height; } public double volume(){ return PI*radius*radius*height; } }
// Circle.java 文件
package p2; // 创建 p2 包
import p1.*;
public class Circle implements Shape{ // 定义实现 Shape 接口的 Circle 类
…
}
// Cylinder.java 文件
package p2;
public class Cylinder extends Circle{ // 创建继承 Circle 类的 Cylinder 类
2)定义一个接口 OneToN,在接口中包含一个抽象方法 disp()。定义 Sum 和 Pro 类,并分别 用不同代码实现 ONeToN 的 disp()方法,在 Sum 的方法中计算 1~n 的和,在 Pro 的方法中计 算 1~n 的乘积 interface OneToN {
public void disp(int n); } class Sum implements OneToN {
}
3)改错,上传正确答案,并以注释形式给出错误原因
class SuperClass
{
public SuperClass(String msg)
{ System.out.println("SuperClass constructor: " +msg);}
}
class SubClass extends SuperClass
实验 7
1. 编一个程序,包含以下文件。
(1)Shape.java 文件,在该文件中定义接口 Shape,该接口在 shape 包中。
属性:PI。
方法:求面积的方法 area()。
(2)Circle.java 文件,在该文件中定义圆类 Circle,该类在 circle 包中,实现 Shape 接口。
【参考程序】
// X5_3_6.java 文件
package p3;
import p2.*;
public class X5_3_6 { // 定义主类
public static void main(String[] args) {
Circle cir1 = new Circle(120.5);
Circle cir2 = new Circle(183.8);
// 定义 Shape 接口
double PI=Math.PI;
double area(); // 求面积方法
}
// Circle.java 文件
package p2; // 创建 p2 包
import p1.*;
public class Circle implements Shape{ // 定义实现 Shape 接口的 Circle 类
{
public SubClass(String msg)
{
Super(msg);
//父类没有无参的构造方法,应采用 super 显示调用父类的构造
方法
System.out.println("SubClass constructor");
}
}
public class Test1 {
public static void main(String[] args) {
int x = 0;
int y = 5/x;
int[] z = {1,2,3,4};
int p = z[4];
}
}
A.ArithmeticException
B.NumberFormatException
C.ArrayIndexOutOfBoundsException
D.IOException
【 解 析 】 当 程 序 执 行 到 “ int y = 5/x ” 语 句 时 , 发 生 异 常 , 程 序 中 止 执 行 , 因 此 发 生
System.out.println("cy2.area: "+cy2.area());
System.out.println("cy2.volume: "+cy2.volume());
}
}
// Shape.java 文件
package p1; // 创建 p1 包
public interface Shape{
…
}
第三步:创建主类,在其中的 main()方法中创建对象,实现相应的功能。
// X5_3_6.java 文件
package p3;
import p2.*;
public class X5_3_6 { // 定义主类
public static void main(String[] args) {
…
}
}
System.out.println("cir1.area: "+cir1.area());
System.out.println("cir1.perimeter: "+cir1.perimeter());
System.out.println("cir2.area: "+cir2.area());
System.out.println("cir2.perimeter: "+cir2.perimeter());
C.Exception 类及其子类
D.AssertionError 类
【解析】自定义异常类时,该类必须继承 Exception 类及其子类。
3.对应 try 和 catch 子句的排列方式,下列哪一项是正确的?( A )
A.子类异常在前,父类异常在后
B.父类异常在前,子类异常在后
C.只能有子类异常
pro=pro*i; } System.out.println(pro); } }