Java语言程序设计实验报告学生所在学院:里仁学院学生所在班级:08计算机一班学生姓名:hejinhai指导教师:崔勇强教务处2010年6月第1篇核心基础篇实验一第3章Java语言基础3.2 表达式与语句3.2.2 运算符与表达式9 Java强制类型转换一,实验目的:掌握和理解强制类型转换原理格式及使用方法。
二,实验内容:编写程序定义整形变量x,把他强制类型转换成byte类型,观察输出结果。
三,源程序:public class Test {public static void main(String[] args) {int x=1200;byte b=(byte)x;System.out.println("转换结果是:"+b);}}输出结果:-80四,原理:根据低级数据和高级数据的相互转换规则,把输入的整形数1200转换成二进制数,转换成补码形式取前八位,输出结果。
实验二第3章Java语言基础3.2 表达式与语句3.2.2 运算符与表达式4 位运算符一,实验目的:理解和掌握移位运算符操作,使用方法,和格式。
二,实验内容:编写程序,定义两个整型变量,采用左移右移运算符 >> ,<<,和不带符号右移运算符 >>>,对整型变量进行移位运算,输出结果,观察结果。
三,源程序:public class Test {public static void main(String[] args) {int s1=1357;int s2=-1357;int s3=s1>>5;int s4=s2>>5;int s5=s1>>>5;int s6=s2>>>5;int s7=s1<<5;int s8=s2<<5;int s9=s1>>37;int s10=s2>>37;System.out.println("数字一是"+s1);System.out.println("数字二是"+s2);System.out.println("数字一的<<左移五位结果是"+s7);System.out.println("数字一的>>右移五位结果是"+s3);System.out.println("数字一的>>>右移五位结果是"+s5);System.out.println("数字二的<<左移五位结果是"+s8);System.out.println("数字二的>>右移五位结果是"+s4);System.out.println("数字二的>>>右移五位结果是"+s6);System.out.println("数字一的>>右移三十七位的结果是"+s9);System.out.println("数字二的>>右移三十七位的结果是"+s10);}}输出结果:数字一是1357数字二是-1357数字一的<<左移五位结果是43424数字一的>>右移五位结果是42数字一的>>>右移五位结果是42数字二的<<左移五位结果是-43424数字二的>>右移五位结果是-43数字二的>>>右移五位结果是134217685数字一的>>右移三十七位的结果是42数字二的>>右移三十七位的结果是-43四,实验原理:将输入的正型变量1357,-1357转换成补码形式,1357的补码,就是它他的二进制本身,-1357是二进制数诸位取反加1,按照要求进行移位运算(>> <<),若是左(右移),就按要求移相应的位数,高位补与符号位相同的数若是1就补1,若是0,就补0。
若是>>>,右移时不带符号移动,不管符号位是1,还是0,都补0。
再转成十进制形式输出。
实验三第3章 Java 语言基础3.3 程序流控制3.3.1-3.3.5语句(while , for ,if/else ,switch ,循环 )一,实验目的 理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用。
二,实验内容对无穷数列⋯⋯-+-71513111121)1(+*-n n 求解:1211n+*-n )( 。
三,源程序public class qiuhe{public static void main (String[] args){ double sum=0;Int sign=1;for (int i=0;i<100;i++) {double item=1.0/(2*i+1);if ( item<0.000001) break;item=item*sign;sum=item;sign=sign*(-1);}int i=0while (true){double item=1.0/(2*i+1);if(item<0.0001) break;item=item*sign;sum=item;sign=sign*(-1);i++;}System.out.println(sum);}}输出结果:0.004975124五, 原理该程序取n=100,使用for 循环语句实现⋯⋯-+-71513111121)1(+*-n n ,而条件语句if 判断121)1(+*-n n 前面的符号是+还是-,最后计算出结果。
实验四第3章 Java 语言基础3.3 程序流控制3.3.1-3.3.5语句(while , for ,if/else ,switch ,循环 )以及一元运算符的使用一,实验目的理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用。
二,实验内容以乒乓球从高度为n 处自由下落,求t 时间该球的高度。
三,源程序// ① t%T gS T 2= ② if (t/t1)t=T-t③ s=221at④ s h h -=' //条件列举class A{public static void mian ( string[] args){double h=10.0;double t=5.0;double g=9.8;double downTime=Math.sqrt(2.0*h/g);double T=2.0*downTime;t=t%T;if (t>dowmTime)t=T-t;//第一个t为下落时间double s=0.5*g*t*t;double CurrentH=h-s;Syestem.out.println(CurrentH)}}运行结果:输入,t=1,输出H=5.4四,原理该物理远动涉及往复运动,显然h=10,t=1s<T,故H=h-s=5.4实验五第3章 Java语言基础3.3 程序流控制3.3.1-3.3.5语句(while,for ,if/else ,switch ,循环)以及一元运算符的使用一,实验目的理解和掌握使用程序流控制语句,以达到让某些程序能够有条件或重复执行的目的以及++的运用二,实验内容:画出下列图形: MMMMMMMMMMMMMMMMMMMMMMMMM三,源程序public class char Testpublic static void mian(string[] args){for(int i=0;i<=9;i++)for(int j=0;j<i;j++)System.out.print(“ ”);for(int k=0;k<(2*(9-i)+1);k++)System.out.print(“M”);System.out.println();}}}输出结果:MMMMMMMMMMMMMMMMMMMMMMMMM四,原理图形是第一行输出9个M,然后空一行输出(9-2)个M,然后到空n行时输出(9-n)个M,直到只输出一个M为止,输出完毕。
实验六第4章面向对象特性4.2 类的定义4.2.5 this一,实验目的明确this是Java使用的一个特有意义的引用,它指向当前对象本身,掌握它的使用。
二,实验内容创建同名成员变量两个,用上this,使输出为对象本身。
三,源程序public class Text1{public int x=2;public int y=2;public Text1(int x,int y){this.x=x;this.y=y;}Public static void main (String[] args){Text1 .a=new Text1(1,2);System.out.println(“a.x=”+a.x+ “a.y=”+a.y);}}输出结果:a.x=1 a.y=2四,原理从程序来看,this.x指的是x本身,this.y指的是y本身,而x,y是通过构造方法Text1()创建出来的,当成员变量Text1.a被赋值为1,2时,通过this,那么a.x=1,a.y=2.第2篇应用基础篇实验七第10章线程10.2 线程的创建10.2.2 通过实现Runnable接口创建线程一,实验目的熟悉和掌握通过实现Runnable接口创建线程的定义和步骤。
二,实验内容通过实现Runnable接口创建线程的举例三,源程序public class ThreadTest{public static void main(String args[]){Thread t1 =new Thread(new Hello());Thread t2 =new Thread(new Hello()); t1.start();t2.start();}}class Hello implements Runnable{int I;public void run(){while(true){System.out.prinln(“Hello”+i++); If(i==5) break;}}}某次运行结果;Hello0Hello1Hello2Hello3Hello4Hello0Hello1Hello2Hello3Hello4四,原理Hello类实现了Runnable接口。
在ThreadTest类的main()方法中,以Hello类的两个实例对象分别创建了t1,t2两个线程,并将线程启动。