Java实验8
- 格式:doc
- 大小:101.00 KB
- 文档页数:6
实验一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;}}。
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操作符创建抽象类的实例。
.实验一: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程序是大小写敏感的。
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实验心得体会8篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如汇报材料、工作计划、心得体会、条据文书、发言致辞、合同协议、规章制度、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as report materials, work plans, experiences, documents, speeches, contract agreements, rules and regulations, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!做java实验心得体会8篇每一次心得体会都是我们内心世界的一次升华,从而更好的深入思考人生的意义和价值,通过心得体会我们能够更加清晰地认识自己的价值观和人生目标,下面是本店铺为您分享的做java实验心得体会8篇,感谢您的参阅。
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 文件中。
实验8
网络通信程序设计
一、实验目的:
1、理解Java的基于套接字的网络通信原理。
2、理解客户端和服务器的概念。
3、学习使用套接字实现客户端和服务器通信的程序设计方法。
二、实验任务:
编写一个客户端和服务器端通信的应用程序。
由客户端向服务器端发送数据,服务器接收数据,并利用它们生成一个结果,再把结果返回给客户端。
三、实验内容:
1、套接字是网络上两个主机之间逻辑连接的端点,用于发送和接收数据。
操作套接字类似于操作输入输出流。
2、一个局域网通常包含一个服务器和多个客户端。
客户端向服务器发送请
求,服务器响应请求。
客户端和服务器建立连接后,可以通过套接字进行通信。
客户端启动时,服务器必须正在运行。
3、服务器端首先要创建一个服务器套接字(serverSocket类),并把它附加到
一个端口上,并通过该端口监听客户端的连接请求。
监听请求的方法是accept。
4、客户端也要使用一个套接字(Socket类)与服务器连接,连接时可以使用服
务器的IP地址,也可以使用服务器的主机名称。
5、创建连接后,可以使用套接字的getInputStream方法和getOutputStream
方法获取输入输出流来实现通信。
以下是客户端和服务器端利用套接字通信的程序源代码,请各位同学认真阅读,透彻理解使用套接字实现通信的原理。
6、服务器端代码如下:
7、代码中建立连接时使用的字符串”localhost”代表本机。
如果和网络上的其
他计算机通信,这里可以用该计算机的IP地址代替。
既可以在同一台计算机上实现上面的通信程序,也可以在局域网的不同计算机上实现它。
四、本次实验难点:
对套接字的理解和运用是本次实验的重点和难点。