JAVA实验8
- 格式:pdf
- 大小:455.01 KB
- 文档页数:10
实验一1.题目:通过线程实现红色字符串”你好!”在窗口中不停地从左到右在屏幕上走动。
2.实验程序代码import java.awt.*;import java.applet.Applet;import java.util.*;public class XC1 extends Applet implements Runnable{int count=0,x;Thread m;public void init() {setBackground(Color.blue);setForeground(Color.yellow);}public void start(){Thread m = new Thread(this,"XC1");m.start();}public void paint(Graphics g){g.drawString("你好",x,30);}public void run(){try{do{x=++x%50;repaint();Thread.sleep(500);}while(true);}catch (InterruptedException e){}}}<html><applet code=XC1.classwidth=300height=200></applet></html>3实验结果实验二1.题目:编写MyThread类,在该类中实现九九乘法表的动态输出,每隔1s输出乘法表中的一个运算结果。
2.实验程序代码class Mythread implements Runnable{int count=0,i,j,flog;public void run(){try{do{for(i=1;i<10;i++){for(j=1;j<=i;j++){flog=j;count=i*j;System.out.print(count+"\t");if(flog==i)System.out.println();Thread.sleep(500);}}}while(count<81);}catch (InterruptedException e){System.out.println("中断");}}}class cf{public static void main(String args[]){Mythread m=new Mythread();Thread n=new Thread(m);n.start();}}3实验结果实验心得体会1创建线程对象的方法:1通过继承线程类Thread来创建线程类,2建立一个实现Runnable 接口的类来创建线程.2通过Thread类创建线程子类的格式为:class 线程的类名 extends Threadpublic void run( {程序语句} }3当一个类是从其他类继承时,如继承Applet类。
实验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;}}。
青岛科技大学实验报告姓名:陶浩专业:计算机科学与技术班级:惠普测试171学号:1708090122 课程:Java语言程序设计时间:2019.5.22实验项目:第八次实验:异常处理一、实验目的了解异常的概念以及如何定义、抛出和捕捉处理异常。
二、实验要求编写一个程序,用来捕获各种类型的异常编写一个程序,用来说明异常处理块中各个语句块的作用熟悉异常的类型及其产生的原因三、实验内容(一)Java的异常类型识别String s = null;(1)if ((s != null)& (s.length()>0));逻辑与(2)if ((s != null)&& (s.length()>0))与(3)if ((s == null)|(s.length() == 0));逻辑或(4)if ((s == null)|| (s.length() == 0));或&&会引起短路,&不会引起短路,产生异常的序号是(1)(3),异常类型是空指针类型异常ng.NullPointerException(二)捕获并处理各种类型的异常Testcase#0ng.ArithmeticException: / by zeroTestcase#1ng.NullPointerExceptionTestcase#3ng.StringIndexOutOfBoundsException: String index out of range: 99一共捕获了三个异常,第一个是算术运算错误(ArithmaticException),第二个是空指针异常(NullPointerException),第三个是数组访问越界(ArrayIndexOutOfBoundsException)。
(三)了解异常处理模块中各个语句块的功能System.out.println("After handing exception return here?");没有被执行,在a[4]=3;时发生异常,之后的语句跳过不执行,(异常发生,try块中剩余的语句不再执行,查找异常处理器对try后面的catch块按照次序进行匹配检查,找到匹配者执行catch块中的代码,不再检查后面的catch块)直接执行catch语句块。
java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。
实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。
8-实验八Java多线程操作(实验报告内容)实验八 Java多线程操作(实验报告)一、目的1.掌握Java多线程操作。
二、实验内容启动线程,线程休眠,线程同步,等待和唤醒三、实验环境JDK1.6+dos环境四、实验原理通过案例掌握多线程操作。
五、实验步骤1、设计一个线程操作类,要求可以产生三个线程对象,并可以分别设置三个线程的休眠时间,如下所示:线程A,休眠10秒线程B,休眠20秒线程C,休眠30秒2、生产者与消费者问题,生产者生产一台电脑,消费者马上将生产出的电脑取走。
六、实验小结1、class MyThread implements Runnable{String name;int time;public MyThread(String name,int time){/doc/0713104097.html,=name;this.time=time;}public void run(){try{Thread.sleep(this.time);}catch(Exception e){}System.out.println(/doc/0713104097.html, +"线程,休眠"+this.time/1000+"秒");}}public class Demo08{public static void main(String args[]){MyThread mt1=new MyThread("线程A",10000);MyThread mt2=new MyThread("线程B",20000);MyThread mt3=new MyThread("线程C",30000);new Thread(mt1).start();new Thread(mt2).start();new Thread(mt3).start();}}//生产电脑和搬运电脑class Computer{private String name;public static int sum=0;private boolean flag=true;public Computer(String name){/doc/0713104097.html,=name;}public synchronized void set(){ //生产电脑if(!flag){try{super.wait();}catch(Exception e){e.printStackTrace();}}sum=sum+1;System.out.println("第"+sum+"台"+name+"电脑被生产");flag=false;super.notify();}public synchronized void get(){ //搬走电脑if(flag){try{super.wait();}catch(Exception e){e.printStackTrace();}}System.out.println("第"+sum+"台"+name+"电脑被搬走");flag=true;super.notify();}}class Producter implements Runnable{ private Computer c=null;public Producter(Computer c){this.c=c;}public void run(){for(int i=0;i<1000;i++){this.c.set();}}}class Worker implements Runnable{ private Computer c=null;public Worker(Computer c){this.c=c;}public void run(){for(int i=0;i<1000;i++){this.c.get();}}}public class Test{public static void main(String args[]){ Computer c=new Computer("联想");Producter p=new Producter(c);Worker w=new Worker(c);new Thread(p).start();new Thread(w).start();}}。
java实训总结8篇第1篇示例:Java实训是计算机科学领域必不可少的一部分,通过实训学习,可以帮助学生们更好地理解Java编程语言的应用和技巧。
在接受Java 实训的过程中,我收获颇丰,不仅提升了自己的编程能力,还学到了很多实践经验和团队协作的重要性。
在实训过程中,我们主要学习了Java基础知识,包括语法、数据类型、操作符、流程控制等等。
通过实际操作和编程练习,我们逐渐掌握了Java编程的技巧和方法。
在课堂上,老师会通过实例讲解和演示,让我们更直观地理解程序的运行原理和逻辑。
我们还要完成一些编程作业和小项目,这不仅锻炼了我们的编程能力,也提高了我们的解决问题的能力。
在团队项目中,我们体会到了团队协作的重要性。
在一个项目中,每个人都有自己的任务和责任,只有团结协作,才能顺利完成项目。
我们要相互配合,合理分工,共同解决遇到的问题,不断完善和改进项目。
通过项目实践,我们不仅学到了团队合作的技巧,还体会到了团队协作的意义和价值。
在实训中,我们还学习了一些Java框架和工具,如Spring、MyBatis等。
这些框架和工具可以帮助我们更高效地开发Java项目,提高代码的质量和性能。
通过学习和实践,我们更加深入地了解了Java编程的应用领域和发展趋势,为将来的工作打下了坚实的基础。
Java实训是一次宝贵的学习经历,让我们更加深入地了解了Java 编程语言的应用和技巧,提升了我们的编程能力和团队协作能力。
通过不断地实践和学习,我们能够更好地应对未来的挑战和机遇,成为优秀的Java程序员和团队合作者。
希望能够将学到的知识应用到实际工作中,不断进步和提高自己的专业技能。
【注:本文纯属虚构,如有雷同,纯属巧合。
】第2篇示例:本次Java实训总结,我从基础知识的学习和实践中获益良多。
通过训练,我深入了解了Java编程语言的特点、编程规范以及常见的应用场景和技巧,对于程序设计和开发也有了更深刻的理解。
在实训过程中,我系统地学习了Java语言的基础知识,例如数据类型、运算符、控制流程、数组、面向对象等概念。
.实验一:Java程序的编辑、编译与运行一实验目的1、掌握Java基本开发环境(JDK)的安装和配置方法。
2、掌握java程序的编辑方法、编译方法和运行方法。
3、通过试验,对Java程序的开发过程有一个总体了解。
二实验原理Java的基本开发工具包JDK包含了一系列命令,这些命令在JDK的安装目录的子文件夹bin之下。
编译和运行Java程序或者执行一些其他与Java开发相关的任务时(如打包、生成说明文档)需要使用这些命令,但开发者的Java程序与这些命令通常不会在同一个文件夹(同一个路径)下,这样执行相应的命令时非常不便。
为了能够方便的执行诸如程序编译等命令,必须设置操作系统的环境变量,当我们键入命令时,让操作系统能够从磁盘中寻找到相应的命令文件,载入内存中执行。
操作系统寻找外部命令的所依据的是环境变量path。
Path中保存了一系列路径。
不同的路径之间用“;”分隔,为JDK配置环境变量就是要将Java开发命令如javac.exe所在的路径设置到环境变量path中。
为了编译、执行java程序,需要进入命令窗口,在命令行状态下输入相应的命令。
除了java相关的操作命令外,还会用到cd,dir等改变当前目录、列目录等操作系统命令。
编译Java程序使用命令javac.exe,基本的命令格式是:源程序经编译后会生成相应的字节码文件,字节码文件的后缀是.class。
运行程序使用命令java.exe,命令的基本格式是:java 字节码文件名注意,此处的字节码文件名不能带扩展名。
三实验环境运行Windows的PC机,能够连接Internet下载JDK四实验内容和步骤1、实验内容:①下载安装JDK,设置环境变量。
②使用编辑程序(如记事本)编辑输入HelloWorld.java源程序。
HelloWorld.java的内容如下:public class HelloWorld{public static void main(String [] args){System.out.println(“你好,恭喜!你成功开发了你的第一个Java程序!”);}}注意:java程序是大小写敏感的。
JAVA第8.1次试验报告实验8.1:文件流姓名:车晓彤学号:13072012一、实验内容1、通过类FileInputStream/FileOutputStream读/写文件的示例,在系统当前的文件目录下读取source.jpg的内容,并将其复制成新文件dest.ipg。
源代码:import java.io.*;public class FileStreamTest {public static void main(String[] args)throws IOException{ FileInputStream fis=null;FileOutputStream fos=null;try{fis=new FileInputStream("source.jpg");fos=new FileOutputStream("dest.jpg");byte[]b=new byte[1024];int count;while((count=fis.read(b))>0)fos.write(b,0,count);}catch(IOException e){e.printStackTrace();}finally{fis.close();fos.close();}}}运行结果:2、使用类FileReader/FileWriter读/写文件的示例。
在系统当前目录下创建源文件source.txt,将源文件内容在控制台和目标文件dest.txt中输出,最后在控制台输出目标文件内容。
程序源代码:import java.io.*;public class FileReaderWriterTest {public static void main(String args[]) {FileReader fr = null;FileWriter fs = null;FileWriter fd = null;FileReader ft = null;try {fs = new FileWriter("source.txt");fs.write("很高兴学习java!");fs.close();fr = new FileReader("source.txt");fd = new FileWriter("dest.txt");int c;System.out.print("源文件内容:");while ((c = fr.read()) != -1) {System.out.print((char) c);fd.write(c);}fd.close();fr.close();System.out.print("\n目标文件内容:");ft = new FileReader("dest.txt");char[] ch = new char[100];int count;while ((count = ft.read(ch)) != -1)System.out.print(new String(ch, 0, count));ft.close();} catch (IOException e) {e.printStackTrace();}}}运行结果:3.请完成下面程序,运行该程序将文件从file1.dat中读取全部数据,然后写到file2.dat 文件中。