《最新《Java语言程序设计》新版实验指导书详解.doc》由会员分享,可在线阅读,更多相关《最新《Java语言程序设计》新版实验指导书详解.doc(185页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJava语言程序设计新版实验指导书详解计算机科学与信息学院电子信息学院JAVA语言程序设计实验指导书陈静编写适用专业通信工程 贵州大学二O一三年十月前言JAVA语言程序设计实验最重要的任务是发展学生的智力,即编程、上机调试能力,具体到教学内容上则是重在使学生掌握理论教学中的重点和难点,对基本能熟练掌握,提高自身的编程能力,加强素质教育。注重从事理论研究、实验工作的能力
2、和严谨的科学作风的培养,提倡创新精神。通过本课程的学习,加深对面向对象编程技术基础理论、基本知识的理解,理解实验原理和实验方案,较熟练地掌握JAVA编程能力,培养良好的编程风格。培养学生严谨的工作作风和实事求是的科学态度,为学习后继课程和未来的科学研究及实际工作打下良好的基础。目录实验一:Java程序实现与程序结构4实验二:类的使用13实验三:简单计算器的Java实现24实验四:Applet34实验五:图形用户界面39实验六:图书信息管理系统45实验报告的基本内容及要求53贵州大学实验报告54实验一:Java程序实现与程序结构实验学时:2实验类型:验证实验要求:必修一、实验目的通过本实验的学习
3、,使学生掌握如何编译和运行Java程序,能够设置Java开发环境,为今后进一步开发Java程序奠定基础,并使学生掌握循环结构、顺序结构和选择结构的JAVA程序编写,掌握JAVA语法基础与程序的控制结构。二、实验内容1、设置开发环境2、编译和运行“Hello World”程序 3、完成实验指导书中第一章规定的其它实验内容三、实验原理、方法和手段使用JDK软件开发包搭建JAVA开发环境,编译并成功运行出“Hello World”程序界面;使用JAVA语法,控制程序流程,完成不同功能的程序。四、实验组织运行要求该实验以学生自主训练为主的开放模式组织教学五、实验条件PC机,jdk1.5.0,eclip
4、cs3.2六、实验步骤1、安装JDK 5.0,安装Eclipse3.2;2、设置环境变量; 3在环境变量中设置JDK 开发环境的命令路径和类库路径,具体方法如下:我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量(假定你的j2sdk安装在C:Program FilesJavajdk1.5.0): 环境变量配置 环境变量配置为验证环境变更是否配置成功,“开始”-“运行” 输入 “cmd”,在命令提示符下输入java,如果出现如下图所示内容,则先注销系统,再进行测试。 环境变量配置不成功的状态 环境变量配置成功的状态 4、下面我们来进行Java程序的编译: 打开Eclipse,选择文件新建
5、项目Java项目,填写项目名完成 右键点击新建好的项目名新建类,填写类的名称 新建项目新建类 在类中编写程序代码5、编译“Hello World”程序代码; public class Helloworld /* * param args */public static void main(String args) / TODO 自动生成方法存根System.out.println(Hello Word!); System.out.println(我将成为优秀的Java 程序员!); 6、运行程序,查看结果。 7、在CMD中编译运行;(1) 编译程序:“开始”-“运行” 输入 “cmd” 将当前
6、路径切换到C:myjava:输入命令“cd C:myjava” 编译HelloWorld.java:输入命令 “javac HelloWorld.java”如果正常编译通过,则在对应的文件夹下C:myjava 下生成了一个HelloWorld.class文件:(2) 运行程序:输入命令:“java Helloworld”8、编写实验内容代码;使用选择语句(1)使用 if.else语句 程序功能:使用 if.else语句构造多分支,判断某一年是否为闰年。闰年的条件是 符合下面二者之一:能被 4整除,但不能被 100整除;能被 4整除,又能被 100整除。 编写源程序文件,步骤如下: 打开Ecli
7、pse,选择文件新建项目Java项目,填写项目名完成 右键点击新建好的项目名新建类,填写类的名称程序代码如下:public class Xuanzejiegou public static void main(String args) / TODO 自动生成方法存根boolean leap; int year=2005; if (year%4=0 & year%100!=0) | (year%400=0) / 方法 1 System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2008; / 方法 2
8、if (year%4!=0) leap=false; else if (year%100!=0) leap=true; else if (year%400!=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 (year%100=0) if (year%400=0) leap=true; else leap=false; else leap=fal
9、se; else leap=false; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); 编译运行程序,其结果如图所示:思考:本程序中有几个选择语句,哪些具有嵌套关系?(2)使用 switch语句 程序功能:在不同温度时显示不同的解释说明。 打开Eclipse,选择文件新建项目Java项目,填写项目名完成 右键点击新建好的项目名新建类,填写类的名称程序源代码如下。 public class Switch public static void main(String args
10、) / TODO 自动生成方法存根int c=38; switch (c10? 1:c25? 2:c新建项目Java项目,填写项目名完成 右键点击新建好的项目名新建类,填写类的名称 程序源代码如下:public class Forxunhuan public static void main(String args) / TODO 自动生成方法存根int h,c; System.out.println(摄氏温度 华氏温度); for (c=0; c“运行” 输入 “cmd”将当前路径切换到C:myjava:输入命令“cd C:myjava”(2) 运行程序:输入命令:“java HelloWo
11、rld”(3)参照以上运行Helloworld的运行方法,分别在CMD中运行选择、顺序、循环结构的程序,并截图附在实验报告中。8、检查分析实验结果。七、思考题1、为什么需要设置Java环境变量? 2、综合运行循环、顺序和选择三种程序控制结构,完成更为复杂的程序。八、实验报告见学校的实验报告书内容。九、其它说明实验二:类的使用实验学时:2实验类型:验证实验要求:必修一、 实验目的建立基于实际问题的类,熟练掌握面向对象程序设计,类是面向对象设计中的一个重要概念,通过创建一个类和对象,了解类与对象的关系,并且掌握Java的继承机制和多态的方法。二、实验内容完成实验指导书中第三章的实验内容三、实验原理
12、、方法和手段从面向对象程序设计的方法出发,从类的构造、域、成员方法和构造方法的定义,对象的创建,方法的调用,接口的特点和实现,类的继承和方法的多态几个角度,熟练掌握使用Java进行面向对象程序设计的主要方法和实现过程。四、实验组织运行要求该实验以学生自主训练为主的开放模式组织教学五、实验条件PC机,jdk1.5.0,eclipcs3.2六、实验步骤1阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。(1)新建项目,命名为class 新建一个类,命名为Inheritance 程序代码如下:public class Inheritance public static void
13、main(String args) SubClass subC = new SubClass();subC.doSomething();class SuperClass int x;SuperClass() x = 3;System.out.println(in SuperClass : x= + x);void doSomething() System.out.println(in SuperClass.doSomething();class SubClass extends SuperClass int x;SubClass() super(); / 调用父类的构造方法x = 5; / s
14、uper( ) 要放在方法中的第一句System.out.println(in SubClass :x= + x);void doSomething() super.doSomething(); / 调用父类的方法System.out.println(in SubClass.doSomething();System.out.println(super.x= + super.x + sub.x= + x);运行结果截图: 2、类的继承和多态,定义一个Person 类,要求如下:(1) 定义三个变量,分别是:姓名(name),字符串 类型(String);性别(sex),字符型(char);年龄(
15、age),整型(int);(2)定义setName(String newName)方法与getName()方法,设置与获取姓名;(3)定义writeOutput()方法,输出姓名。 (4) 新建一个Java项目,命名为class2,在class2中新建一个类,命名为Person。在Person类中输入如下代码: public class Person private String name;public Person() public Person(String initialname) name = initialname;public void setName(String newName
16、) name = newName;public String getName() return name;public void writeOutput() System.out.println(Name: + name);(5) 在class2中新建一个Java类,命名为Student,从Person 类派生新类Student,并增加如下内容:(1) 新增一个String 类型的private 实例变量stuNumber;(2) 增加方法getStuNumber()与setStuNumber(String name);(3) 重载方法writeOutput(),输出学号与姓名信息。在Stud
17、ent类中输入如下代码: public class Student extends Person String stuNumber; /新增变量public Student() super(); /*为什么?不用有什么影响*/stuNumber=0;public Student(String initalName,String initialstuNumber) super(initalName);stuNumber=initialstuNumber;public String getStuNumber()return stuNumber;public void setStuNumber(St
18、ring newStuNumber)stuNumber=newStuNumber;public void writeOutput() /重载superclass 中的方法System.out.println(Name: + getName();System.out.println(Student Number : + getStuNumber();(6) 编写测试程序Java4_1.java 对所编写的Student 类进行测试,在class2中新建一个Java类,命名为Java4_1。在Java4_1类中输入如下代码:public class Java4_1 public static vo
19、id main(String args) Person p = new Person();Student s = new Student();p.setName(李四);s.setName(张三);s.setStuNumber(2220083210000999);p.writeOutput(); /*/s.writeOutput();运行结果截图:(7) 分析继承的特点,以及重载如何实现,多态怎样表现出来的?3、接口的特点和实现,编写一个接口myInterface。 (1)新建Java项目,命名为myInterface,在myInterface项目中新建一个接口,命名为myInterface。
20、在myInterface接口中输入如下代码: interface myInterface int i = 4; int k = 5; void myFunc1(); int myFunc2(int x); (2)新建Java类,命名为Java4_2。在Java4_2类中输入如下代码:public class Java4_2 implements myInterfaceint j;public void myFunc1()/在使用接口的类中一定要实现接口中的所有抽象方法System.out.println(myFunc1=+i);public int myFunc2(int i)System.o
21、ut.println(func2=+i);return i;public static void main(String srgs)Java4_2 x = new Java4_2();x.myFunc1();x.myFunc2(k);(3)运行结果截图(分析为什么会得到这样的结果?): 3、在CMD中编译运行;(1)运行CMD,在CMD中敲入如图所示代码,在所用电脑的Java工作路径上实现如图所示代码。4、检查分析实验结果。七、思考题在Java中如何实现多重继承以及多态。八、实验报告见学校的实验报告书内容。九、其它说明实验三:简单计算器的Java实现实验学时:2实验类型:验证实验要求:必修一、
22、实验目的建立一个简单计算器的Java程序,进一步掌握面向对象程序设计方法,加深了解类这个面向对象程序设计中的重要概念。二、实验内容完成实验指导书中第三章的实验内容三、实验原理、方法和手段设计简单计算器所需的功能,构建计算器操作界面,实现简单计算器的编写。四、实验组织运行要求该实验以学生自主训练为主的开放 模式组织教学五、实验条件PC机,jdk1.5.0,eclipcs3.2六、实验步骤1、编写实验内容代码; (1)新建Java项目,命名为Calculator: (2) 在Calculator项目下新建两个包,命名为Client和UI,Client包里面存放的是主函数,UI包里面放的是界面文件和
23、控制器: (3) 在UI包里面新建一个类文件CalculatorFrame,编写的是界面代码:在CalculatorFrame类中输入如下代码:代码见附件一。(4) 在UI包里面新建一个类文件ClientContext,编写的是控制代码:在ClientContext类中输入如下代码:package UI;import java.util.ArrayList;import java.util.List;import javax.swing.JOptionPane;public class ClientContext private CalculatorFrame calculatorFrame;
24、private Double first = 0.0;private Double next = 0.0;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();c
25、alculatorFrame.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()
26、= -) 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
27、answer = first / next;calculatorFrame.setShow(String.valueOf(answer); else calculatorFrame.setShow(String.valueOf(calculatorFrame.getShow();public void setMc() / TODO Auto-generated method stubcalculatorFrame.setShow();first = 0.0;next = 0.0;calculatorFrame.opt=null;(5) 在Client包里面新建一个类文件Main,编写的是主函数
28、:在Main类中输入如下代码:package Client;import javax.swing.JOptionPane;import UI.CalculatorFrame;import UI.ClientContext;public class Main /* * param args */public static void main(String args) / TODO Auto-generated method stubCalculatorFrame c = new CalculatorFrame();c.setVisible(true);ClientContext clientCo
29、ntext = new ClientContext();c.setClientContext(clientContext);clientContext.setCalculatorFrame(c);2、 检查分析实验结果。 七、思考题结合以上程序如何用Java在实现科学计算器的功能?八、实验报告见学校的实验报告书内容。九、其它说明实验四:Applet实验学时:2实验类型:验证实验要求:必修一、实验目的建立Java Applet程序,熟练掌握Java的另外一种应用形式。二、实验内容完成实验指导书中第四章的实验内容三、实验原理、方法和手段Applet是Java的另外一种应用形式,是一种运行在浏览器中
30、的特殊程序。四、实验组织运行要求该实验以学生自主训练为主的开放 模式组织教学五、实验条件PC机,jdk1.5.0,eclipcs3.2六、实验步骤1、编写实验内容代码; (1)新建Java项目,命名为helloworldApplet (3) 在helloworldApplet项目下新建一个java类,命名为HelloWorldApplet。在HelloWorldApplet类中输入如下代码:import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet public void paint
31、(Graphics g) g.drawString(Hello,world,40,60); 右键HelloWorldApplet,选择运行方式为Java Applet。(4) 运行结果截图为:(5) 在JDK环境下,要在自己的Java目录下,建立一个html型文件,这里我建的文件名为1.html。先对源程序进行编译,然后用appletviewer命令运行1.html。Java源程序: Html源程序: 打开CMD,运行如图所示命令:(5)双击1.html,得到运行结果,如下图:2、 在CMD中编译运行结果如图:3、检查分析实验结果。七、思考题如何完成Applet的初始化和终止?八、实验报告见学
32、校的实验报告书内容。九、其它说明实验五:图形用户界面实验学时:2实验类型:验证实验要求:必修一、实验目的了解图形用户界面的概念,AWT的基本体系结构,掌握窗口的基本原理,Java的事件处理机制,掌握Swing组件的使用方法。二、实验内容完成实验指导书中第五章的实验内容三、实验原理、方法和手段通过布局管理器,Java的事件处理机制,Swing组件,Java使用独立于平台的抽象图形接口来实现图形用户界面。四、实验组织运行要求该实验以学生自主训练为主的开放模式组织教学五、实验条件PC机,jdk1.5.0,eclipcs3.2六、实验步骤1、编写实验内容代码; (1)新建一个Java项目,命名为jav
33、agui,在javagui项目下新建一个类,命名为TestFlowLayout。在TestFlowLayout类中输入代码如下:import java.awt.*;public class TestFlowLayout public static void main(String args) Frame f = new Frame(Flow Layout); Button button1 = new Button(确定); Button button2 = new Button(打开); Button button3 = new Button(关闭); Button button4 = new
34、 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的类。在MenuTest类中输入如下代码:import java.awt.*;public class MenuTestpublic static void main(String args)Frame fr=new Frame(Me
35、nu);MenuBar mb=new MenuBar();fr.setMenuBar(mb);Menu m1=new Menu(File);Menu m2=new Menu(Format);Menu m3=new Menu(Help);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 operat
限制150内