java实验题及答案
JAVA编程实例大全及详解答案(50例)
JA V A编程实例大全及详解答案(50例)【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
浙大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实验课经典题型加代码答案.doc
Java实验课经典题型加程序代码1.求出2-1000内的所有个位为3或7的素数,并按每行5列的格式输出。
package first_work;public class First_work {public static void main(String[J args) {int i,m;intj=O;for(i=2;i<= 1000;i++){for(m=2;m<=Math.sqrt(i);m++){if(i%m==0)break;}if(m>Math.sqrt(i)&&(i%l 0==3||i%l 0==7)){System.out.print (i+"");j++;if(j!=0&&j%5==0){System.out.println();}};}}}2.教材71页15题,增加以下内容:同时要求川选择排序、冒泡排序、插入排序实现,分别用不同的函数实现。
package first_work;public class Sort {public static void choose(int[] x) {for (int i=0; i<x.length;i++) { intlowerlndex=i; for (intj=i+l;j<x.length;j++) {if (xrjl<xflowerlndex]) {lowerlndex=j;}}int temp=xfil;x[i]=x[lowerlndex]; x[lo werlndex]=temp;}}public static void insert(int[] x){ for (int i=l;i<x.length;i++)(for(intj=i;j>0;j-){ if(x[j]<xO-l]) {int temp=xfjl;xD]=xU-l];x[j-l]=temp;}}}}public static void main(String[] args) {int[] a= {20,10,55,40,30,70,60,80,90,100};int i,j,x,T=0;for( i=l ;i<10;i++) for(j=0;j<9;j++)if(aU]〉a|J+l]){T=aU];afjl=a[j+ll;a|j+l]=T;}for(x=0;x<l 0;x++){System.out.print(f f);System.out.print(a[x]);}System.out.print(,\n,);choose(a);for(x=0;x<10;x++){System.out.print(’ •);System.out.print(a[xJ);}System.out.print(’\n’); inserl(a);for(x=0;x<10;x++){System.out.print(");System.out.print(a[x]);}}}3.实现一个三行三列的矩阵和它的转置相加。
java实验二附答案
Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。
通过实例验证编程无误。
(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。
通过实例验证编程无误。
(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。
(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
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实验期末考试题及答案
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;}}。
JAVA实验7-9+答案
实验71. 编一个程序,包含以下文件。
(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape 包中。
属性:PI。
方法:求面积的方法area()。
(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。
属性:圆半径radius。
perimeter()。
(3)“Cylinder,该area();求体积方法volume()。
文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。
【编程分析】本题主要考察接口、包、继承、封装等问题。
编程步骤如下:第一步:首先创建p1包,在其中创建Shape接口// Shape.java文件package p1; // 创建p1包public interface Shape{ // 定义Shape接口…}第二步:创建Circle类和Cylinder类,它们都定义在p2包中。
// Circle.java文件package p2; // 创建p2包的文件public class Cylinder extends Circle{ // 创建继承Circle类的Cylinder类…}第三步:创建主类,在其中的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());Cylinder cy1 = new Cylinder(27.3,32.7);Cylinder cy2 = new Cylinder(133.5,155.8);System.out.println("cy1.area: "+cy1.area());System.out.println("cy1.volume: "+cy1.volume());System.out.println("cy2.area: "+cy2.area());System.out.println("cy2.volume: "+cy2.volume());}}// Shape.java文件package p1; // 创建p1包public interface Shape{ // 定义Shape}// 定义实现Shape接口的Circle类double radius; // 半径public Circle(double r){radius = r;}public double area(){ // 实现Shape接口中的方法(这是必须的)return PI*radius*radius;}public double perimeter(){ // 定义求圆周长的方法return 2*PI*radius;}}// Cylinder.java文件package p2;public class Cylinder extends Circle{ // 创Cylinder类return 2*PI*radius*radius+2*PI*radius*height; }public double volume(){return PI*radius*radius*height;}}2)定义一个接口OneToN,在接口中包含一个抽象方法disp()。
JAVA实验答案全
4.编写一个 Java Application 程序,输出区间[200,300]上的所有素数,要求写出程序的运 行结果。
public class primePrint{ public static void main(String args[])
{ int Leabharlann ,j; System.out.println("区间[200,300]上的所有素数:"); for(i=200;i<=300;i++){ for(j=2;j<=Math.sqrt(i);j++) if(i%j==0) break; if(j>Math.sqrt(i)) System.out.print(i+" "); } } }
} } 3.按下面的要求完成 Java Application 程序,写出程序的运行结果。 (1)定义一个 Java 类 Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的 横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前 位置等。 (2)定义一个测试类 JavaTest,创建 Point 类的对象并对其进行有关的操作。
} public class JavaTest {
public static void main(String args[]){ Point P; P=new Point(); P.set_Location(1.1f,1.2f); System.out.print(P.getLocation()); P.changeLocation(1.3f,1.4f); System.out.print(P.getLocation()); } }
Java实验报告中的实验题
Java实验报告中的所有实验题实验一略实验二Java 基本语法练习【完成实验项目】1.输入一个整数,输出该数的二进制表示形式的字符串2.编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。
3.打印小于1000的斐波纳契数4. 输入一个梯形的上底、下底和高,求其面积实验三面向对象基础编程【完成实验项目】1.写一个名为Rectangle的类表示矩形。
其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。
要求该类提供计算面积的方法getArea()方法,以及修改width和height的值及获得width和height当前值的方法。
要求:(1)使用构造函数完成各属性的初始赋值(2)使用getter和setter的形式完成属性的访问及修改2. . 请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face 和suit:face描述一张牌的牌面值(如:"Ace", "Deuce", "Three","Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts", "Diamonds", "Clubs", "Spades")。
定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。
Java 综合实验及练习(参考答案)
Java实验综合实验及练习第一部分:编程题1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。
(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 112.给出年、月、日,计算该日是该年的第几天?3、利用求素数的方法,就6~2000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。
4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60~100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。
评分规则:分数为60~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。
5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。
写一个程序测试这个类6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。
设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。
7、编写一个完整的Java Application 程序。
包含接口Shape,MyRectangle类,MyTriangle 类及Test类,具体要求如下:⑴、接口Shape:double area():求一个形状的面积double perimeter ():求一个形状的周长⑵、类 MyRectangle :实现Shape 接口,并有以下属性和方法:① 属性width : double 类型,表示矩形的长height : double 类型,表示矩形的高② 方法MyRectangle(double w, double h):构造函数ToString()方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0,area=2.0”⑶、类MyTriangle :实现Shape 接口,并有以下属性和方法:① 属性x,y,z: double 型,表示三角形的三条边s: 周长的1/2(注:求三角形面积公式为))()((z s y s x s s ---,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法)② 方法MyTriangle(double x, double y, double z):构造函数,给三条边和s 赋初值。
浙大JAVA 实验题答案11answer
实验11 数组作为方法的参数1.程序填空题,不要改变与输入输出有关的语句。
60030 编写排序函数(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n,再输入n个整数,将它们从小到大排序后输出。
要求将排序编写为一个sort()方法。
例:括号内是说明输入3 (repeat=3)4 5 1 7 63 1 2 35 5 4 3 2 1输出1 5 6 71 2 31 2 3 4 5import java.util.Scanner;public class Test60030{public static void main(String []args){int ri, repeat;int i, n, a[];Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri<=repeat; ri++){n=in.nextInt();a=new int[n];for(i=0; i<n; i++)a[i]=in.nextInt();sort(a);for(i=0; i<n; i++)System.out.print(a[i]+" ");System.out.println();}}/*---------*///说明:数组作参数时,传递的是地址,形参数组和实参数组共用同一块内存,//方法sort()中对形参数组b排序,实际上就是对实参数组a排序,//所以不需要返回值。
static void sort(int b[]){int i,j,k,temp;for(i=0;i<b.length-1;i++) { //选择法递增排序k=i;for(j=i+1;j<b.length;j++)if(b[k]>b[j]) k=j;if(i!=k){temp=b[i];b[i]=b[k]; b[k]=temp;}}}}60031 判断两个矩阵是否相同(方法)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:读入 1 个正整数n(1≤n≤6), 再读入2个 n 阶方阵 a和b , 判断2个方阵是否相同。
java实验及答案
}
public abstract void disp();
}
2、package P14;
public class Student extends GeneralPeople {
private String school;
public Student() {
super();
(5)设置性别的公有方法
(6)读取性别的公有方法public String getSex( )
如果为true,返回male,否则返回female
(7)设置学校的公有方法
(8)读取学校的公有方法
(9)实现方法disp(),将学生的姓名、性别、所在学校输出到屏幕
3、根据学生类Student派生出大学生类CollegeStudent,要求如下:
return "male";
else
return "female";
}
public void setAge(int a)
{
age=a;
}
public int getAge()
{
return age;
}
public void disp()
{
System.out.println("Name:"+getName()+" Sex:"+getSex()+" Age:"+getAge());
(2)构造方法People (String n, boolean s, int a)
(3)设置姓名的公有方法
(4)读取姓名的公有方法
(5)设置性别的公有方法
java实验报告实验2答案(共5篇)
java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
实验内容:创建一个java项目,命名为experiment2。
(如何创建项目参考《实验一》的项目创建方法。
)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add方法把组件加入到容器中。
1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。
Java实验及答案
System.out.printf("请用户输入工资:");
float salary;
float _out = 0;
salary=reader.nextFloat();
if(salary<=400&&salary>=0)
{
_out=(float)(salary*(0.5/100));
}
else if(salary>=401&&salary<=600)
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
int year=reader.nextInt(); if(year%4==0&&year%100!=0||year%400==0)
day=29; else
day=28;} switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31;break; case 4: case 6: case 9: case 11: day=30;break; default: } System.out.printf("该月份对应天数为:%d",day); } } 3.2 public class Sanjiujiu { public static void main(String args[]) { for(int i=1;i<=9;i++) {
java实验报告答案
java实验报告答案
Java实验报告答案
实验目的:通过编写Java程序,掌握面向对象的编程思想和Java语言的基本语法。
实验内容:编写一个简单的学生信息管理系统,包括学生类和主程序类。
实验步骤:
1. 创建一个学生类,包括学生的姓名、年龄、性别等属性,并实现相应的get 和set方法。
2. 在主程序类中,创建学生对象并调用学生类的方法,实现对学生信息的管理和操作。
3. 编写测试用例,验证程序的正确性和稳定性。
实验结果:通过实验,我掌握了Java语言的基本语法和面向对象的编程思想,能够编写简单的Java程序,并且能够对程序进行测试和验证。
实验总结:通过这次实验,我对Java语言有了更深入的了解,掌握了面向对象的编程思想,提高了编程能力和解决问题的能力。
结论:通过本次实验,我对Java语言有了更深入的了解,掌握了面向对象的编程思想,提高了编程能力和解决问题的能力。
这对我以后的学习和工作都有很大的帮助。
JAVA 实验三附答案
实验三 异常处理和基础类库 实验目的 1 学会利用 Try-catch-finally 语句来捕获和处理异常; 2 掌握自定义异常类的方法。 3 掌握 Java 基础类;熟悉 System 类; 4 掌握字符串的主要功能和使用方法 实验内容 1 编写一个应用程序将二进制数转换成十进制数,并捕获所有可能的异常 2 编写一个应用程序,接受命令行中给出的一个字母串,先将该串原样输出,然后判断该串 的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母输出; 否则输出信息串”第一个字母不是大写字母!”。 提示: (1)命令行参数:java 应用程序能够从命令行接受任何数量的参数,在应用程序被加载的时 候允许用户指定配置信息。该参数是一个字符串数组,用来接收从命令行输入的参数。参数 之间使用空格隔开。Java 解释器会自动处理,把用空格隔开的各个参数通过 args 数组传递 给 main 方法。参数的下标从 0 开始,args[0]表示第一个参数,例:java Test args[0] args[1] args[2]
(2)用到一个方法 charAt,方法定义为 public char charAt(int index), 返回指定索引处的 char 值.无需自己编写,直接调用。例如 String s = “oh come on”;
charAt(0ห้องสมุดไป่ตู้的结果就是'o'了,参数是一个下标,从 0 开始到字符串长度-1
答案:
程序参考如下 1 见书 P129 2 public class Class1 {
public static void main(String {
int count=0; if(args.length!=0)
JAVA 综合实验及练习(参考答案)
参考:这一题考虑使用组合布局,将上面控件放置在 JPanel 上,再将 JPanel 放到内容 面板的中间。下面四个按钮先放在某 JPanel 再放置在内容面板的 South 部分
9、以 JDBC 技术创建一个通讯录应用程序,要求通讯录中必须含有编号、姓名,性别、电
话、地址、Email 等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主 程序测试。 参考如下: 第一步:编写一个 Person 联系人类 public class Person { private int pid; //编号 // 姓名 // 性别 // 电话 //email private String name; private String sex; private String tel; private String email; /*构造函数以及 set-get 函数*/ } 第二步:编写一个 PersonDao 封装对联系人类的有关操作 public class PersonDao { // 添加 联系人 public void addPerson(Person p){ String sql=””; DBHelper. executeUpdate(sql); }
14、关于 length()这个方法的表述正确的是哪个? ( ) A.数组有 length()这个方法,string 也有 length()这个方法。 B.数组有 length()有这个方法,string 没有 length()这个方法。 C.数组没有 length()这个方法,string 有 length()这个方法。 D.数组没有 length()这个方法,string 也没有 length()这个方法。 15、选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另 一个是尚未排序的。 现若想将数据序列由小到大排序,则每次放到有序子列尾部 位置的元素,应从无序序列中选择( )。 A)最大的 B)最小的 C)任意的 D)头上的
实验12 java多线程(含答案)
实验12 java多线程(含答案)实验12java多线程(含答案)实验12:Java多线程I.实验目的(1)了解线程的概念。
(2)学习简单的多线程编程。
2、实验任务(1)阅读给定的javaapplication程序,按要求回答问题并写出运行结果。
(2)根据需要编写Java应用程序,编译并运行该程序。
3、实验内容1.输入下面的javaapplication程序,运行该程序,并简要分析程序的运行结果。
1:ClassSimpleThreadExtendThread{2:publicsimplethread(stringstr){3:【代码1】super(str);//调用其父类的构造方法4:}5:Publicvoid run(){//重写运行方法6:for(inti=0;I<10;I++){7:system.out.println(i+\8://打印次数和线程的名字9:try{10:睡眠((int)(math.random()*1000));11://线程睡眠,移交控制12:}13:catch(【代码2】){}//捕获中断异常14:}15:系统。
出来Println(\16://线程执行结束17:}18:}1:publicclasstwothreadstest{2:第一个线程(//\mainstring://)的名称是ARG3[//\mainstring])5:simplethreadspt=newsimplethread(\第二个线程的名字为second6:[代码3]SPT start();//启动第二个线程7:}8:}2、使用接口创建线程1:Publicclassmythread2implementsrunnable[代码1]{2:intcount=1,number;3:Publicmythread2(inti){4:number=I;5:system.Out.Println(\create thread\+number);6:}7:publicvoidrun()【代码2】{//重写run()方法8:while(true){9:系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计(Java)实验报告
实验四数组
指导教师:赵丹
姓名:刘坤(贵州民大)学号:
专业:信息管理与信息系统日期:2015-04-22
一、实验目的:
熟悉Java数组的创建、初始化、遍历、排序等操作。
二、实验内容:
1、将一个给定的整型数组转置输出,
例如:源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1。
2、现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
3、现在给出两个数组:
数组a:“1,7,9,11,13,15,17,19”;
数组b:“2,4,6,8,10”
两个数组合并为数组c,按升序排列。
4、自己出一个和本章有关的有趣的题目,并编程解答。
三、实验步骤、分析与结论:
1、将一个给定的整型数组转置输出,
例如:源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1。
①java程序如下:
public class ArraySwap {
public static void main(String[] args){
int oldArr[]=new int[]{1,2,3,4,5,6};
System.out.println("转置前的数组为:");
printArray(oldArr); //输出一维数组
int newArr[]=new int[oldArr.length];
for(int i=0;i<oldArr.length;i++){
newArr[i]=oldArr[oldArr.length-1-i];
}
System.out.println("转置后的数组是:");
printArray(newArr);
}
private static void printArray(int[] oldArr){
for(int i=0;i<oldArr.length;i++){ //遍历数组
System.out.print(oldArr[i]+" ");
}
System.out.println();
}
}
②在cmd中编译并执行程序的结果如下图所示:
图1
2、现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
①java程序如下:
public class DelZero {
public static void main(String[] args){
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
System.out.println("原一维数组是:");
for(int i=0;i<oldArr.length;i++){
System.out.print(oldArr[i]+" ");
}
int newArr[]=new int[oldArr.length];
int k=0; //计算新数组的下标变量
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[k]=oldArr[i];
k++;
}
}
System.out.println('\n'+"去0后的一维数组是:");
for(int q=0;q<k;q++){
System.out.print(newArr[q]+" ");
}
}
}
②在cmd中编译并执行程序的结果如下图所示:
图2
3、现在给出两个数组:
数组a:“1,7,9,11,13,15,17,19”;
数组b:“2,4,6,8,10”
两个数组合并为数组c,按升序排列。
①java程序如下:
import java.util.Arrays;
public class RankArray {
public static void main(String[] args){
int a[]={1,7,9,11,13,15,17,19};
int b[]={2,4,6,8,10};
int c[]=new int[a.length+b.length];
for(int i=0;i<a.length;i++){
c[i]=a[i];
}
for(int i=0;i<b.length;i++){
c[a.length+i]=b[i];
}
Arrays.sort(c);
System.out.println("数组a和b合并后,升序排列的数组c是:");
System.out.println(Arrays.toString(c));
}
}
②在cmd中编译并执行程序的结果如下图所示:
图3
4、自己出一个和本章有关的有趣的题目,并编程解答。
①题目:在一个成绩数组中找出最低分和最低分在数组中的位置。
score[]={18,25,6,49,15,2,99,106}
②Java程序如下:
public class MinScore {
public static void main(String[] args){
int score[]={18,25,6,49,15,2,99,106};
int min=score[0];
int position=0;
for(int i=1;i<score.length;i++){
if(score[i]<min){
min=score[i];
position=i;
}
}
System.out.println("成绩数组中最低的分数是:"+min);
System.out.println("该最低成绩在数组中的原始位置是:"+(position));
}
}
③在cmd中编译并执行程序的结果如下图所示:
图4
四、实验总结:
①数组的下标是从0开始的,最后一个元素的下标是“数组名.length-1”;
②合并两个数组,需要定义第三个数组,且第三个数组的大小要大于
或等于两个数组大小之和,即c.length=a.length+b.length,否则会丢失数组元素。
③数组的输出应该采用遍历输出。