《java程序设计》实验指导书09高职.docx
《《java程序设计》实验指导书09高职.docx》由会员分享,可在线阅读,更多相关《《java程序设计》实验指导书09高职.docx(40页珍藏版)》请在冰豆网上搜索。
《java程序设计》实验指导书09高职
《java程序设计》实验指导书(09高职)
实验一Java实验环境的建立
一、实验目的
1.掌握Java编程环境的搭建过程;
2.掌握Jcreatorpro软件的使用方法;
3.能使用Javadoc文档。
二、实验内容
1.下载并安装JDK1.6,配置JDK环境变量;
2.下载Javadoc压缩包并解压在JDK安装路径下;
3.下载Jcreatorpro4.0并安装和配置使用环境;
4.使用实验环境运行书中实例代码,在屏幕上输出“HelloJava”字符串。
①Javaapplication程序代码如下:
publicclassHelloJava
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("HelloJava!
");
}
}
②Javaapplet程序代码如下:
importjava.awt.*;
publicclassHelloextendsjava.applet.Applet
{
publicvoidpaint(Graphicsg)
{
g.drawString("Hello!
",30,30);
}
}
三、试验要求
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二Java语言程序设计训练
一、实验目的:
1.输入、输出操作实现原理和方法
2.掌握程序流程控制的实现方法
3.掌握数组的定义和操作方法
二、实验内容
4.随机产生20个50~100间的整数,输出这20个数并找出最大数及最小数输出。
5.试编写程序,实现求几何形状(长方形、正方形、圆形)的周长、面积。
(可任选其一)
6.验证书中的例题。
三、试验要求
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验三面向对象的程序设计
(一)
一、实验目的
1.熟悉类的创建方法。
2.掌握对象的声明与创建。
3.能利用面向对象的思想解决一般问题。
二、实验内容
1.以下程序能否通过编译?
上机验证并指明错误原因与改正方法
ClassLocation{
Privateintx,y;
PublicvoidLocation(inta,intb)
{X=a;y=b;}
PublicintgetX(){returnx;}
PublicintgetY(){returny;}
Publicstaticvoidmain(Stringargs[]){
Locationloc=newLocation(12,20);
System.out.println(loc.getX());
System.out.println(loc.getY());}
2. 创建一个图书类,类中包含的属性有:
书名、作者、出版社;包含的方法有:
设置书籍状态,查看书籍状态。
书籍状态有在馆和外借两种。
3.设计一个Birthday类,其成员变量有:
year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。
编写程序测试这个类。
4.(选作)编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输入和显示设计成一个类Person,并作为学生数据操作类Student和教师数据操作类Teacher的基类。
5.验证书中的例题。
三、实验要求
1.事先预习,写出预习报告
2.上机后写出实验报告
实验四面向对象的程序设计
(二)
一、实验目的
1.熟悉类的定义
2.掌握对象的声明、实例化及成员的引用
3.掌握构造方法及实例方法的区别与用法
二、实验内容
1.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。
编写一个测试类,其中有一个修改价格的方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main()方法中输出修改后的汽车信息。
2.设计一个银行帐户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等帐户信息,成员方法包括存款、取款操作。
编写一个java程序,设计一个汽车类Vehicle,包含的属性有车轮的个数wheels和车重weight。
小汽车类Car是Vehicle的子类,包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
3.编写一个java程序,设计一个汽车类Vehicle,包含的属性有车轮的个数wheels和车重weight。
小汽车类Car是Vehicle的子类,包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
4.验证书中的例题。
三、实验要求
1.事先预习,写出预习报告
2.上机后写出实验报告
实验五面向对象综合实验
一、实验目的
1.熟悉类的定义;
2.掌握对象的声明、实例化及成员的引用;
3.掌握构造方法及实例方法的区别与用法。
二、实验内容
多数用户对去银行办理存款、取款等业务并不默生,用户自然感觉到了通过计算机办理业务的方便、快捷,也自然对编写出银行系统程序的程序员发出由衷的敬意。
实际上,当我们具备了面向对象编程的知识以后,我们也能编写出相应的程序。
程序框架如下,将代码补充完整:
packagebank;//创建程序包
importjava.util.*;//引入程序包
classBankCount//定义类
{intid;
Stringname,date;
floatmoney;
publicBankCount(intid,Stringname,Stringdate,floatmoney)//构造方法
{//方法体
}
}
classBCOption
{Vectorvec=newVector();//对象声明与实例化
staticintcount=0;//类中静态变量的定义
publicvoidkaihu(BankCountbc)//方法体,实现开户功能//实例方法
{
}
publicvoidmoneyOut(intid,floatoutmoney)//方法体,实现取钱功能
{
}
publicvoidmoneyIn(intid,floatinmoney)
{//方法体,实现存钱功能
}
publicvoidquery(intid)
{//方法体,查询并输出账户信息
}
publicstaticvoidmain(Stringargs[])
{//实现账户的相关操作
}}
三、实验要求
1、根据题目要求完成程序中没有完成的模块。
2、写好上机报告。
实验六异常处理
一、实验目的
1.熟悉异常的抛出与捕获的含义;
2.掌握异常捕获与处理的方法;
3.能自定义异常。
二、实验内容
现在多数学校的成绩管理都由计算机进行管理,这就需要有相应的应用程序。
编写成绩管理应用程序,其中有成绩录入模块,成绩录入过程中,难免出现录入数据的类型出现错误,或录入的成绩不在合理的范围。
在成绩录入过程中,若出现上述错误,程序应该如何处理。
程序框架如下,将代码补充完整:
class负分异常extendsException//当录入了负分时。
此处应用了自定义异常
{
}
class高分异常extendsException//当录入分超过100时。
应用了自定义异常
{
}
publicclassExceptionDemo
{
staticfinalintnumber=2;
intscore[]=newint[number];
publicvoid检查分数(int分数)throws负分异常,高分异常//下面方法中判断如果录入的成绩不合理,则抛出异常,但本方法并不处理异常,仅声明了异常
{if(分数>100)thrownew高分异常();//通过throw,人工抛出异常
if(分数<0)thrownew负分异常();
}
publicvoid录入成绩()
{inti;
for(i=0;i{try{
score[i]=Integer.parseInt(JOptionPane.showInputDialog("请输入第"+(i+1)
+"个同学的成绩"));
}catch(NumberFormatExceptione)//在try{…….}catch间的语句中若产生异常,则捕获异常,直接进行异常处理
{
}
try{检查分数(score[i]);//在检查分数模块中,可能产生高分异常对象,也可能产生低分异常对象,根据不同情况,进行不同处理
}catch(高分异常e){
}catch(负分异常e){
}
}
}
publicvoid输出成绩()
{
}
publicstaticvoidmain(Stringarg[])
{
ExceptionDemodemo=newExceptionDemo();
demo.录入成绩();
demo.输出成绩();
}
}
三、实验要求
1、根据题目要求完成程序中没有完成的模块。
2、写好上机报告。
实验七:
图形用户界面设计
(一)
一、实验目的:
1.巩固图形用户界面设计的方法
2.掌握事件处理的设计方法
二、实验内容:
1.绘制如下形式的图形界面,要求:
窗体背景为蓝色,中间为黄色方格。
2.编写程序,绘制如下格式的界面:
3.编写程序,创建如下图所示的图形界面(不必为组件提供功能)。
4.验证书中例题。
三、实验要求:
1.事先预习,写出预习报告
2.上机验证后写出实验报告
实验八图形用户界面设计
(二)
一、实验目的
1.掌握各种组件的用法;
2.掌握布局管理器的布局方式;
3.掌握事件处理机制。
二、实验内容
1.验证书中例题。
2.试创建如下图所示的图形用户界面,颜色列表框为红色、绿色和蓝色。
3.编写程序,创建如下图所示的图形界面。
(要求实现功能)
三、实验要求
1、根据题目要求完成各程序。
2、写好上机报告。
实验九图形用户界面设计(三)
一、实验目的
1.掌握各种组件的用法;
2.掌握布局管理器的布局方式;
3.掌握事件处理机制。
4.熟悉绘图类的基本用法
5.掌握绘图类中常用的绘图方法
二、实验内容
1.验证书中例题:
P200页例6.5、P209页例6.6。
2.设计一个程序,程序执行时,随机产生一条直线、一个矩形、一个椭圆,并且每个图形的颜色不同。
(说明:
可利用系统类Math中的静态方法random(),该方法产生一个0~1间的小数)
3.设计如下形式的窗口,并实现窗口的关闭功能:
4.设计如下形式的窗口,并实现窗口的关闭功能:
三、实验要求
1、根据题目要求完成各程序。
2、写好上机报告。
实验十:
图形用户界面综合设计
一、实验目的:
1、巩固图形用户界面设计的方法
2、掌握事件处理的设计方法
二、实验内容:
案例学生信息注册界面设计解析
多数学校的学生档案信息都由计算机进行管理,在编写的档案管理应用程序中,有档案信息录入模块,该模块的功能是在图形化的界面下,用户把信息输入到计算机中。
录入界面的大致样式及组件名称如图。
图5-1信息录入界面
设计上述程序界面并实现相应的功能,程序框架如下,补全代码:
publicclassInputDataimplementsActionListener
{
Framef;//声明框架对象
Labell1,l2,l3,l4;//声明标签对象
TextFieldt;//声明文本行对象
Checkboxr1,r2;//声明单选钮对象
CheckboxGroupg;//声明组对象
Checkboxc1,c2,c3;
Choicech;//声明选择框对象
Buttonb;//声明按钮对象
TextAreata;//声明文本区对象
Panelp1,p2,p3,p4,p5;//声明面板对象
inti=0;
publicInputData()
{//对象实例化;
f=newFrame("信息录入");
ch.add("济南");//添加选择项
p1=newPanel();
p1.setLayout(newFlowLayout(FlowLayout.LEFT));//设定面板布局样式
p1.add(l1);//面板中加入组件
f.setLayout(newGridLayout(2,1));//设定框架布局样式
f.addWindowListener(newWindowAdapter(){//注册事件监听器,匿名类实现接口
});
f.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)//事件处理接口实现
{//把输入内容显示到文本区中;
}
publicstaticvoidmain(Stringargs[])
{
newInputData();
}
}
三、实验要求:
1、事先预习,写出预习报告
2、上机验证后写出实验报告
实验十一多线程技术
一、实验目的
1.理解多线程编程技术的概念;
2.掌握多线程创建的方法;
3.掌握多线程在实际应用开发程序中的使用。
二、实验内容
案例动画显示解析
动画显示是多媒体技术的一个主要方面,如今动画制作也是日常工作中经常要用到的,实现动画技术的方法也非常多,利用多线程的技术方法可以解决动画显示的一些实现问题,
动画原理:
在Applet中加载若干幅表现不同状态的图片,利用线程按顺序切换图片实现动画效果。
下载图片时,使用了图像跟踪技术。
尝试实现功能,补全代码。
1、程序代码:
importjava.awt.*;
importjava.applet.Applet;
publicclassAnimationextendsAppletimplementsRunnable
{Imageimages[];//图像数组
MediaTrackertracker;//图像跟踪对象变量
intindex=0;//图像索引
Threadanimator;//线程变量
ImageoffScrImage;//用于图像缓冲的图像对象变量
GraphicsoffScrGC;//图像对象变量
inttotal=5;//图片总数
publicvoidinit()
{tracker=newMediaTracker(this);//建立图像跟踪对象
images=newImage[total];//建立数组
try{
offScrImage=createImage(getWidth(),getHeight());//建立用于缓冲的对象
offScrGC=offScrImage.getGraphics();//取出图像对象
offScrGC.setColor(getBackground());
offScrGC.fillRect(0,0,getWidth(),getHeight());//用背景色画矩形
}catch(Exceptione){e.printStackTrace();}
for(inti=0;i{
}
try{
tracker.waitForAll();//等待全部图像载入完
}catch(InterruptedExceptione){}
}
publicvoidstart()//在缓冲区准备好第一幅图并建立线程、启动线程
{
}
publicvoidrun()
{
}
try{
animator.sleep(200);//休眠等待200毫秒
}catch(InterruptedExceptione){
}
repaint();//调用重画方法
}
}
publicvoidpaint(Graphicsg)
{
}
publicvoidupdate(Graphicsg)//重写update()方法防止闪烁
{
}
publicvoidstop()
{
if(animator!
=null)
animator=null;//清除对象,停止线程
}
}
2、Applet程序运行,编写Html文件:
三、实验要求:
1、事先预习,写出预习报告2、上机验证后写出实验报告
实验十二:
Applet程序设计
一.实验目的:
1.熟悉Applet程序的编写与运行
2.掌握HTML文件与Applet间参数的传递
3.掌握在Applet中输出图像与声音
二.实验内容:
1.设计用户邮箱登录界面。
(如下所示)
2.请编写一个Applet,用它的HTML文件中给出的两个整型参数作加数,求它们的和,并显示结果。
3.准备好几个音乐文件和一幅图像,编写一个Applet,显示一幅图像并添加“播放”、“循环”、“停止”三个按钮,用于控制音乐文件的播放。
4.验证书中例题。
三、试验要求
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验十三输入输出
(一)
一、实验目的:
1.理解Java输入输出的实现机制;
2.掌握常用的输入输出类的功能及方法;
3.掌握常用数据类型针对文件的输入输出方式。
二、实验内容:
1.double型数组中保存有如下数据:
1.23,69.88,34.45,67.98,2345.67。
将数据以二进制形式保存到文件中去。
2.编程将以上数据以可打印形式保存到文件中去。
3.读入网页的内容,并以可读形式将其输出到一个文件中去。
三、试验要求:
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验十四输入输出
(二)
一、实验目的
1.理解Java输入输出的实现机制;
2.掌握常用的输入输出类的功能及方法;
3.掌握常用数据类型针对文件的输入输出方式。
二、实验内容
案例记事本程序设计解析
我们经常使用记事本来记录、保存一些数据、文字,或者打开以前创建的文件进行操作。
把我们编辑好的内容存入文件就是输出。
而打开原有的文件的内容则是输入。
程序主界面如图1所示。
当点击打开按钮则弹出打开文件对话框如图2所示。
当选择文本文件后,将文本文档的内容显示在文本区中如图3所示。
同理,当在文本区中编辑好内容后,点击保存按钮,则弹出文本保存对话框,选择保存位置后可将内容保存到文件中去。
试尝试实现此功能。
图1记事本界面图2打开文件对话框图3显示文件内容
源代码如下,补全代码:
1.界面程序:
importjava.awt.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
publicclassFrame1extendsJFrameimplementsActionListener
{
JPanelcontentPane;
JScrollPanejScrollPane1=newJScrollPane();
BorderLayoutborderLayout1=newBorderLayout();
JPaneljPanel1=newJPanel();
JTextAreajTextArea1=newJTextArea();
JButtonjButton1=newJButton();
JButtonjButton2=newJButton();
//窗口的构造方法
publicFrame1()
{
}
}
//jbInit()方法完成界面的初始化设置
privatevoidjbInit()throwsException
{
}
//保存、打开两个按钮的事件处理方法
publicvoidactionPerformed(ActionEvente)
{//如果用户点击保存按钮
}}
//如果用户点击打开按钮
if(e.getSource()==jButton2)
{
jTextArea1.setText("");
JFileChooserfc=newJFileChooser();
try{
}
}
catch(Exceptionex){
System.out.print(ex.toString());
}
}
}
}
2.主程序:
importjava.awt.*;
importjavax.swing*;
publicclassApplication1
{
publicApplication1()
{
Frame1frame=newFrame1();
//使窗口居中
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
DimensionframeSize=frame.getSi