《Java语言程序设计》新版实验指导书详解.docx
《《Java语言程序设计》新版实验指导书详解.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计》新版实验指导书详解.docx(61页珍藏版)》请在冰豆网上搜索。
![《Java语言程序设计》新版实验指导书详解.docx](https://file1.bdocx.com/fileroot1/2023-5/25/4378968f-9702-4320-b6f2-b5d21d791c85/4378968f-9702-4320-b6f2-b5d21d791c851.gif)
《Java语言程序设计》新版实验指导书详解
电子信息学院
《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、设置开发环境
1、编译和运行“HelloWorld”程序
2、完成实验指导书中第一章规定的其它实验内容
三、实验原理、方法和手段
使用JDK软件开发包搭建JAVA开发环境,编译并成功运行出“HelloWorld”程序界面;使用JAVA语法,控制程序流程,完成不同功能的程序。
四、实验组织运行要求
该实验以学生自主训练为主的开放模式组织教学
五、实验条件
PC机,jdk1.5.0,eclipcs3.2
六、实验步骤
1、安装JDK5.0,安装Eclipse3.2;
2、设置环境变量;
3.在环境变量中设置JDK开发环境的命令路径和类库路径,具体方法如下:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk
安装在C:
\ProgramFiles\Java\jdk1.5.0):
4
环境变量配置
环境变量配置
为验证环境变更是否配置成功,“开始”->“运行”输入“cmd”,在命令提示符下输入java,如果出现如下图所示内容,则先注销系统,再进行测试。
环境变量配置不成功的状态
环境变量配置成功的状态
4、下面我们来进行Java程序的编译:
5
打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成右键点击新建好的项目名—>新建—>类,填写类的名称
新建项目
新建类
6
在类中编写程序代码
5、编译“HelloWorld”程序代码;
publicclassHelloworld{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODO自动生成方法存根
System.out.println("HelloWord!
");System.out.println("我将成为优秀的Java程序员!
");
}
}
6、运行程序,查看结果。
7、在CMD中编译运行;
(1)编译程序:
“开始”->“运行”输入“cmd”
将当前路径切换到C:
\myjava:
输入命令“cdC:
\myjava”
编译HelloWorld.java:
输入命令“javacHelloWorld.java”
7
如果正常编译通过,则在对应的文件夹下C:
\myjava下生成了一个HelloWorld.class文件:
(2)运行程序:
输入命令:
“javaHelloworld”
8、编写实验内容代码;
使用选择语句
(1)使用if...else语句
程序功能:
使用if...else语句构造多分支,判断某一年是否为闰年。
闰年的条件是符合下面二者之一:
能被4整除,但不能被100整除;能被4整除,又能被100整除。
编写源程序文件,步骤如下:
打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成右键点击新建好的项目名—>新建—>类,填写类的名称
8
9
程序代码如下:
publicclassXuanzejiegou{
publicstaticvoidmain(String[]args){
//TODO自动生成方法存根
booleanleap;
intyear=2005;
if((year%4==0&&year%100!
=0)||(year%400==0))//方法1System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
year=2008;//方法2
if(year%4!
=0)leap=false;
elseif(year%100!
=0)leap=true;
elseif(year%400!
=0)leap=false;
elseleap=true;
if(leap==true)
System.out.println(year+"年是闰年");
elseSystem.out.println(year+"年不是闰年");
year=2050;//方法3
if(year%4==0){
if(year%100==0){
if(year%400==0)leap=true;
elseleap=false;
}
elseleap=false;
}
elseleap=false;
if(leap==true)System.out.println(year+"年是闰年");elseSystem.out.println(year+"年不是闰年");
}
}
编译运行程序,其结果如图所示:
思考:
本程序中有几个选择语句,哪些具有嵌套关系?
(2)使用switch语句
程序功能:
在不同温度时显示不同的解释说明。
打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成右键点击新建好的项目名—>新建—>类,填写类的名称
10
程序源代码如下。
publicclassSwitch{
publicstaticvoidmain(String[]args){
//TODO自动生成方法存根
intc=38;
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println(""+c+"℃有点冷。
要多穿衣服。
");case2:
System.out.println(""+c+"℃正合适。
出去玩吧。
");case3:
System.out.println(""+c+"℃有点热。
");
default:
System.out.println(""+c+"℃太热了!
开空调。
");
}
}
}
编译运行程序,其结果如图所示。
(3)使用循环语句
for循环语句练习
程序功能:
按5度的增量打印出一个从摄氏温度到华氏温度的转换表。
打开Eclipse,选择文件—>新建—>项目—>Java项目,填写项目名—>完成右键点击新建好的项目名—>新建—>类,填写类的名称
程序源代码如下:
publicclassForxunhuan{
publicstaticvoidmain(String[]args){
//TODO自动生成方法存根
inth,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:
输入命令“cdC:
\myjava”
(2)运行程序:
输入命令:
“javaHelloWorld”
(3)参照以上运行Helloworld的运行方法,分别在CMD中运行选择、顺序、循环结构的程序,并截图附在实验报告中。
8、检查分析实验结果。
七、思考题
1、为什么需要设置Java环境变量?
2、综合运行循环、顺序和选择三种程序控制结构,完成更为复杂的程序。
八、实验报告
见学校的实验报告书内容。
九、其它说明
12
实验二:
类的使用
实验学时:
2
实验类型:
验证
实验要求:
必修
1、实验目的
建立基于实际问题的类,熟练掌握面向对象程序设计,类是面向对象设计中的一个重要概念,通过创建一个类和对象,了解类与对象的关系,并且掌握Java的继承机制和多态的方法。
二、实验内容
完成实验指导书中第三章的实验内容
三、实验原理、方法和手段
从面向对象程序设计的方法出发,从类的构造、域、成员方法和构造方法的定义,对象的创建,方法的调用,接口的特点和实现,类的继承和方法的多态几个角度,熟练掌握使用Java进行面向对象程序设计的主要方法和实现过程。
四、实验组织运行要求
该实验以学生自主训练为主的开放模式组织教学
五、实验条件
PC机,jdk1.5.0,eclipcs3.2
六、实验步骤
1.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。
(1)新建项目,命名为class
13
新建一个类,命名为Inheritance
程序代码如下:
publicclassInheritance{
publicstaticvoidmain(String[]args){
14
SubClasssubC=newSubClass();
subC.doSomething();
}
}
classSuperClass{
intx;
SuperClass(){
x=3;
System.out.println("inSuperClass:
x="+x);
}
voiddoSomething(){
System.out.println("inSuperClass.doSomething()");
}
}
classSubClassextendsSuperClass{
intx;
SubClass(){
super();//调用父类的构造方法
x=5;//super()要放在方法中的第一句
System.out.println("inSubClass:
x="+x);
}
voiddoSomething(){
super.doSomething();//调用父类的方法
System.out.println("inSubClass.doSomething()");
System.out.println("super.x="+super.x+"sub.x="+x);}
}
运行结果截图:
2、类的继承和多态,定义一个Person类,要求如下:
(1)定义三个变量,分别是:
姓名(name),字符串类型(String);性别(sex),字符型(char);
年龄(age),整型(int);
15
(2)定义setName(StringnewName)方法与getName()方法,设置与获取姓名;(3)定义writeOutput()方法,输出姓名。
(4)新建一个Java项目,命名为class2,在class2中新建一个类,命名为Person。
16
17
在Person类中输入如下代码:
publicclassPerson{
privateStringname;
publicPerson(){
}
publicPerson(Stringinitialname){
name=initialname;
}
publicvoidsetName(StringnewName){
name=newName;
}
publicStringgetName(){
returnname;
}
publicvoidwriteOutput(){
System.out.println("Name:
"+name);
}
}
(5)在class2中新建一个Java类,命名为Student,从Person类派生新类Student,并增加如下内容:
(1)新增一个String类型的private实例变量stuNumber;
(2)增加方法getStuNumber()与setStuNumber(Stringname);
(3)
重载方法writeOutput(),输出学号与姓名信息。
在Student类中输入如下代码:
publicclassStudentextendsPerson{
StringstuNumber;//新增变量
publicStudent(){
super();/*为什么?
不用有什么影响*/
stuNumber="0";
}
publicStudent(StringinitalName,StringinitialstuNumber){
super(initalName);
stuNumber=initialstuNumber;
}
publicStringgetStuNumber(){
returnstuNumber;
}
publicvoidsetStuNumber(StringnewStuNumber){
stuNumber=newStuNumber;
}
publicvoidwriteOutput(){//重载superclass中的方法
System.out.println("Name:
"+getName());
System.out.println("StudentNumber:
"+getStuNumber());
}
}
}
(6)编写测试程序Java4_1.java对所编写的Student类进行测试,在class2中新建一个Java类,命名为Java4_1。
在Java4_1类中输入如下代码:
publicclassJava4_1{
publicstaticvoidmain(Stringargs[]){
Personp=newPerson();
Students=newStudent();
p.setName("李四");
s.setName("张三");
s.setStuNumber("2220083210000999");
p.writeOutput();/**/
s.writeOutput();
}
}
运行结果截图:
(7)分析继承的特点,以及重载如何实现,多态怎样表现出来的?
3、接口的特点和实现,编写一个接口myInterface。
(1)新建Java项目,命名为myInterface,在myInterface项目中新建一个接口,命名为myInterface。
20
在myInterface接口中输入如下代码:
interfacemyInterface{
inti=4;
intk=5;
voidmyFunc1();
intmyFunc2(intx);
}
(2)新建Java类,命名为Java4_2。
在Java4_2类中输入如下代码:
publicclassJava4_2implementsmyInterface{
intj;
publicvoidmyFunc1()
{
//在使用接口的类中一定要实现接口中的所有抽象方法System.out.println("myFunc1="+i);
}
publicintmyFunc2(inti)
{
System.out.println("func2="+i);
returni;
}
publicstaticvoidmain(Stringsrgs[]){
Java4_2x=newJava4_2();
x.myFunc1();
x.myFunc2(k);
}
}
(3)运行结果截图(分析为什么会得到这样的结果?
):
3、在CMD中编译运行;
(1)运行CMD,在CMD中敲入如图所示代码,在所用电脑的Java工作路径上实现如图所示代码。
22
4、检查分析实验结果。
七、思考题
在Java中如何实现多重继承以及多态。
八、实验报告
见学校的实验报告书内容。
九、其它说明
23
实验三:
简单计算器的Java实现
实验学时:
2
实验类型:
验证
实验要求:
必修
一、实验目的
建立一个简单计算器的Java程序,进一步掌握面向对象程序设计方法,加深了解类这个面向对象程序设计中的重要概念。
二、实验内容
完成实验指导书中第三章的实验内容
三、实验原理、方法和手段
设计简单计算器所需的功能,构建计算器操作界面,实现简单计算器的编写。
四、实验组织运行要求
该实验以学生自主训练为主的开放模式组织教学
五、实验条件
PC机,jdk1.5.0,eclipcs3.2
六、实验步骤
1、编写实验内容代码;
(1)新建Java项目,命名为Calculator:
24
25
26
(2)在Calculator项目下新建两个包,命名为Client和UI,Client包里面存放的是主函数,UI包里面放的是界面文件和控制器:
27
(3)在UI包里面新建一个类文件CalculatorFrame,编写的是界面代码:
在CalculatorFrame类中输入如下代码:
代码见附件一。
28
(4)在UI包里面新建一个类文件ClientContext,编写的是控制代码:
在ClientContext类中输入如下代码:
packageUI;
importjava.util.ArrayList;
importjava.util.List;
importjavax.swing.JOptionPane;
publicclassClientContext{
privateCalculatorFramecalculatorFrame;privateDoublefirst=0.0;
privateDoublenext=0.0;
29
publicvoidsetCalculatorFrame(CalculatorFramecalculatorFrame){this.calculatorFrame=calculatorFrame;
}
doublesum=0;
publicvoidsetNumber(Stringstr){
calculatorFrame.setShow(str);
}
publicvoidsetOpt(Stringopt){
first=calculatorFrame.getShow();
calculatorFrame.setShow("");
}
publicvoidsetAnswer(Stringstr){//按了“=”后,对数据按运算符进行计算next=calculatorFrame.getShow();
//calculatorFrame.setShow(str);
//switch(str){
//
//}
if(calculatorFrame.getOpt()=="+"){
doubleanswer=first+next;
calculatorFrame.setShow(String.valueOf(answer));
}elseif(calculatorFrame.getOpt()=="-"){
doubleanswer=first-next;
calculatorFrame.setShow(String.valueOf(answe