《高级程序设计JAVA》实验大纲.docx
《《高级程序设计JAVA》实验大纲.docx》由会员分享,可在线阅读,更多相关《《高级程序设计JAVA》实验大纲.docx(17页珍藏版)》请在冰豆网上搜索。
《高级程序设计JAVA》实验大纲
《高级程序设计-JAVA》实验大纲
张明敏
第二,三周
一.实验目的
1.了解JDK的安装与使用
2.学习Java Applet
3.学习JavaApplication
二.实验内容与步骤
1.从SUN公司网站上下载免费工具JDK1.3并安装,安装完成后,设置路径到安装的子目录,如JDK安装在c:
\jdk1.3下,则在dos提示符下键入如下命令:
path=c:
\jdk1.3\bin
2.利用JDK工具完成如下Application程序,编辑并运行成功。
importjava.io.*;
publicclassMyJavaApplication
{
publicstaticvoidmain(Stringargs[])
{
System.out.println(“Hello,JavaWorld!
”);
}
}
3.2.利用JDK工具完成如下Applet程序,编辑并运行成功。
importjava.awt.Graphics;
importjava.applet.Applet;
publicclassMyJavaAppletextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawString(“Hello,JavaAppletWorld!
”,10,20);
}
}
三.实验要求
1.整理上机结果和体会,总结Java Applet和Application开发调试经验。
2.完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
第四,五周
一.实验目的
1.熟悉和理解Java中的数据类型,运算符,表达式,程序结构等内容
2.学会运用已经学过的内容,编制简单的程序
二.实验内容与步骤
1.理解与实现以下的程序:
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassgetDoubleextendsAppletimplementsActionListener
{
Labelprompt;
TextFieldinput;
doubled=0.0;
publicvoidinit()
{
prompt=newLabel("Inputadoublevarible:
");
input=newTextField(6);
add(prompt);
add(input);
input.addActionListener(this);
}
publicvoidpaint(Graphicsg)
{
g.drawString("Youinputdata:
"+d,10,50);
}
publicvoidactionPerformed(ActionEvente)
{
d=Double.valueOf(input.getText()).doubleValue();
repaint();
}
}
2.编写程序输出用户指定数据的所有素数因子
三.实验要求
a)整理上机结果和体会。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
第六,七周
一.实验目的
1.掌握类的定义和使用
2.掌握对象的声明和不同访问属性的成员方问方式
3.掌握构造函数和析构函数的使用和执行过程
二.实验内容与步骤
i.理解与实现以下程序:
publicclassUsePhoneCard
{
publicstaticvoidmain(Stringargs[])
{
PhoneCardmyCard=newPhoneCard(12345678,1234,50.0,"300");
System.out.println(myCard.toString());
}
}
classPhoneCard
{
longcardNumber;
privateintpassword;
doublebalance;
StringconnectNumber;
booleanconnected;
PhoneCard(longcn,intpw,doubleb,Strings)
{
cardNumber=cn;
password=pw;
if(b>0)
balance=b;
else
System.exit
(1);
connectNumber=s;
connected=false;
}
booleanperformConnection(longcn,intpw)
{
if(cn==cardNumber&&pw==password)
{
connected=true;
returntrue;
}
else
{
connected=false;
returnfalse;
}
}
doublegetBalance()
{
if(connected)
returnbalance;
else
return-1;
}
voidperformDial()
{
if(connected)
balance-=0.5;
}
publicStringtoString()
{
Strings="ConnectedPhoneNumber:
"+connectNumber+
"\nCardNumber:
"+cardNumber+
"\nCardPassword:
"+password+
"\nThebalance:
"+balance;
if(connected)
return(s+"\nThephoneisconnected");
else
return(s+"\nThephoneisdisconnected");
}
}
2.改写本节例子UsePhoneCard成为图形界面的Applet程序,接受用户输入的卡号,密码,金额和接入号码,创建PhoneCard类的对象并输出这张电话卡的有关信息。
三.实验要求
a)整理上机结果和体会。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
第八,九,十,十一周
一.实验目的
1.掌握类继承与派生的定义和使用
2.熟悉继承的访问控制机制
二.实验内容与步骤
1理解与实现以下程序:
publicclassTestHiddenField
{
publicstaticvoidmain(Stringargs[])
{
D200_Cardmy200=newD200_Card();
my200.balance=50.0;
System.out.println("Fatherbalance:
"+my200.getBalance());
if(my200.performDial())
System.out.println("Sonbalance:
"+my200.balance);
}
}
abstractclassPhoneCard
{
doublebalance;
abstractbooleanperformDial();
doublegetBalance()
{
returnbalance;
}
}
abstractclassNumber_PhoneCardextendsPhoneCard
{
longcardNumber;
intpassword;
StringconnectNumber;
booleanconnected;
booleanperformConnection(longcn,intpw)
{
if(cn==cardNumber&&pw==password)
{
connected=true;
returntrue;
}
else
{
connected=false;
returnfalse;
}
}
}
classD200_CardextendsNumber_PhoneCard
{
doubleadditoryFee;
doublebalance;
booleanperformDial()
{
if(balance>(0.5+additoryFee))
{
balance-=0.5+additoryFee;
returntrue;
}
else
returnfalse;
}
}
2.理解与实现以下程序:
publicclassTestOverLoad
{
publicstaticvoidmain(Stringargs[])
{
D200_Cardmy200=newD200_Card();
my200.balance=50.0;
System.out.println("Fatherbalance:
"+my200.getBalance());
if(my200.performDial())
System.out.println("Sonbalance:
"+my200.balance);
}
}
abstractclassPhoneCard
{
doublebalance;
abstractbooleanperformDial();
doublegetBalance()
{
returnbalance;
}
}
abstractclassNumber_PhoneCardextendsPhoneCard
{
longcardNumber;
intpassword;
StringconnectNumber;
booleanconnected;
booleanperformConnection(longcn,intpw)
{
if(cn==cardNumber&&pw==password)
{
connected=true;
returntrue;
}
else
{
connected=false;
returnfalse;
}
}
}
classD200_CardextendsNumber_PhoneCard
{
doubleadditoryFee;
doublebalance;
booleanperformDial()
{
if(balance>(0.5+additoryFee))
{
balance-=0.5+additoryFee;
returntrue;
}
else
returnfalse;
}
doublegetBalance()
{
returnbalance;
}
}
3.根据下面的要求编程实现复数类ComplexNumber
(1)复数类ComplexNumber的属性
m_dRealPart:
实部,代表复数的实数部分
m_dImaginPart:
虚部,代表复数的虚数部分
(2) 复数类ComplexNumber的方法
ComplexNumber() 构造函数,将实部,虚部都置为0
ComplexNumber(doubler,doubleI) 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化
GetRealPart() 获取实部
GetImaginaryPart() 获取虚部
SetRealPart(doubled) 设置实部
SetImaginaryPart(doubled) 设置虚部
ComplexAdd(ComplexNumberc) 复数相加
ComplexAdd(doublec) 复数相加
ComplexMinus(ComplexNumberc) 复数相减
ComplexMinus(doublec) 复数相减
ComplexMulti(ComplexNumberc) 复数相乘
ComplexMulti(doublec) 复数相乘
ToString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式
四.实验要求
a)整理上机结果和体会,总结Java Applet和Application开发调试经验。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
第十二,十三周
一.实验目的
1.学习Java的工具类与基本算法
2.根据已学知识实现程序
二.实验内容与步骤
1.理解与实现以下程序:
importjava.applet.*;
importjava.awt.*;
publicclassLifeCycleextendsApplet
{
privateintInitCnt;
privateintStartCnt;
privateintStopCnt;
privateintDestroyCnt;
privateintPaintCnt;
publicLifeCycle()
{
InitCnt=0;
StartCnt=0;
StopCnt=0;
DestroyCnt=0;
PaintCnt=0;
}
publicvoidinit()
{
InitCnt++;
}
publicvoiddestroy()
{
DestroyCnt++;
}
publicvoidstart()
{
StartCnt++;
}
publicvoidstop()
{
StopCnt++;
}
publicvoidpaint(Graphicsg)
{
PaintCnt++;
g.drawLine(20,200,300,200);
g.drawLine(20,200,20,20);
g.drawLine(20,170,15,170);
g.drawLine(20,140,15,140);
g.drawLine(20,110,15,110);
g.drawLine(20,80,15,80);
g.drawLine(20,50,15,50);
g.drawString("Init()",25,213);
g.drawString("Start()",75,213);
g.drawString("Stop()",125,213);
g.drawString("Destroy()",175,213);
g.drawString("Paint()",235,213);
g.fillRect(25,200-InitCnt*30,40,InitCnt*30);
g.fillRect(75,200-StartCnt*30,40,StartCnt*30);
g.fillRect(125,200-StopCnt*30,40,StopCnt*30);
g.fillRect(175,200-DestroyCnt*30,40,DestroyCnt*30);
g.fillRect(235,200-PaintCnt*30,40,PaintCnt*30);
}
}
2.编写一个程序,要求能完成排序和查找,分别使用链表,数组和二叉树等数据结构,比较各种方法的优缺点。
三 实验要求
c)整理上机结果和体会,总结Java Applet和Application开发调试经验。
d)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。
第十四,十五周
一.实验目的
1.理解java中图形界面设计的基本元素与方法
2.用已学知识编制程序
二.实验内容与步骤
1.理解与实现以下程序:
importjava.applet.Applet
importjava.awt.*
publicclassShowAnimatorextendsApplet
{
Image[]m_Images;
InttotalImages=18;
IntcurrentImage=0;
Publicvoidinit()
{
//加载当前目录下的images下的img001.gif至Img0018.gif
m_Images=newImage[totalImages];
for(intI=0;Im_Images[I]=getImage(getDocumentBase(),“images\\Img00”+(I+1)+”.gif”);
}
publicvoidstart()
{currentImage=0;//从第一幅开始
}
publicvoidpaint(Graphicsg)
{g.drawImage()
sleep();
repaint()
}
}
2以下工作中,任选一个完成:
程序:
1.开发一个“学生成绩管理”的应用程序,可进行数据记录的增加,删除,修改,排序
2.彩色图案竞猜游戏
3.拼图游戏
报告:
Java与基于电子商务的某项技术(5000字以上)
三.实验要求
a)整理上机结果和体会,总结Java Applet和Application开发调试经验。
b)完成实验报告。
在每次上课之前按报到的学号立即上交email或磁盘。