《高级程序设计-JAVA》实验大纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高级程序设计-JA V A》实验大纲
张明敏
第二,三周
一.实验目的
1.了解JDK的安装与使用
2.学习Java Applet
3.学习Java Application
二.实验内容与步骤
1.从SUN公司网站上下载免费工具JDK1.3并安装,安装完成后,设置路径到安装的子目录,如JDK安装在c:\jdk1.3下,则在dos提示符下键入如下命令:
path = c:\jdk1.3\bin
2.利用JDK工具完成如下Application程序,编辑并运行成功。

import java.io.*;
public class MyJavaApplication
{
public static void main(String args[])
{
System.out.println(“Hello, Java World!”);
}
}
3.2.利用JDK工具完成如下Applet程序,编辑并运行成功。

import java.awt.Graphics;
import java.applet.Applet;
public class MyJavaApplet extends Applet
{
public void paint(Graphics g)
{
g.drawString(“Hello, Java Applet World!”, 10, 20);
}
}
三.实验要求
1.整理上机结果和体会,总结Java Applet和Application开发调试经验。

2.完成实验报告。

在每次上课之前按报到的学号立即上交email或磁盘。

第四,五周
一.实验目的
1.熟悉和理解Java中的数据类型,运算符,表达式,程序结构等内容2.学会运用已经学过的内容,编制简单的程序
二.实验内容与步骤
1.理解与实现以下的程序:
import java.applet.* ;
import java.awt.* ;
import java.awt.event.* ;
public class getDouble extends Applet implements ActionListener
{
Label prompt;
TextField input;
double d = 0.0;
public void init()
{
prompt = new Label("Input a double varible: ");
input = new TextField(6);
add(prompt);
add(input);
input.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawString("You input data: " +d, 10,50);
}
public void actionPerformed(ActionEvent e)
{
d = Double.valueOf(input.getText()).doubleV alue();
repaint();
}
}
2.编写程序输出用户指定数据的所有素数因子
三.实验要求
a)整理上机结果和体会。

b)完成实验报告。

在每次上课之前按报到的学号立即上交email或磁盘。

第六,七周
一.实验目的
1.掌握类的定义和使用
2.掌握对象的声明和不同访问属性的成员方问方式
3.掌握构造函数和析构函数的使用和执行过程
二.实验内容与步骤
i.理解与实现以下程序:
public class UsePhoneCard
{
public static void main(String args[])
{
PhoneCard myCard = new PhoneCard(12345678, 1234, 50.0, "300");
System.out.println(myCard.toString());
}
}
class PhoneCard
{
long cardNumber;
private int password;
double balance;
String connectNumber;
boolean connected;
PhoneCard(long cn, int pw, double b, String s)
{
cardNumber = cn;
password = pw;
if(b>0)
balance = b;
else
System.exit(1);
connectNumber = s;
connected = false;
}
boolean performConnection(long cn, int pw)
{
if(cn==cardNumber && pw ==password)
{
connected = true;
return true;
}
else
{
connected = false;
return false;
}
}
double getBalance()
{
if(connected)
return balance;
else
return -1;
}
void performDial()
{
if(connected)
balance -=0.5;
}
public String toString()
{
String s = "Connected Phone Number: " + connectNumber +
"\n Card Number: " +cardNumber +
"\n Card Password: " + password +
"\n The balance: " + balance;
if(connected)
return(s+ "\n The phone is connected");
else
return(s+"\n The phone is disconnected");
}
}
2.改写本节例子UsePhoneCard成为图形界面的Applet程序,接受用户输入的卡号,密码,
金额和接入号码,创建PhoneCard类的对象并输出这张电话卡的有关信息。

三.实验要求
a)整理上机结果和体会。

b)完成实验报告。

在每次上课之前按报到的学号立即上交email或磁盘。

第八,九,十,十一周
一.实验目的
1.掌握类继承与派生的定义和使用
2.熟悉继承的访问控制机制
二.实验内容与步骤
1理解与实现以下程序:
public class TestHiddenField
{
public static void main(String args[])
{
D200_Card my200 = new D200_Card();
my200.balance = 50.0;
System.out.println("Father balance: " +my200.getBalance());
if(my200.performDial())
System.out.println("Son balance: " +my200.balance);
}
}
abstract class PhoneCard
{
double balance;
abstract boolean performDial();
double getBalance()
{
return balance;
}
}
abstract class Number_PhoneCard extends PhoneCard
{
long cardNumber;
int password;
String connectNumber;
boolean connected;
boolean performConnection(long cn, int pw)
{
if(cn==cardNumber && pw ==password)
{
connected = true;
return true;
}
else
{
connected = false;
return false;
}
}
}
class D200_Card extends Number_PhoneCard {
double additoryFee;
double balance;
boolean performDial()
{
if(balance>(0.5+additoryFee))
{
balance -= 0.5+additoryFee;
return true;
}
else
return false;
}
}
2.理解与实现以下程序:
public class TestOverLoad
{
public static void main(String args[])
{
D200_Card my200 = new D200_Card();
my200.balance = 50.0;
System.out.println("Father balance: " +my200.getBalance());
if(my200.performDial())
System.out.println("Son balance: " +my200.balance);
}
}
abstract class PhoneCard
{
double balance;
abstract boolean performDial();
double getBalance()
{
return balance;
}
}
abstract class Number_PhoneCard extends PhoneCard
{
long cardNumber;
int password;
String connectNumber;
boolean connected;
boolean performConnection(long cn, int pw)
{
if(cn==cardNumber && pw ==password)
{
connected = true;
return true;
}
else
{
connected = false;
return false;
}
}
}
class D200_Card extends Number_PhoneCard
{
double additoryFee;
double balance;
boolean performDial()
{
if(balance>(0.5+additoryFee))
{
balance -= 0.5+additoryFee;
return true;
}
else
return false;
}
double getBalance()
{
return balance;
}
}
3.根据下面的要求编程实现复数类ComplexNumber
(1) 复数类ComplexNumber的属性
m_dRealPart: 实部,代表复数的实数部分
m_dImaginPart:虚部,代表复数的虚数部分
(2)复数类ComplexNumber的方法
ComplexNumber()构造函数,将实部,虚部都置为0
ComplexNumber(double r, double I)构造函数,创建复数对象的同时完成复数的实部,虚部的初始化
GetRealPart()获取实部
GetImaginaryPart()获取虚部
SetRealPart(double d)设置实部
SetImaginaryPart(double d)设置虚部
ComplexAdd(ComplexNumber c)复数相加
ComplexAdd(double c)复数相加
ComplexMinus(ComplexNumber c)复数相减
ComplexMinus(double c)复数相减
ComplexMulti(ComplexNumber c)复数相乘
ComplexMulti(double c)复数相乘
ToString()把当前复数对象的实部,虚部组合成a+bi的字符串形式
四.实验要求
a)整理上机结果和体会,总结Java Applet和Application开发调试经验。

b)完成实验报告。

在每次上课之前按报到的学号立即上交email或磁盘。

第十二,十三周
一.实验目的
1.学习Java的工具类与基本算法
2.根据已学知识实现程序
二.实验内容与步骤
1.理解与实现以下程序:
import java.applet.*;
import java.awt.*;
public class LifeCycle extends Applet
{
p rivate int InitCnt;
p rivate int StartCnt;
p rivate int StopCnt;
p rivate int DestroyCnt;
p rivate int PaintCnt;
p ublic LifeCycle()
{
InitCnt = 0;
StartCnt = 0;
StopCnt = 0;
DestroyCnt = 0;
PaintCnt =0;
}
p ublic void init()
{
InitCnt ++;
}
p ublic void destroy()
{
DestroyCnt++;
}
p ublic void start()
{
StartCnt++;
}
p ublic void stop()
{
StopCnt++;
}
p ublic void paint(Graphics g)
{
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.理解与实现以下程序:
import java.applet.Applet
import java.awt.*
public class ShowAnimator extends Applet
{
Image[] m_Images;
Int totalImages = 18;
Int currentImage = 0;
Public void init()
{
//加载当前目录下的images下的img001.gif至Img0018.gif
m_Images = new Image[totalImages];
for(int I=0; I<totalImages; I++)
m_Images[I] = getImage(getDocumentBase(), “images\\Img00”+(I+1)+”.gif”);
}
public void start()
{ currentImage = 0; //从第一幅开始
}
public void paint(Graphics g)
{ g.drawImage()
sleep();
repaint()
}
}
2 以下工作中,任选一个完成:
程序:
1.开发一个“学生成绩管理”的应用程序,可进行数据记录的增加,删除,修改,排序2.彩色图案竞猜游戏
3.拼图游戏
报告:
Java与基于电子商务的某项技术(5000字以上)
三.实验要求
a)整理上机结果和体会,总结Java Applet和Application开发调试经验。

b)完成实验报告。

在每次上课之前按报到的学号立即上交email或磁盘。

相关文档
最新文档