kl800.com省心范文网

Java上机实验报告(完整高分打印版)

Java 语言程序设计实验报告
学生所在学院:里仁学院 学生所在班级:08 计算机一班 学生姓名:hejinhai 指导教师:崔勇强
教务处 2010 年 6 月

燕山大学里仁学院 JAVA 上机实验报告
第 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);
}
1

燕山大学里仁学院 JAVA 上机实验报告
} 输出结果:-80 四, 原理: 根据低级数据和高级数据的相互转换规则,把输入的整形数 1200 转换成二进制数,转换成补码形式取前八位,输出结果。
实验二
第 3 章 Java 语言基础 3.2 表达式与语句 3.2.2 运算符与表达式 4 位运算符
一, 实验目的: 理解和掌握移位运算符操作,使用方法,和格式。 二, 实验内容: 编写程序,定义两个整型变量,采用左移右移运算符 >> ,<<, 和不带符号右移运算符 >>>,对整型变量进行移位运算,输出 结果,观察结果。 三, 源程序:
2

燕山大学里仁学院 JAVA 上机实验报告
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);
3

燕山大学里仁学院 JAVA 上机实验报告
System.out.println("数字二的>>右移三十七位的结果 是"+s10);
} } 输出结果: 数字一是 1357 数字二是-1357 数字一的<<左移五位结果是 43424 数字一的>>右移五位结果是 42 数字一的>>>右移五位结果是 42 数字二的<<左移五位结果是-43424 数字二的>>右移五位结果是-43 数字二的>>>右移五位结果是 134217685 数字一的>>右移三十七位的结果是 42 数字二的>>右移三十七位的结果是-43 四, 实验原理: 将输入的正型变量 1357,-1357 转换成补码形式,1357 的补码, 就是它他的二进制本身,-1357 是二进制数诸位取反加 1,按 照要求进行移位运算(>> <<),若是左(右移),就按要求移
4

燕山大学里仁学院 JAVA 上机实验报告
相应的位数,高位补与符号位相同的数若是 1 就补 1,若是 0, 就补 0。若是>>>,右移时不带符号移动,不管符号位是 1, 还是 0,都补 0。再转成十进制形式输出。

实验三

第 3 章 Java 语言基础

3.3 程序流控制

3.3.1-3.3.5 语句(while, for ,if/else ,

switch ,循环 )

一,实验目的

理解和掌握使用程序流控制语句,以达到让某些程序能够

有条件或重复执行的目的以及++的运用。

二,实验内容

对无穷数列

1 1

?

1 3

?

1 5

?

1 7

??

(?1)n

?

1 2n ?

1

求解:(

?

1)n

?

1 2n ?

1



三,源程序

public class qiuhe{

public static void main (String[] args){
5

燕山大学里仁学院 JAVA 上机实验报告
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=0 while (true) {
double item=1.0/(2*i+1); if(item<0.0001) break; item=item*sign; sum=item; sign=sign*(-1); i++; }
6

燕山大学里仁学院 JAVA 上机实验报告
System.out.println(sum);

}

}

输出结果:0.004975124

五, 原理

该 程 序 取 n=100 , 使 用 for 循 环 语 句 实 现

1 1

?

1 3

?

1 5

?

1 ?? 7

(?1)n

?

1 2n ?1

,而条件语句

if

判断

(?1)n

?

1 2n ?

1

前面的符号是+还是-,最后计算出结果。

实验四
第 3 章 Java 语言基础 3.3 程序流控制
3.3.1-3.3.5 语句(while, for ,if/else , switch ,循环 )以及一元运算符的使用
一,实验目的 理解和掌握使用程序流控制语句,以达到让某些程序能够
7

燕山大学里仁学院 JAVA 上机实验报告
有条件或重复执行的目的以及++的运用。
二,实验内容 以乒乓球从高度为 n 处自由下落,求 t 时间该球的高度。 三,源程序 // 1 t%T T ? 2S
g
2 if(t/t1)t=T-t 3 s= 1 at 2
2
4 h' ? h ? s //条件列举
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);
8

燕山大学里仁学院 JAVA 上机实验报告
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 ,循环 )以及一元运算符的使用
9

一,实验目的

燕山大学里仁学院 JAVA 上机实验报告

理解和掌握使用程序流控制语句,以达到让某些程序能够有条

件或重复执行的目的以及++的运用

二, 实验内容:

画出下列图形: MMMMMMMMM

MMMMMMM

MMMMM

MMM

M

三,源程序 public class char Test public 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”);
10

燕山大学里仁学院 JAVA 上机实验报告
System.out.println(); } } } 输出结果: MMMMMMMMM
MMMMMMM MMMMM MMM M
四,原理 图形是第一行输出 9 个 M,然后空一行输出(9-2)个 M,然 后到空 n 行时输出(9-n)个 M,直到只输出一个 M 为止,输 出完毕。
实验六
第 4 章 面向对象特性 4.2 类的定义 4.2.5 this
一,实验目的 明确 this 是 Java 使用的一个特有意义的引用,它指向当前对象
11

燕山大学里仁学院 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 四, 原理
12

燕山大学里仁学院 JAVA 上机实验报告
从程序来看,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();
13

燕山大学里仁学院 JAVA 上机实验报告
} } class Hello implements Runnable{ int I; public void run(){ while(true){ System.out.prinln(“Hello”+i++); If(i==5) break; } } } 某次运行结果;Hello0
Hello1 Hello2 Hello3 Hello4 Hello0 Hello1 Hello2
14

燕山大学里仁学院 JAVA 上机实验报告
Hello3 Hello4 四,原理 Hello 类实现了 Runnable 接口。在 ThreadTest 类的 main() 方法中,以 Hello 类的两个实例对象分别创建了 t1,t2 两个 线程,并将线程启动。在创建的线程中,Hello 类的 run() 方法就是线程体,其中 int i 是线程的数据,当 t1,t2 启动 时,是从 Hello 类对象的 run()开始执行的,每个线程分别 打印输出 5 个字符串。
实验八
第 12 章 基于 Swing 的 GUI 开发 12.2 基于 Swing 的应用程序
12.2.1-12.2.5(一般结构,L&F,顶层容器,布局 管理,事件处理)
一,实验目的 理解和掌握基于 Swing 的应用程序的一般结构,L&F,顶层容 器,布局管理,事件处理等的使用。 二,实验内容 设计一个用户点击按钮,每次用户点击时,标签就会更新。
15

三,源程序

燕山大学里仁学院 JAVA 上机实验报告

1.import java.awt.*; 2.import java.awt.event.*; 3.import com.sun.java.swing.*; 4.import java.awt.accessibility.*; 5. 6.public class HelloSwing implements ActionListener { 7.private JFrame jFrame; 8.private JLabel jLabel; 9.private JPanel jPanel; 10.private JButton jButton; 11.private AccessibleContext accContext; 12. 13.private String labelPrefix = 14."Number of button clicks: "; 15.private int numClicks = 0; 16.
16

燕山大学里仁学院 JAVA 上机实验报告
17.public void go() { 18. 19.// Here is how you can set up a particular 20.// lookAndFeel. Not necessary for default. 21.// 22.// try { 23.// UIManager.setLookAndFeel( 24.// UIManager.getLookAndFeel()); 25.// } catch (UnsupportedLookAndFeelException e) { 26.// System.err.println("Couldn't use the " + 27.// "default look and feel " + e); 28.// } 29. 30.jFrame = new JFrame("HelloSwing"); 31.jLabel = new JLabel(labelPrefix + "0"); 32. 33.jButton = new JButton("I am a Swing button!"); 34.
17

燕山大学里仁学院 JAVA 上机实验报告
35.// Create a shortcut: make ALT-A be equivalent 36.// to pressing mouse over button. 37.jButton.setMnemonic('i'); 38. 39.jButton.addActionListener(this); 40.
1.// Add support for accessibility. 2.accContext = jButton.getAccessibleContext(); 3.accContext.setAccessibleDescription( 4."Pressing this button increments " + 5."the number of button clicks"); 6. 7.// Set up pane. 8.// Give it a border around the edges. 9.jPanel = new JPanel(); 10.jPanel.setBorder( 11.BorderFactory.createEmptyBorder(
18

燕山大学里仁学院 JAVA 上机实验报告
12.30,30,10,30)); 13. 14.// Arrange for compts to be in a single column. 15.jPanel.setLayout(new GridLayout(0, 1)); 16. 17.// Put compts in pane, not in JFrame directly. 18.jPanel.add(jButton); 19.jPanel.add(jLabel); 20.jFrame.setContentPane(jPanel); 21. 22.// Set up a WindowListener inner class to handle 23.// window's quit button. 24.WindowListener wl = new WindowAdapter() { 25.public void windowClosing(WindowEvent e) { 26.System.exit(0); 27.} 28.}; 29.jFrame.addWindowListener(wl); 30.
19

燕山大学里仁学院 JAVA 上机实验报告
31.jFrame.pack(); 32.jFrame.setVisible(true); 33.} 34.
1.// Button handling. 2.public void actionPerformed(ActionEvent e) { 3.numClicks++; 4.jLabel.setText(labelPrefix + numClicks); 5.} 6. 7.public static void main(String[] args) { 8. 9.HelloSwing helloSwing = new HelloSwing(); 10.helloSwing.go(); 11.} 12.} 输出结果
20

燕山大学里仁学院 JAVA 上机实验报告
四,原理 引入 Swing 包及其他程序包——选择 GUI 的外观风格 L&F—— 创建并设计窗口容器——创建与添加 Swing 组件——显示顶 层容器,将整个 GUI 显示出来。
21