Java程序设计实习指导书.docx
《Java程序设计实习指导书.docx》由会员分享,可在线阅读,更多相关《Java程序设计实习指导书.docx(110页珍藏版)》请在冰豆网上搜索。
![Java程序设计实习指导书.docx](https://file1.bdocx.com/fileroot1/2023-2/2/ea098de2-1433-4db8-a6b1-d38bf9aceec4/ea098de2-1433-4db8-a6b1-d38bf9aceec41.gif)
Java程序设计实习指导书
第一章Java语言实验机器与环境
1.1计算机的硬件配置
PC系列微机,包括286、386、486、奔腾及各种兼容机,要求内存为64M以上,一个硬盘驱动器和一个软盘驱动器。
80列字符监视器。
配备鼠标器。
1.2计算机的软件配置
DOS6.22或Windowsxp、Windows2000。
安装软件jdk-1_5_0-windows-i586.exe
1.3JDK1.5.0的安装和设置
1.3.1下载jdk-1_5_0-windows-i586.exe
JDK开发工具包可以免费下载。
下载网址——
下载如下文件:
jdk-1_5_0-windows-i586.exe。
1.3.2安装jdk-1_5_0-windows-i586.exe
由于目前大多数用户使用的是Windowxp操作系统,所以我们以在Windowxp操作系统上安装jdk-1_5_0-windows-i586.exe为例,说明安装jdk-1_5_0的过程。
jdk-1_5_0-windows-i586.exe是一个自解压文件,双击它就可以解压缩,同时进行安装工作,双击jdk-1_5_0-windows-i586.exe,文件会自动解压缩,如图2.1所示。
图1.1jdk-1_5_0-windows-i586.exe的解压过程
解压缩工作完成之后,会出现JDK1.5.0的许可协议,如图1.2所示
图1.2选择许可协议界面
点击“next”按钮,出现如图1.3所示对话框,用户可选择要安装的组件及选择安装目录。
点击“change”,可改变安装目录。
图1.3组件的选择
选好后,点击“next”按钮,开始安装,如图1.4所示。
图1.4安装进度界面
运行环境设置及安装,如图1.5所示。
图1.5安装过程界面
单击“Next”按钮,出现如图1.6所示对话框,选择浏览器,选中后,单击“Next”按钮继续安装。
图1.6选择浏览器界面
最后出现如图1.7所示界面,单击“finish”按钮结束安装。
图1.7安装结束界面
1.4配置环境变量
1.方法一
平台为Windows2000时,需要修改系统根目录下的autoexec.bat文件。
使用记事本或其它文本编辑器打开文件autuexec.bat,在该文件的最后增加如下两行
SETPATH=%CLASSPATH%;.;C:
\ProgramFiles\Java\jdk1.5.0_04\jre\lib\rt.jar
SETPATH=%PATH%;C:
\ProgramFiles\Java\jdk1.5.0_04\bin;
其中,环境变量path和classpath分别指定了JDK命令搜索路径和Java类路径。
在这里我们假设JDK安装在C:
\ProgramFiles\Java\jdk1.5.0_04目录下,JDK的所有命令都放在C:
\ProgramFiles\Java\jdk1.5.0_04\bin目录下。
设置环境变量path的作用是使DOS操作系统可以找到JDK命令。
设置环境变量classpath的作用是告诉Java类装载器到哪里去寻找第三方提供的类和用户定义的类。
JVM和其它JDK工具通过依次搜索平台库、库扩展和类路径来查找类。
如果用户在安装jdk1.5.0时,选择了另外的JDK安装路径,则环境变量path和classpath要作相应的调整。
2.方法二
右单击“我的电脑”,选择“属性”,出现如图1.7对话框,选择“高级”选项卡,选择其中的“环境变量”,出现如图1.8对话框,在系统变量中建立或设置环境变量。
在“变量名”对话框中输入环境变量名,在“变量值”对话框中输入相关值得路径。
设置过程如图1.9、图1.10所示,设置完成后,单击“确定”完成设置。
图1.7系统属性对话框
图1.8设置环境变量
图1.9新建环境变量path
图1.10新建环境变量classpath
1.5测试安装
环境变量设置完成后,重新启动计算机,在DOS窗口下,敲入javac并回车后,如果出现Javac的用法参数提示信息,则安装正确。
否则要检查环境变量设置是否正确。
1.6使用EclipseIDE编译与运行程序
使用EclipseIDE软件可以很方便地进行编译和运行程序的工作,但如果程序有交互的功能,还需要安装其它插件。
1.下载eclipse-SDK-3.2-win32.zip到你的计算机
将文件eclipse-SDK-3.2-win32.zip拷贝到C:
盘根目录下,然后右单击该文件将其解压到当前文件夹下,如图1.11所示。
解压后的目录结构如图1.12所示。
图1.11解压操作界面
图1.12解压后的目录结构图
2.测试安装
双击C:
\eclipse\eclipse.exe文件,可看到如图1.13所示启动界面。
图1.13eclipse启动界面
改变工作目录如图1.14所示。
图1.14选择工作区界面
选择好工作空间以后,单击“确定”按钮,如果能看到如图1.15所示界面,则安装成功。
图1.15选择工作区界面
第二章JDK开发工具简介及Java程序开发步骤
在jdk1.5.0的bin目录下,存放着Java2提供的一些可执行程序,为我们开发和测试Java程序提供了工具。
在我们的学习中,常用的JDK开发工具有如下几种:
(1)javac.exe:
Java语言的编译器。
(2)java.exe:
Java程序执行引擎。
(3)appletviewer:
小应用程序浏览器。
在使用Eclipse之前,必须熟练掌握这些工具的用法。
2.1编辑运行Java程序
单击“文件新建项目…”,如图2.1所示。
图2.1新建项目界面
选择了项目后出现如下界面,选择“Java项目”后单击“下一步”。
图2.2新建Java项目界面
在图2.3所示界面中,在“项目名”一栏中,填入“SimpleJavaProgram”其它使用缺省值。
单击下一步,出现如图2.4所示界面。
图2.3新建Java项目界面
图2.4新建Java项目界面
在如图2.4所示界面中单击“库”选项卡,出现如图2.5所示界面,确保JRE设置没问题。
单击“完成”按钮。
图2.5新建Java项目界面
2.2在Eclipse中运行java程序
在包资源管理器中右单击“SimpleJavaProgram”项目如图2.6所示,点击“新建类…”,弹出如图2.7所示界面。
图2.6新建Java类界面
图2.7新建Java类界面
在图2.7所示界面中在“名称”一栏中填写“HelloChina”,其它设置如图2.7所示。
单击“完成”。
在包资源管理器中查看源程序如图2.8及图2.9所示。
图2.8包资源管理器中结构图
图2.9代码视图
在包资源管理器中右单击“HelloChina.java”,如图2.10所示点击“运行方式Java应用程序…”,运行结果如图2.11所示。
图2.10运行界面
图2.11运行界面
第三章实验内容
实验一熟悉Java的编程环境
1.实验目的
(1)掌握使用JDK开发Java程序的步骤。
(2)掌握Java程序的基本语法;熟练运用java的三个工具编译或运行程序。
2.实验内容
实验题1按下面步骤进行实验
(1)开机后,创建目录d:
\java。
把这个目录作为我们的工作目录。
我们的Java源程序、编译后的字节码文件和用来运行JavaApplet的html文件都放在这个目录中。
(2)启动EditPlus或其它编辑软件编写源代码.
publicclassArithmaticTest
{publicstaticvoidmain(Stringargs[])
{inta=9;intb=-a;
inti=0;intj=i++;
intk=++j;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
}
}
如果你使用的是EditPlus,那么可以看到如图3.1的编辑结果:
图3.1EditPlus编辑器界面
(3)保存程序。
注意:
保存源程序时,程序名要与主类名一致。
所以用ArithmaticTest.java作为本程序的文件名。
如果用记事本编写程序,因记事本默认的扩展名是.txt,所以要给文件名加引号后保存。
把该文件保存到目录D:
\java中。
(4)编译程序
图3.2application程序的编译界面
如果编译成功,则在D:
\java目录中生成字节码文件ArithmaticTest.class。
如果不成功,则显示错误信息,用户可修改错误,
(5)运行程序
图3.3application程序的运行界面
(6)观察程序的运行结果
实验题2用ECLIPSE开发实现HelloWorld!
程序。
实验题3求解一元二次多项式的根:
将不同的a,b,c值硬编码到程序中,测试你的程序,观察输出结果。
如:
a=1,b=2,c=1
a=0,b=1,c=1
a=1,b=1,c=1
……
实验题4排序和查找
给定一个数组:
inta[]={28,39,49,78,23};//你可以用任意的测试数据
请对数组中的元素进行排序。
给定一个数字x=49,
请在排序后的数组中查找该元素。
要求:
*最好使用折半查找
*排序和查找自己写函数实现,不要使用标准API。
实验二面向对象编程
(1)
1.实验目的
掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。
2.实验内容
实验题1阅读如下程序,完成思考题。
classCCircle
{doublepi;
doubleradius;
doublegetRadius()
{returnradius;
}
voidsetCircle(doubler,doublep)
{pi=p;
radius=r;
}
}
publicclassEx2_1
{publicstaticvoidmain(Stringargs[])
{CCirclecir1=newCCircle();
cir1.setCircle(2.0,3.1416);
System.out.println("radius="+cir1.getRadius());
}
}
[基本要求]运行程序并观察运行结果。
[思考问题]试述程序中主要语句的作用。
实验题2定义一个类MyProgram,包含两个属性:
一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr()和getStr();将这两个属性转变为字符串的方法是toStr()。
编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。
[基本要求]编写完整程序。
[思考问题]试述程序中各个方法的作用。
实验三面向对象编程
(2)
1.实验目的
(1)掌握Java中的继承机制及包(package)、接口(interface)等的设计方法。
(2)掌握static、this、super等关键字的使用。
2.实验内容
实验题1有两个类:
MobileManagement和Mobile,分别描述如图3.7所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。
它们代码如下。
运行MobileManagement.java,你应该看到如图3.8所示结果。
[基本要求]在空白处填写相关代码并修改上面程序,使程序能够显示两部手机的价格和数量,运行结果如图3.9所示。
E365,1780RMBM330,1450RMB
图3.4手机及价格图
图3.5运行结果图
程序Mobile.java源代码:
publicclassMobile{
/**Holdsthenameofthemobile.*/
privateStringname;
/**Holdsthepriceofthemobile.*/
privatefloatprice;
/**Createsanewmobileobject.*/
publicMobile(Stringname,floatprice){
this.name=name;
this.price=price;
}
/**Getsthenameofthemobile.*/
publicStringgetName(){
returnname;
}
/**Getsthepriceofthemobile.*/
publicfloatgetPrice(){
returnprice;
}
}
程序MobileManagement.java源代码:
importjavax.swing.JOptionPane;
publicclassMobileManagement{
/**Definestheentrypointoftheapplication.*/
publicstaticvoidmain(String[]args){
//Createstwomobilephoneobjects.
Mobilemobile1=newMobile("E365",1780);
Mobilemobile2=newMobile("M330",1450);
//Displaysthetwomobilephonesinadialogbox.
JOptionPane.showMessageDialog(null,"Mobilephones:
\n\n"+mobile1.getName()+"\n"+mobile2.getName());
}
}
图3.6运行结果图
实验题2有四个类,主类Store在包cn.edu.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包cn.edu.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类,Product和Store代码如下:
Store.java源代码:
packagecn.edu.nwsuaf.jp.p4;
importjava.util.Arrays;
importjavax.swing.JOptionPane;
importcn.edu.nwsuaf.jp.p4.data.Mobile;
importcn.edu.nwsuaf.jp.p4.data.Mp3Player;
importcn.edu.nwsuaf.jp.p4.data.Product;
publicclassStore{
//**Definestheentrypointoftheapplication.*/
publicstaticvoidmain(String[]args){
//Createstwomobilephoneobjects.
Mobilemobile1=newMobile("ChinaMobile","E365",1780);
Mobilemobile2=newMobile("ChinaMobile","M330",1450);
Mp3Playerplayer1=newMp3Player("MeizoX3",256,399);
Mp3Playerplayer2=newMp3Player("MeizoE5",512,580);
Mp3Playerplayer3=newMp3Player("XliveXMMP3Play",
256,930);
Product[]products={mobile1,mobile2,player1,player2,player3};
Arrays.sort(products);
Stringtext="";
for(intindex=0;indextext+=products[index].toString()+"\n";
//Displaysthetwomobilephonesinadialogbox.
JOptionPane.showMessageDialog(null,"Theproducts
are:
\n\n"+text+"\nThereare"+Product.getCount()
+"products.");
}
}
Product.java源代码:
packagecn.edu.nwsuaf.jp.p4.data;
publicabstractclassProductimplementsComparable{
/**Holdsthenameoftheproduct.*/
protectedStringname;
/**Holdsthepriceoftheproduct.*/
protectedfloatprice;
/**Holdsthenumberofproducts.*/
protectedstaticintcount;
/**Createanewproductobject.*/
protectedProduct(Stringname,floatprice){
this.name=name;
this.price=price;
++count;
}
/**Getsthenameoftheproduct.*/
publicStringgetName(){
returnname;
}
/**Getsthepriceoftheproduct.*/
publicfloatgetPrice(){
returnprice;
}
/**Getsthenumberofproducts.*/
publicstaticintgetCount(){
returncount;
}
/**Comparesthisproductwiththegivenproduct.*/
publicintcompareTo(Productproduct){
returnnewFloat(product.getPrice()).compareTo(price);
}
}
[基本要求]设计类Mobile和类MP3Player,使它们和类Product、Store组成一个完整的程序,且运行结果如图3.10所示。
图3.7运行结果图
实验题2用LIST存放对象。
利用面向对象的思想,创建以下类:
Person类,包含Person的姓名和身份证号码。
Student类,首先是一个Person,除此之外,包含学生的语文、数学、英文课的成绩。
Teacher类,首先是一个Person,除此之外,包含教师的工资。
①请创建
姓名张三
身份证号12310000
的Person对象。
②请创建
姓名李四
身份证号12320000
语文:
89
数学:
93
英文:
94
的Student对象。
③请创建
姓名王五
身份证号12330000
工资:
3000
的Teacher对象。
④将这些对象存放在List中,并打印出List中存放的内容。
实验题3用SET存放对象。
利用面向对象的思想,创建以下类:
Person类,包含Person的姓名和身份证号码。
①请创建三个对象,放在HashSet中:
姓名张三
身份证号12310000
姓名李四
身份证号12320000
姓名王五
身份证号12330000
②再创建对象:
姓名张三
身份证号12310000
能放入到刚才创建的HashSet中么?
③把集合中的元素打印出来。
④用TreeSet存放上面三个人,要求按照身份证号排序,打印出来。
能够把上面步骤②中创建的对象放到这个TreeSet中么。
[基本要求]使用JavaAPI中的Set相关的技术来完成实验任务。
[技术提示]
●使用HashSet要覆盖hashCode()方法,equals()方法
●打印集合内的元素,要覆盖toString()方法。
●使用TreeSet要实现Comparable接口。
实验题4用Map存放对象
参见Exp3.4.TXT,里面存放了30个同学的学号和姓名。
给定学生的学号,问该学生在不在名单中,如果在,给出姓名。
[基本要求]使用JavaAPI中的Map相关的技术来完成实验任务。
[技术提示]使用JavaAPI中的Set相关的技术来完成实验任务。
●使用文件操作,读出文件中的学号和姓名;
●学号作为KEY,姓名作为VALUE,放到MAP中;
●从命令行中输入的学号,作为KEY,在MAP中进行检索。
实验四多线程异常处理
1.实验目的
(1)掌握Java的异常处理机制及相关实现方法能够在程序设计中熟练运用异常及相关类及对象;
(2)掌握Java多线程的概念和实现方法;
(3)掌握Java多线程的同步问题;
2.实验内容
实验题1假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。
现有两个顾客,每人都分3次,每次100元将钱到入。
试编写一个程序,模拟实际作业。
程序如下:
classCBank
{privatestaticintsum=0;
publicstaticvoidadd(intn){
inttmp=sum