《java程序设计》实验指导书(完整)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 Java实验环境的建立一、实验目的
1.掌握Java编程环境的搭建过程;
2.掌握Jcreator pro软件的使用方法;
3.能使用Java doc文档。
二、实验内容
1.下载并安装,配置JDK环境变量;
2.下载Javadoc压缩包并解压在JDK安装路径下;
3.下载Jcreator pro 并安装和配置使用环境;
4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:
public class HelloJava
{
public static void main(String args[])
{
"Hello Java!");
}
}
②Java applet程序代码如下:
import .*;
public class Hello extends
{
public void paint(Graphics g)
{
("Hello!",30,30);
}
}
三、试验要求
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二Java语言程序设计训练
一、实验目的:
1.输入、输出操作实现原理和方法
2.掌握程序流程控制的实现方法
3.掌握数组的定义和操作方法
二、实验内容
1.计算Result=1!+2!+3!+ (10)
public class TestJieC{
public static void main(String arg[]){
long result=1;
for(int i=1;i<=10;i++)
{ result=i*result;
result+=result;
}
" "+result);
}
}
2.计算1---50之间所有素数的和。
public class Test{
public static void main(String args[]){
int count = 0;
for(int i = 2;i<=50;i++){
for(int j = 2;j<=i;j++){
if(i>j){
if(i%j == 0){
count++;
}
}
}
if(count==0){
}
count = 0;
}
}
}
}
3. 产生10个100之内的随机整数输出,并把这10个数按从小到大的顺序输出。
public class TestMath{
public static void main(String args[]){
int math[] = new int[10];
for(int i = 0;i<10;i++){
math[i] = (int)()*100);
" ");
}
for(int i = 0;i<10;i++){
for(int j = 0;j<10;j++){
if(math[i]<math[j]){
int l = math[i];
math[i] = math[j];
math[j] = l;
}
}
}
for(int i = 0;i<10;i++){
" ");
}
}
}
4. 随机产生20个50~100间的整数,输出这20个数并找出最大数及最小数输出。
public class TestMath{
public static void main(String args[]){
int math[] = new int[20];
int max = 0;int min = 100;
for(int i = 0;i<20;i++){
math[i] = (int)()*50+50);
" ");
}
for(int i = 0;i<20;i++){
max = max>math[i] max : math[i];
min = min<math[i] min : math[i];
}
"max:"+max);
"min:"+min);
}
}
5.试编写程序,实现求几何形状(长方形、正方形、圆形)的周长、面积。
(可任选其一)
import class Test{
public static void main(String args[]) throws Exception{
Scanner is = new Scanner;
"请输入长方形的宽");
int a = ();
"请输入长方形的高");
int b = ();
"输入1求出周长,输入2求出面积,输入三求出周长与面积");
int c = ();
if(c == 1){
"周长"+(a+b)*2);
}else if(c == 2){
"面积"+a*b);
}else if(c == 3){
"周长"+(a+b)*2+",面积"+a*b);
}else{
"输入有误,退出");
}
}
}
6.验证书中的例题。
三、试验要求
1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验三面向对象的程序设计(一)
一、实验目的
1.熟悉类的创建方法。
2.掌握对象的声明与创建。
3.能利用面向对象的思想解决一般问题。
二、实验内容
1.以下程序能否通过编译上机验证并指明错误原因与改正方法
Class Location{
Private int x,y;
Public void Location(int a,int b)
{ X=a; y=b;}
Public int getX(){return x;}
Public int getY(){return y;}
Public static void main(String args[]){
Location loc=new Location(12,20);
}
2.?创建一个图书类,类中包含的属性有:书名、作者、出版社;包含的方法有:设置书籍状态,查看书籍状态。
书籍状态有在馆和外借两种。
public class Lib{ 设计一个Birthday类,其成员变量有:year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。
编写程序测试这个类。
public class Birthday{
证书中的例题。
三、实验要求
1.事先预习,写出预习报告
2.上机后写出实验报告
实验四面向对象的程序设计(二)
一、实验目的
1.熟悉类的定义
2.掌握对象的声明、实例化及成员的引用
3.掌握构造方法及实例方法的区别与用法
二、实验内容
1.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。
编写一个测试类,其中有一个修改价格的方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main()方法中输出修改后的汽车信息。
class Car{
String chePai;
float price;
float price1;
Car(String chePai,float price){
=chePai;
=price*4/5;
=price;
}
void dismessage(){
"这辆车的品牌是"+chePai+"原价是"+price+"打折后为"+price1);
}
}
public class TestCar{
public static void main(String[] args){
Car c=new Car("奔驰S6OO",50000);
();
}
}
2. 设计一个银行帐户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等帐户信息,成员方法包括存款、取款操作。
public class Test {
public static void main(String args[]){
Bank b1 = new Bank("鹿鹿","鹿容","2012-04-30",1,;
;;();
}
}
class Bank{
private String user;
private String name;
private String time;
private int id;
private double money;
Bank(String user,String name,String time,int id,double money){
= user; = name; = time; = id; = money;
}
public void cun(double inMoney){
money = money+inMoney;
}
public void qu(double outMoney){
if(money-outMoney>=0){
money = money-outMoney;
}
}
public void info(){
"余额还有"+money);
}
}
3. 编写一个java程序,设计一个汽车类Vehicle,包含的属性有车轮的个数wheels和车重weight。
小汽车类Car 是Vehicle的子类,包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
public class Vehicle {
int wheels;
double weights;
Vehicle(int wheels,double weights){ 验证书中的例题。
三、实验要求
1.事先预习,写出预习报告
2.上机后写出实验报告
实验五面向对象综合实验
一、实验目的
1.熟悉类的定义;
2.掌握对象的声明、实例化及成员的引用;
3.掌握构造方法及实例方法的区别与用法。
二、实验内容
多数用户对去银行办理存款、取款等业务并不默生,用户自然感觉到了通过计算机办理业务的方便、快捷,也自然对编写出银行系统程序的程序员发出由衷的敬意。
实际上,当我们具备了面向对象编程的知识以后,我们也能编写出相应的程序。
程序框架如下,将代码补充完整:
2. 设计一个银行帐户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等帐户信息,成员方法包括存款、取款操作。
package bank; ; catch间的语句中若产生异常,则捕获异常,直接进行异常处理
{
}
try{ 检查分数(score[i]); 入成绩();
demo.输出成绩();
}
}
三、实验要求
1、根据题目要求完成程序中没有完成的模块。
2、写好上机报告。
实验七:图形用户界面设计(一)
一、实验目的:
1.巩固图形用户界面设计的方法
2.掌握事件处理的设计方法
二、实验内容:
1.绘制如下形式的图形界面,要求:窗体背景为蓝色,中间为黄色方格。
import .*;
public class Test{
public static void main(String args[]){
new F();
}
}
class F extends Frame{
F(){
int x,y,w,h;
x = 200;y = 200;w = 200;h = 200;
setBounds(x,y,w,h);
setBackground;
Panel p = new Panel();
(x/4,y/4,w/2,h/2);
;
setLayout(null);
add(p);
setVisible(true);
}
}
2. 编写程序,绘制如下格式的界面:
import .*;
public class Test{
public static void main(String args[]){
Frame f = new Frame();
(new GridLayout(2,1));
(300,300,300,300);
Panel p1 = new Panel(new BorderLayout());
Panel p2 = new Panel(new BorderLayout());
Panel p11 = new Panel(new GridLayout(2,1));
Panel p21 = new Panel(new GridLayout(2,2));
(new Button("button"),;
(new Button("button"),;
(new Button("button"));
(new Button("button"));
(p11,;
(new Button("button"),;
(new Button("button"),;
for(int i = 0;i<4;i++){
(new Button("button"));
}
(p21,;
(p1);(p2);
(true);
}
}
3.编写程序,创建如下图所示的图形界面(不必为组件提供功能)。
import .*;
import class Test{
public static void main(String args[]){
Frame f = new Frame();
(300,300,300,300);
(new BorderLayout());
Panel p1 = new Panel();
(new GridLayout(1,0));
(new TextField());
Panel p2 = new Panel();
(new GridLayout(4,4));
(new Button("7"));
(new Button("8"));
(new Button("9"));
(new Button("/"));
(new Button("4"));
(new Button("5"));
(new Button("6"));
(new Button("*"));
(new Button("1"));
(new Button("2"));
(new Button("3"));
(new Button("-"));
(new Button("0"));
(new Button("."));
(new Button("="));
(new Button("+"));
(p1,;
(p2,;
(new WindowAdapter(){
public void windowClosing(WindowEvent e){
(0);
}
});
(true);
}
}
4.验证书中例题。
三、实验要求:
1.事先预习,写出预习报告
2.上机验证后写出实验报告
实验八图形用户界面设计(二)
一、实验目的
1.掌握各种组件的用法;
2.掌握布局管理器的布局方式;
3.掌握事件处理机制。
二、实验内容
1.验证书中例题。
2.试创建如下图所示的图形用户界面,颜色列表框为红色、绿色和蓝色。
import .*;
public class Test{
public static void main(String args[]){
Frame f = new Frame();
(300,300,300,300);
(new BorderLayout());
Panel p1 = new Panel();Panel p2 = new Panel();Panel p21 = new Panel();Panel p22 = new Panel();
(new GridLayout(1,0));
Choice c = new Choice();
("红色");("绿色");("蓝色");
(c);
(new GridLayout(2,1));
(new FlowLayout);(new FlowLayout);
(new Checkbox("背景"));
(new Checkbox("前景"));
(new Button("确定"));
(new Button("取消"));
(p21);(p22);
(p1,;
(p2,;
(true);
}
}
3.编写程序,创建如下图所示的图形界面。
(要求实现功能)
import .*;
import class Test extends Frame{
static TextField tf1 = new TextField();
static TextField tf2 = new TextField();
static TextField tf3 = new TextField();
static Button b1 = new Button("求和");static Button b2 = new Button("清除");
public static void main(String args[]){
Test f = new Test();
(300,300,300,300);
(new GridLayout(3,3));
(new Label("加数1:"));
(tf1);
(new Label());
();
(new Label("加数2:"));
(tf2);(new Label());
(new Test().new T());
(new Test().new T());
(b1);(tf3);(b2);
(true);
}
class T implements ActionListener{
public void actionPerformed(ActionEvent e) {
熟悉绘图类的基本用法
5.掌握绘图类中常用的绘图方法
二、实验内容
1.验证书中例题:P200页例、P209页例。
2.设计一个程序,程序执行时,随机产生一条直线、一个矩形、一个椭圆,并且每个图形的颜色不同。
(说明:可利用系统类Math中的静态方法random(),该方法产生一个0~1间的小数)
import .*;
import .*;
import class FFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = -686L;
public void lauchFFrame(){
setBounds(300,300,300,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
(0);
}
});
setVisible(true);
}
public void paint(Graphics g){
Random r = new Random();
int i = (3);
if(i == 0){
;
(50, 50, 100, 100);
}else if(i == 1){
;
(50, 50, 100, 100);
}else{
;
(50, 50, 100, 100);
}
}
}
public class Test {
public static void main(String args[]){
new FFrame().lauchFFrame();
}
}
3.设计如下形式的窗口,并实现窗口的关闭功能:
import .*;
import .*;
import class FFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = -686L;
public void lauchFFrame(){
setBounds(300,300,300,300);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
(0);
}
});
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
int x = ();
int y = ();
"x:"+x+",y:"+y);
}
});
setVisible(true);
}
public void paint(Graphics g){
("五星", 200, 200);
(81,55,37,190);
(37,190,159,93);
(159,93,32,96);
(32,96,155,188);
(155,188,81,55);
}
}
4. 设计如下形式的窗口,并实现窗口的关闭功能:
package paint;
import .*;
import .*;
import class FFrame extends JFrame{
/**
*
*/
private static final long serialVersionUID = -686L;
public void lauchFFrame(){
setBounds(300,300,500,400);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
(0);
}
});
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
int x = ();
int y = ();
"x:"+x+",y:"+y);
}
});
setVisible(true);
}
public void paint(Graphics g){
;
((500-100)/2, 80, 100, 100);
((500-150)/2, 60, 150, 150);
;
((500-300)/2,150,300,100);
(90, 140, 20, 20);
(390, 140, 20, 20);
(90, 240, 20, 20);
(390, 240, 20, 20);
(90, 150, 10, 100);
(400, 150, 10, 100);
(100,140,300,10);
(100,250,300,10);
(140, 240, 60, 60);
(300, 240, 60, 60);
;
(50, 300, 450, 300);
}
}
三、实验要求
1、根据题目要求完成各程序。
2、写好上机报告。
实验十:图形用户界面综合设计
一、 实验目的:
1、 巩固图形用户界面设计的方法
2、 掌握事件处理的设计方法 二、 实验内容:
案例 学生信息注册界面设计解析
多数学校的学生档案信息都由计算机进行管理,在编写的档案管理应用程序中,有档案信息录入模块,该模块的功能是在图形化的界面下,用户把信息输入到计算机中。
录入界面的大致样式及组件名称如图。
选择框
复选框
单选钮
框架
标签
图5-1 信息录入界面
设计上述程序界面并实现相应的功能,程序框架如下,补全代码:
import .*;
import class InputData implements ActionListener { Frame f ; etLabel(); String aihao = " "+()==null "":())+ " "+()==null "":())+
" "+()==null "":());
n+= "性别:"+xingbie+" "+"爱好:"+aihao; n+= "籍贯:"+()==0"济南":()==1"潍坊":"济宁")); (n+"\n");
}
public static void main(String args[])
{
new InputData();
}
}
三、实验要求:
1、事先预习,写出预习报告
2、上机验证后写出实验报告
实验十一多线程技术
一、实验目的
1.理解多线程编程技术的概念;
2.掌握多线程创建的方法;
3.掌握多线程在实际应用开发程序中的使用。
二、实验内容
案例动画显示解析
动画显示是多媒体技术的一个主要方面,如今动画制作也是日常工作中经常要用到的,实现动画技术的方法也非常多,利用多线程的技术方法可以解决动画显示的一些实现问题,
动画原理:
在Applet中加载若干幅表现不同状态的图片,利用线程按顺序切换图片实现动画效果。
下载图片时,使用了图像跟踪技术。
尝试实现功能,补全代码。
1、程序代码:
import .*;
import class Animation extends Applet implements Runnable
{ Image images[]; 握在Applet中输出图像与声音
二.实验内容:
1.设计用户邮箱登录界面。
(如下所示)。