《Java语言程序设计》新版实验指导书

更新时间:2023-12-30 11:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子信息学院

《JAVA语言程序设计》

实验指导书

陈静编写

适用专业通信工程

贵州大学 二O一三年十月

1

前言

《JAVA语言程序设计》实验最重要的任务是发展学生的智力,即编程、上机调试能力,具体到教学内容上则是重在使学生掌握理论教学中的重点和难点,对基本能熟练掌握,提高自身的编程能力,加强素质教育。注重从事理论研究、实验工作的能力和严谨的科学作风的培养,提倡创新精神。通过本课程的学习,加深对面向对象编程技术基础理论、基本知识的理解,理解实验原理和实验方案,较熟练地掌握JAVA编程能力,培养良好的编程风格。培养学生严谨的工作作风和实事求是的科学态度,为学习后继课程和未来的科学研究及实际工作打下良好的基础。

2

目录

实验一:Java程序实现与程序结构 ........................................................................................ 4 实验二:类的使用 .................................................................................................................. 13 实验三:简单计算器的Java实现 ......................................................................................... 24 实验四:Applet ...................................................................................................................... 34 实验五:图形用户界面........................................................................................................... 39 实验六:图书信息管理系统................................................................................................... 45 实验报告的基本内容及要求................................................................................................... 53 贵州大学实验报告 .................................................................................................................. 54

3

实验一:Java程序实现与程序结构

实验学时:2 实验类型:验证 实验要求:必修 一、实验目的

通过本实验的学习,使学生掌握如何编译和运行Java程序,能够设置Java开发环境,为今后进一步开发Java程序奠定基础,并使学生掌握循环结构、顺序结构和选择结构的JAVA程序编写,掌握JAVA语法基础与程序的控制结构。

二、实验内容

1、设置开发环境

2、编译和运行“Hello World”程序

3、完成实验指导书中第一章规定的其它实验内容

三、实验原理、方法和手段

使用JDK软件开发包搭建JAVA开发环境,编译并成功运行出“Hello World”程序界面;

使用JAVA语法,控制程序流程,完成不同功能的程序。

四、实验组织运行要求

该实验以学生自主训练为主的开放模式组织教学

五、实验条件

PC机,jdk1.5.0,eclipcs3.2

六、实验步骤

1、安装JDK 5.0,安装Eclipse3.2; 2、设置环境变量;

3.在环境变量中设置JDK 开发环境的命令路径和类库路径,具体方法如下: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk 安装在C:\\Program Files\\Java\\jdk1.5.0):

4

环境变量配置

环境变量配置

为验证环境变更是否配置成功,“开始”->“运行” 输入 “cmd”,在命令提示符下输入java,如果出现如下图所示内容,则先注销系统,再进行测试。

环境变量配置不成功的状态

环境变量配置成功的状态 4、下面我们来进行Java程序的编译:

5

打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成 右键点击新建好的项目名—>新建—>类,填写类的名称

新建项目

新建类

6

在类中编写程序代码

5、编译“Hello World”程序代码;

public class Helloworld { /**

* @param args */

public static void main(String[] args) { // TODO 自动生成方法存根

System.out.println(\

System.out.println(\我将成为优秀的Java 程序员!\ } }

6、运行程序,查看结果。

7、在CMD中编译运行;

(1) 编译程序:

“开始”->“运行” 输入 “cmd”

将当前路径切换到C:\\myjava:输入命令“cd C:\\myjava”

编译HelloWorld.java:输入命令 “javac HelloWorld.java”

7

如果正常编译通过,则在对应的文件夹下C:\\myjava 下生成了一个HelloWorld.class 文件:

(2) 运行程序: 输入命令:“java Helloworld”

8、编写实验内容代码; 使用选择语句

(1)使用 if...else语句

程序功能:使用 if...else语句构造多分支,判断某一年是否为闰年。闰年的条件是 符合下面二者之一:能被 4整除,但不能被 100整除;能被 4整除,又能被 100整除。 编写源程序文件,步骤如下:

打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成 右键点击新建好的项目名—>新建—>类,填写类的名称

8

9

程序代码如下:

public class Xuanzejiegou {

public static void main(String[] args) { // TODO 自动生成方法存根 boolean leap; int year=2005;

if ((year%4==0 && year0!=0) || (year@0==0)) // 方法 1 System.out.println(year+\年是闰年\); else

System.out.println(year+\年不是闰年\); year=2008; // 方法 2

if (year%4!=0) leap=false;

else if (year0!=0) leap=true; else if (year@0!=0) leap=false; else leap=true; if (leap==true)

System.out.println(year+\年是闰年\);

else System.out.println(year+\年不是闰年\); year=2050; // 方法 3 if (year%4==0) { if (year0==0) {

if (year@0==0) leap=true; else leap=false; }

else leap=false; }

else leap=false;

if (leap==true) System.out.println(year+\年是闰年\); else System.out.println(year+\年不是闰年\); } }

编译运行程序,其结果如图所示:

思考:本程序中有几个选择语句,哪些具有嵌套关系?

(2)使用 switch语句

程序功能:在不同温度时显示不同的解释说明。

打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成 右键点击新建好的项目名—>新建—>类,填写类的名称

10

程序源代码如下。

public class Switch {

public static void main(String[] args) { // TODO 自动生成方法存根 int c=38;

switch (c<10? 1:c<25? 2:c<35? 3:4) {

case 1: System.out.println(\+c+\℃ 有点冷。要多穿衣服。\); case 2: System.out.println(\+c+\℃ 正合适。出去玩吧。\); case 3: System.out.println(\+c+\℃ 有点热。\);

default: System.out.println(\+c+\℃ 太热了!开空调。\); } } }

编译运行程序,其结果如图所示。

(3)使用循环语句

for循环语句练习

程序功能:按 5度的增量打印出一个从摄氏温度到华氏温度的转换表。 打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成 右键点击新建好的项目名—>新建—>类,填写类的名称

程序源代码如下:

public class Forxunhuan {

public static void main(String[] args) { // TODO 自动生成方法存根 int h,c;

System.out.println(\摄氏温度 华氏温度\); for (c=0; c<=40; c+=5) { h=c*9/5+32;

System.out.println(\+c+\+h); } } }

编译并运行程序,其结果如图 所示:

11

(4)while循环语句练习

分别利用while 与 do-while 实现以上步骤1 的要求。 2、在CMD中编译运行;

(1) 编译程序:

“开始”->“运行” 输入 “cmd”

将当前路径切换到C:\\myjava:输入命令“cd C:\\myjava”

(2) 运行程序: 输入命令:“java HelloWorld”

(3)参照以上运行Helloworld的运行方法,分别在CMD中运行选择、顺序、循环结构的程序,并截图附在实验报告中。 8、检查分析实验结果。

七、思考题

1、为什么需要设置Java环境变量?

2、综合运行循环、顺序和选择三种程序控制结构,完成更为复杂的程序。

八、实验报告

见学校的实验报告书内容。

九、其它说明

12

实验二:类的使用

实验学时:2 实验类型:验证 实验要求:必修 一、实验目的

建立基于实际问题的类,熟练掌握面向对象程序设计,类是面向对象设计中的一个重要概念,通过创建一个类和对象,了解类与对象的关系,并且掌握Java的继承机制和多态的方法。

二、实验内容

完成实验指导书中第三章的实验内容

三、实验原理、方法和手段

从面向对象程序设计的方法出发,从类的构造、域、成员方法和构造方法的定义,对象的创建,方法的调用,接口的特点和实现,类的继承和方法的多态几个角度,熟练掌握使用Java进行面向对象程序设计的主要方法和实现过程。

四、实验组织运行要求

该实验以学生自主训练为主的开放模式组织教学

五、实验条件

PC机,jdk1.5.0,eclipcs3.2

六、实验步骤

1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。 (1)新建项目,命名为class

13

新建一个类,命名为Inheritance

程序代码如下:

public class Inheritance {

public static void main(String[] args) {

14

SubClass subC = new SubClass(); subC.doSomething(); } }

class SuperClass { int x;

SuperClass() { x = 3;

System.out.println(\ + x); }

void doSomething() {

System.out.println(\); } }

class SubClass extends SuperClass { int x;

SubClass() {

super(); // 调用父类的构造方法

x = 5; // super( ) 要放在方法中的第一句 System.out.println(\ + x); }

void doSomething() {

super.doSomething(); // 调用父类的方法

System.out.println(\);

System.out.println(\ + super.x + \ + x); } }

运行结果截图:

2、 类的继承和多态,定义一个Person 类,要求如下:

(1) 定义三个变量,分别是:姓名(name),字符串 类型(String);性别(sex),字符型(char); 年龄(age),整型(int);

(2)定义setName(String newName)方法与getName()方法,设置与获取姓名;

15

(3)定义writeOutput()方法,输出姓名。

(4) 新建一个Java项目,命名为class2,在class2中新建一个类,命名为Person。

16

17

在Person类中输入如下代码: public class Person { private String name; public Person() { }

public Person(String initialname) { name = initialname; }

public void setName(String newName) { name = newName; }

public String getName() { return name; }

public void writeOutput() {

System.out.println(\ + name); } }

(5) 在class2中新建一个Java类,命名为Student,从Person 类派生新类Student,并增加如下内容:

(1) 新增一个String 类型的private 实例变量stuNumber; (2) 增加方法getStuNumber()与setStuNumber(String name); (3) 重载方法writeOutput(),输出学号与姓名信息。

18

在Student类中输入如下代码:

public class Student extends Person { String stuNumber; //新增变量 public Student() {

super(); /*为什么?不用有什么影响*/ stuNumber=\; }

public Student(String initalName,String initialstuNumber) { super(initalName);

stuNumber=initialstuNumber; }

public String getStuNumber(){ return stuNumber; }

public void setStuNumber(String newStuNumber){ stuNumber=newStuNumber; }

public void writeOutput(){ //重载superclass 中的方法 System.out.println(\ + getName());

System.out.println(\ + getStuNumber()); } } }

(6) 编写测试程序Java4_1.java 对所编写的Student 类进行测试,在class2中新建一个Java类,命名为Java4_1。

19

在Java4_1类中输入如下代码:

public class Java4_1 {

public static void main(String args[]) { Person p = new Person(); Student s = new Student(); p.setName(\李四\); s.setName(\张三\);

s.setStuNumber(\); p.writeOutput(); /**/ s.writeOutput(); } }

运行结果截图:

(7)分析继承的特点,以及重载如何实现,多态怎样表现出来的?

3、接口的特点和实现,编写一个接口myInterface。

(1)新建Java项目,命名为myInterface,在myInterface项目中新建一个接口,命名为myInterface。

20

26

(2)在Calculator项目下新建两个包,命名为Client和UI,Client包里面存放的是主函数,UI包里面放的是界面文件和控制器:

27

(3) 在UI包里面新建一个类文件CalculatorFrame,编写的是界面代码:

在CalculatorFrame类中输入如下代码: 代码见附件一。

28

(4) 在UI包里面新建一个类文件ClientContext,编写的是控制代码:

在ClientContext类中输入如下代码:

package UI;

import java.util.ArrayList; import java.util.List; import javax.swing.JOptionPane; public class ClientContext {

private CalculatorFrame calculatorFrame; private Double first = 0.0; private Double next = 0.0;

29

// // //

public void setCalculatorFrame(CalculatorFrame calculatorFrame) { this.calculatorFrame = calculatorFrame; }

double sum = 0;

public void setNumber(String str) { calculatorFrame.setShow(str); }

public void setOpt(String opt) {

first = calculatorFrame.getShow(); calculatorFrame.setShow(\); }

public void setAnswer(String str) {//按了“=”后,对数据按运算符进行计算 next = calculatorFrame.getShow(); // calculatorFrame.setShow(str); switch(str){ }

if (calculatorFrame.getOpt() == \) { double answer = first + next;

calculatorFrame.setShow(String.valueOf(answer)); } else if (calculatorFrame.getOpt() == \) { double answer = first - next;

calculatorFrame.setShow(String.valueOf(answer)); } else if (calculatorFrame.getOpt() == \) { double answer = first * next;

calculatorFrame.setShow(String.valueOf(answer)); } else if (calculatorFrame.getOpt() == \) { if (next == 0) {

calculatorFrame.setShow(\对不起,除数不能为0\); } else {

double answer = first / next;

calculatorFrame.setShow(String.valueOf(answer)); }

} else {

calculatorFrame.setShow(String.valueOf(calculatorFrame.getShow())); }

30

}

public void setMc() {

// TODO Auto-generated method stub calculatorFrame.setShow(\); first = 0.0; next = 0.0;

calculatorFrame.opt=null; }

}

31

(5) 在Client包里面新建一个类文件Main,编写的是主函数:

在Main类中输入如下代码:

package Client;

import javax.swing.JOptionPane;

import UI.CalculatorFrame; import UI.ClientContext;

public class Main {

32

}

/**

* @param args */

public static void main(String[] args) { // TODO Auto-generated method stub

CalculatorFrame c = new CalculatorFrame(); c.setVisible(true);

ClientContext clientContext = new ClientContext(); c.setClientContext(clientContext); clientContext.setCalculatorFrame(c); }

2、检查分析实验结果。

七、思考题

结合以上程序如何用Java在实现科学计算器的功能?

八、实验报告

见学校的实验报告书内容。

九、其它说明

33

实验四:Applet

实验学时:2 实验类型:验证 实验要求:必修 一、实验目的

建立Java Applet程序,熟练掌握Java的另外一种应用形式。

二、实验内容

完成实验指导书中第四章的实验内容

三、实验原理、方法和手段

Applet是Java的另外一种应用形式,是一种运行在浏览器中的特殊程序。

四、实验组织运行要求

该实验以学生自主训练为主的开放 模式组织教学

五、实验条件

PC机,jdk1.5.0,eclipcs3.2

六、实验步骤

1、编写实验内容代码;

(1)新建Java项目,命名为helloworldApplet

34

(3)在helloworldApplet项目下新建一个java类,命名为HelloWorldApplet。

在HelloWorldApplet类中输入如下代码: import java.applet.*;

35

import java.awt.*;

public class HelloWorldApplet extends Applet { public void paint(Graphics g){

g.drawString(\,40,60); } }

右键HelloWorldApplet,选择运行 方式为Java Applet。

(4)运行结果截图为:

36

(5)在JDK环境下,要在自己的Java目录下,建立一个html型文件,这里我建的文件名为1.html。先对源程序进行编译,然后用appletviewer命令运行1.html。 Java源程序:

Html源程序:

打开CMD,运行如图所示命令:

37

(5)双击1.html,得到运行结果,如下图:

2、在CMD中编译运行结果如图:

3、检查分析实验结果。

七、思考题

如何完成Applet的初始化和终止?

八、实验报告

见学校的实验报告书内容。

九、其它说明

38

实验五:图形用户界面

实验学时:2 实验类型:验证 实验要求:必修 一、实验目的

了解图形用户界面的概念,AWT的基本体系结构,掌握窗口的基本原理,Java的事件

处理机制,掌握Swing组件的使用方法。

二、实验内容

完成实验指导书中第五章的实验内容

三、实验原理、方法和手段

通过布局管理器,Java的事件处理机制,Swing组件,Java使用独立于平台的抽象图形

接口来实现图形用户界面。

四、实验组织运行要求

该实验以学生自主训练为主的开放模式组织教学

五、实验条件

PC机,jdk1.5.0,eclipcs3.2

六、实验步骤

1、编写实验内容代码;

(1)新建一个Java项目,命名为javagui,在javagui项目下新建一个类,命名为TestFlowLayout。

39

在TestFlowLayout类中输入代码如下:

import java.awt.*;

public class TestFlowLayout {

public static void main(String args[]) { Frame f = new Frame(\); Button button1 = new Button(\确定\); Button button2 = new Button(\打开\); Button button3 = new Button(\关闭\); Button button4 = new Button(\取消\); f.setLayout(new FlowLayout()); f.add(button1); f.add(button2); f.add(button3); f.add(button4); f.setSize(100,100); f.setVisible(true); } }

得到运行结果如图所示:

(2)在javagui项目下新建一个MenuTest的类。

40

在MenuTest类中输入如下代码:

得到运行结果如图所示:

41

import java.awt.*;

public class MenuTest{

public static void main(String args[]){ Frame fr=new Frame(\); MenuBar mb=new MenuBar(); fr.setMenuBar(mb);

Menu m1=new Menu(\); Menu m2=new Menu(\); Menu m3=new Menu(\); Menu m4=new Menu(\进制\); mb.add(m1); mb.add(m2);

mb.setHelpMenu(m3);

MenuItem m21=new MenuItem(\中文\); MenuItem m41=new MenuItem(\二进制\); MenuItem m42=new MenuItem(\八进制\); MenuItem m43=new MenuItem(\十进制\); m2.add(m21); m2.add(m4); m4.add(m41); m4.add(m42); m4.add(m43); fr.pack();

fr.setVisible(true); } }

(3)在javagui项目下新建一个TestPanels的类。

在TestFlowLayout类中输入代码如下: import java.awt.*; import javax.swing.*;

public class TestPanels extends JFrame { private JTextField operation; // 结果栏 private JButton plus, equal; // 运算符 private JButton[] numbers; // 数字 public TestPanels() { //定义控件

operation = new JTextField(\); numbers = new JButton[10]; for (int i = 0; i < 10; i++)

numbers[i] = new JButton(\ + i); plus = new JButton(\); equal = new JButton(\); JPanel p1 = new JPanel();

p1.setLayout(new GridLayout(3, 4)); // Add buttons to the panel for (int i = 1; i <=9; i++) { p1.add(numbers[i]); }

42

p1.add(numbers[0]); //数字0 p1.add(plus); p1.add(equal);

// Create panel p2 to hold a text field and p1 JPanel p2 = new JPanel(new BorderLayout()); p2.add(operation,BorderLayout.NORTH); p2.add(p1, BorderLayout.CENTER); // Add contents to the frame add(p2, BorderLayout.CENTER); }

/** Main method */

public static void main(String[] args) { TestPanels frame = new TestPanels(); frame.setTitle(\);

frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200, 200); frame.setVisible(true); } }

得到运行结果如图所示:

2、在CMD中编译运行;

43

3、检查分析实验结果,并课后实现完整计算器功能:

七、思考题

在实现图形用户界面上,AWT和Swing有什么异同?

八、实验报告

见学校的实验报告书内容。

九、其它说明

44

实验六:图书信息管理系统

实验学时:2 实验类型:综合性 实验要求:必修 一、实验目的

综合运行所学的知识,构建图形用户界面,实现图书信息管理系统。

二、实验内容

设计图书信息管理所需的功能,构建图形用户界面,完成图书信息的管理。

三、实验原理、方法和手段

使用图形用户界面,JAVA程序设计语言编写程序。

四、实验组织运行要求

该实验以学生自主训练为主的开放模式组织教学

五、实验条件

PC机,jdk1.5.0,eclipcs3.2

六、实验步骤

1、应用系统需求分析

图书馆管理系统是图书馆管理工作中不可缺少的部分,它对于图书馆的管理者和使用者都非常重要,所以图书馆管理系统应该为管理者与读者提供充足的信息和快捷的数据处理手段,但长期以来,人们使用传统的人工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐。一个成功的图书馆管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程。从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原则,本系统具有以下特点:

(1)确保系统具有良好的系统性能,友好的用户界面。 (2)较高的处理效率,便于使用和维护。

(3)采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。 (4)系统尽可能简化图书馆管理员的重复工作,提高工作效率。 (5)简化数据查询、统计难度。 2、系统结构设计和功能设计 系统功能设计:

(1)对图书馆的图书信息和用户(读者,借阅者等)信息进行有效的管理; (2)性能:数据库的录入;图书目录检索;用户信息查询;图书信息查询; (3)输出:用户信息;图书信息;输入:用户名称;图书编码;

(4)安全保密:馆中所有未借出的书籍能够供用户随时查阅;用户信息只能被系统管理员查阅,修改;

45

系统的结构设计:

E-R图

数据库的关系模式:

46

3、编写代码,测试 (1)安装SQL Sever2005

安装SQL2005,在安装的一项选择windows 混合身份登陆;并记录你的登陆名字;和密码;忘记也没关系; (2)设置SQL2005

设置SQL2005的TCP/IP ,一般默认端口是1433,如果不是,则需要更改;

SQL Server ConfigurationManage----SQLserver2005网络配置------MSSQLSERVER的协议----TC/PIP---IP地址---IPALL,把端口改为1433:

如果忘记安装时候的登录密码,打开SQL Server 2005中的“SQL Server Management Studio”,连接数据库,,可以点击,安全性---登录名---然后展开登录名----选择用户,修改密码。

47

(3)clipse连接到SQL2005

附件中有三个jar包,在eclipse中代码添加完毕后,添加这三个jar包。 (4)在SQL Server 2005附加图书管理系统中的数据库

a.在SQL2005的安装目录下的Data文件中添加数据库文件:C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data文件夹中添加\\java图书馆管理系统\\Database的扩展名为db_library_Data.MDF和db_library_Log.LDF的两个文件。

b.打开SQL Server 2005中的“SQL Server Management Studio”,连接数据库,在“数据库”数据项上单击鼠标右键,在弹出的快捷菜单中选择“附加”菜单项。点击添加刚刚添加Data目录的文件。

选择所要附加数据库的db_library_Data.MDF文件,单击【确定】按钮,即可完成数据库的附加操作。

(5)新建Java项目,命名为libraryManager,在libraryManager项目中分别新建源文件命名为src、res,在源文件src中分别新建包命名为com.wsy、com.wsy.dao、com.wsy.iframe、com.wsy.JComPz、com.wsy.model、com.wsy.util,在对应的包下新建如下图所示的Java类,其中Library.java为主类。附件(代码)中是分别对应类名的参考代码,分别输入到相应的类中。将附件中res的文件夹复制到libraryManager项目中,如上图所示路径。

48

49

(6)运行图书管理系统程序

在libraryManager项目上单击,点击Eclipse上面项目----属性------双击Java构建路径;,选择库------添加外部jar-------然后将

C:\\Documents and Settings\\Administrator\\workspace\\libraryManager\\lib里面的SQL Server 2005数据库驱动文件“msbase.jar、mssqlserver.jar、msutil.jar”添加到库里面。

修改参数;

展开com.wsy.dao文件包;点击Dao.java,修改代码为;

public class Dao { Protectedstatic String dbClassName= \; protected static String dbUrl = \ + \; protected static String dbUser = \; protected static String dbPwd = \; protected static String second = null; private static Connection conn = null;

这两行为登录名和密码,照着你的密码和用户名修改就可以了;只改\号内的字符; protected static String dbUser = \; protected static String dbPwd = \;

(7)在导入工程的src文件中,找到可执行的主类,在该类上单击鼠标右键,选择“运行方式”/“Java应用程序”项,如图所示,完成程序配置。

50

本文来源:https://www.bwwdw.com/article/sc1x.html

Top