java实验指导书 下载本文

实验1 一个简单的应用程序

1. 试验目的

掌握开发java应用程序的三个步骤:编写源文件,编译文件和运行应用程序。 2. 实验内容

编写一个简单的java 应用程序,该程序在命令行输出两行文字:“你好,很高兴学习java”和”we are students” 3. 程序模板

Hello.java

public class Hello {

public static void main (String args[ ]){

【代码1】 //命令行窗口输出\你好,很高兴学习Java\ A a=new A(); a.fA(); } } class A { void fA() {

【代码2】 //命令行窗口输出\ } }

实验2 基本数据类型和数组

1.实验目的

掌握基本数据类型的定义和相互之间的转换,了解Unicode字符表。掌握从键盘输入基本类型的数据。 2. 实验内容

(1) 输出俄文字母表。

编写一个java应用程序,该程序在命令行窗口输出俄文字母表。 程序模板:

Russian.java

public class Russian {

public static void main (String args[ ]) { int startPosition=0,endPosition=0; char cStart='а',cEnd='я';

【代码1】 // cStart做int类型转换运算,并将结果赋值给startPosition 【代码2】 // cEnd做int类型转换运算,并将结果赋值给endPosition System.out.println(\俄文字母共有:\

System.out.println(endPosition-startPosition+1+\个\ for(int i=startPosition;i<=endPosition;i++){ char c='\\0';

【代码3】 // i做char类型转换运算,并将结果赋值给c System.out.print(\ } } }

(2)从键盘输入数据

编写一个应用程序,用户从键盘输入一个浮点数据,程序将输出这个数的平方和三次方。

InputFloat.java

import java.util.*; public class InputFloat {

public static void main(String args[]) { double a,b,c;

Scanner reader=new Scanner(System.in); System.out.println(\从键盘输入一个浮点数\ 【代码1】 b=a*a; c=a*a*a; 【代码2】 【代码3】 } }

// 输出b // 输出c

// reader调用方法读取用户从键盘输入的数据,并赋值给a

(3)数组的快速复制

定义一个一维数组,实用System.arraycopy()方法,将其复制到另外一个数组中,并输出两个数组的内容。

实验3运算符、表达式与语句

1、 实验目的

掌握各种运算符的使用规则,掌握java的表达式,熟练使用Java的控制语句:条件分支语句和循环语句。 2、 实验内容 (1) 猜数字

编写一个Java应用程序,实现如下功能

● 随机分配给客户一个1-100之间的整数。 ● 用户从键盘输入自己的猜测。

● 程序返回提示信息,提示信息分别是“猜大了”,“猜小了”,“猜对了”。 ● 用户可根据提示信息再次输入预测,指导提示信息是“猜对了”。

GuessNumber.java

import java.util.*;

public class GuessNumber {

public static void main (String args[ ]) {

System.out.println(\给你一个1至100之间的整数,请猜测这个数\ int realNumber=(int)(Math.random()*100)+1; int yourGuess=0;

Scanner reader=new Scanner(System.in); System.out.println(\输入您的猜测:\ 【代码1】

// reader调用方法获取用户从键盘键入的整数,并赋值给yourGuess

// 循环条件

while (【代码2】){

if (【代码3】){ // 条件代码 System.out.println(\猜大了,请再猜:\

【代码4】 // reader调用方法获取用户从键盘键入的整数,并赋值给yourGuess }

else if(【代码5】){ // 条件代码 System.out.println(\猜小了,请再猜:\

【代码6】 // reader调用方法获取用户从键盘键入的整数,并赋值给yourGuess } }

System.out.println(\猜对了!\ } }

(2)回文数

编写一个Java应用程序,用户从键盘输入一个1-99999之间的整数,程序将判断这个数是几位数,并判断这歌数是否是回文数。

Number.java

import java.util.*; public class Number {

public static void main(String args[]) { int number=0,d5,d4,d3,d2,d1;

Scanner reader=new Scanner(System.in);

System.out.println(\从键盘输入一个1至99999之间的数\ while(reader.hasNextInt()){ number=reader.nextInt();

if(【代码1】){ // 判断number在1至99999之间的条件 【代码2】 // 计算number的最高位(万位)d5 【代码3】 // 计算number的千位d4 【代码4】 // 计算number的百位d3 d2=number0/10; d1=number;

if(【代码5】){ // 判断number是5位数的条件 System.out.printf(\是5位数\ if (【代码6】) // 判断number是回文数的条件 System.out.printf(\是回文数\ else

System.out.printf(\不是回文数\ }

else if (【代码7】){ // 判断number是4位数的条件 System.out.printf(\是4位数\ if (【代码8】) // 判断number是回文数的条件 System.out.printf(\是回文数\ else

System.out.printf(\不是回文数\ }

else if (【代码9】){ // 判断number是3位数的条件 System.out.printf(\是3位数\ if (【代码10】) // 判断number是回文数的条件 System.out.printf(\是回文数\ else

System.out.printf(\不是回文数\ }

else if(d2!=0){

System.out.printf(\是2位数\ if(d1==d2)

System.out.printf(\是回文数\ else

System.out.printf(\不是回文数\ }

else if(d1!=0){

System.out.printf(\是1位数\ System.out.printf(\是回文数\ } } else

System.out.printf(\不在1至99999之间\ System.out.printf(\可继续输入整数,或输入非整数结束程序%n\ }

System.out.println(\你输出的数据不是整数\ } }

(3)数组的排序及查找

编程使用Arrays类的静态方法purbic void sort(double a[],int start,int end)对数组进行排序,然后编程使用折半法判断一个数是否在这个数组中。 (4)一个简单的的Java applet程序

掌握开发Java applet程序的三个步骤:编写源文件、编译源文件和运行程序。

FirstApplet.java

import java.applet.*; import java.awt.*;

public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue);

g.drawString(\这是一个Java Applet 程序\ g.setColor(Color.red);

g.setFont(new Font(\宋体\ g.drawString(\我改变了字体\ } }

编写一个HTML 文件,保存到和编译后的字节码文件相同的目录下:

使用浏览器活appletviewer打开Html文件。

实验4 类与对象

1、 实验目的:掌握使用类来封装对象的属性和方法。 2、 实验内容

(1) 有理数的类封装

我们有时希望程序能对分数(分子分母都是整数)进行四则运算,而且两个分数四则运算的结果仍然是分数。分数也称有理数。本实验要求用类实现对有理数的封装,有理数有两个重要的成员:分子和分母,另外还有重要的四则运算。

编写一个Java应用程序,该程序中有一个Rational(有理数)类,具体要求如下:

● Rational类有两个int型成员变量,名字分别为numerator(分子)和denominator(分母)。

● 提供Rational add(Rational r)方法,即有理数调用该方法与参数指定的有理数做加法

运算并返回一个Rational对象。 ● 提供Rational sub(Rational r)方法,即有理数调用该方法与参数指定的有理数做减法

运算并返回一个Rational对象。 ● 提供Rational muti(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘

法运算并返回一个Rational对象。 ● 提供Rational div(Rational r)方法,即有理数调用该方法与参数指定的有理数做除法

运算并返回一个Rational对象。

Rational.java

public class Rational {

int numerator,denominator;

Rational(){} Rational(int a,int b){

setNumeratorAndDenominator(a,b); }

void setNumeratorAndDenominator(int a,int b){ //设置分子和分母 int c=f(Math.abs(a),Math.abs(b)); //计算最大公约数 numerator=a/c; denominator=b/c;

if(numerator<0&&denominator<0){ numerator=-numerator; denominator=-denominator; } }

int getNumerator() { return numerator; }

int getDenominator() { return denominator;

}

int f(int a,int b){ //求a和b的最大公约数 if(a

Rational add(Rational r) { int a=r.getNumerator(); int b=r.getDenominator();

int newNumerator=numerator*b+denominator*a; int newDenominator=denominator*b;

Rational result=new Rational(newNumerator,newDenominator); return result; }

Rational sub(Rational r) { int a=r.getNumerator(); int b=r.getDenominator();

int newNumerator=numerator*b-denominator*a; int newDenominator=denominator*b;

Rational result=new Rational(newNumerator,newDenominator); return result; }

Rational muti(Rational r) { int a=r.getNumerator(); int b=r.getDenominator(); int newNumerator=numerator*a; int newDenominator=denominator*b;

Rational result=new Rational(newNumerator,newDenominator); return result; }

Rational div(Rational r) { int a=r.getNumerator(); int b=r.getDenominator(); int newNumerator=numerator*b; int newDenominator=denominator*a;

Rational result=new Rational(newNumerator,newDenominator); return result;

} }

Computer.java

public class Computer {

public static void main(String args[]) { Rational r1;

【代码1】//创建分子、分母分别为1和5的有理数r1 Rational r2;

【代码2】//创建分子、分母分别为3和2的有理数r2 Rational result=【代码3】 //r1调用方法和r2做加法运算 int a=【代码4】 // result调用方法返回自己的分子 int b=【代码5】 // result调用方法返回自己的分母 double p=a; double q=b;

double doubleResult=p/q;

System.out.print(\分数\

System.out.print(\与分数\的和等于\

(2) 实例成员与类成员、

按程序模板的要求编写源文件,注意程序的输出结果,并能正确解释输出结果。

Ex4_2.java

class A {

【代码1】 //声明一个实例float变量a 【代码2】 //声明一个static的float变量b void setA(float a) {

【代码3】 // 将参数a的值赋值给成员变量a }

void setB(float b){

【代码4】 // 将参数b的值赋值给成员变量b }

float getA( ) { return a; }

float getB( ) { return b; }

void inputA( ) { System.out.println(a); }

static void inputB( ){ System.out.println(b); } }

public class Ex4_2 {

public static void main(String args[ ]) {

【代码5】 // 通过类名操作类变量b,并赋值100 【代码6】 // 通过类名调用方法inputB( ) A cat=new A( ); A dog=new A( );

【代码7】 // cat调用方法setA(int a)将cat的成员a的值设置为200 【代码8】 // cat调用方法setB(int b)将cat的成员b的值设置为400 【代码9】 // dog调用方法setA(int a)将dog的成员a的值设置为200 【代码10】 // dog调用方法setB(int b)将dog的成员b的值设置为900 【代码11】 // cat调用inputA( ) 【代码12】 // cat调用inputB( ) 【代码13】 // dog调用inputA( ) 【代码14】 // dog调用inputB( ) }

}

实验5 Package语句与import语句

1实验目的:掌握并使用Package语句,用import语句使用Java平台提供的包中的类以及自定义包中的类。 2 实验内容

(1)将文件Trangle.java编译后的字节码文件存放到的d:\\shiyan\\tom\\jiafei目录中,或使用:\\javac –d . Trangle.java 来编译源文件

将文件SunRise,java 保存到d:\\shiyan 中。运行并观察结果,体会包的用法。

Trangle.java

package tom.jiafei; public class Trangle { double sideA,sideB,sideC; boolean boo;

public Trangle(double a,double b,double c) { sideA=a;sideB=b;sideC=c; if(a+b>c&&a+c>b&&c+b>a){

System.out.println(\我是一个三角形\ boo=true; } else{

System.out.println(\我不是一个三角形\ boo=false; } }

public void 计算面积( ){ if(boo){

double p=(sideA+sideB+sideC)/2.0;

double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ; System.out.println(\是一个三角形,能计算面积\ System.out.println(\面积是:\ } else

System.out.println(\不是一个三角形,不能计算面积\ }

public void 修改三边(double a, double b, double c){ sideA=a;sideB=b;sideC=c; if(a+b>c&&a+c>b&&c+b>a)

boo=true;

else

boo=false; } }

SunRise.java

import tom.jiafei.Trangle; import java.util.Date; class SunRise{

public static void main(String args[ ]){ Trangle trangle=new Trangle(12,3,104); trangle.计算面积( ); trangle.修改三边(3,4,5); trangle.计算面积( ); Date date=new Date( ); System.out.println(date); } }

(2)在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类 具

有计算今年的年份,可以输出一个带有年月日的字符串的功能。 ¨ 编写 YMD.java 文件,源代码如下。

package Mypackage; //声明存放类的包

import java.util.*; //引用 java.util 包 public class YMD {

private int year,month,day;

public static void main(String[] arg3){} public YMD(int y,int m,int d) { year = y;

month = (((m>=1) & (m<=12)) ? m : 1); day = (((d>=1) & (d<=31)) ? d : 1); }

public YMD() { this(0,0,0); }

public static int thisyear() {

return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份 }

public int year() {

return year;//返回年份 }

public String toString(){

return year+\返回转化为字符串的年-月-日 }

}

¨ 编译 YMD.java 文件,然后将 YMD.class 文件存放到 Mypackage 文件夹中。

编写使用包 Mypackage 中 YMD 类的程序

¨ KY4_2.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了 KY4_1_YMD 的方法来计算年龄。 ¨ 编写 KY4_2.java 程序文件,源代码如下。

import Mypackage.YMD; //引用 Mypackage 包中的 KY4_1_YMD 类

public class KY4_2 {

private String name; private YMD birth;

public static void main(String args[]) {

KY4_2 a = new KY4_2(\张驰\ a.output(); }

public KY4_2(String n1,YMD d1) {

name = n1; birth = d1; }

public KY4_2(String n1,int y,int m,int d) {

this(n1,new YMD(y,m,d));//初始化变量与对象 }

public int age() //计算年龄 {

return YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄 }

public void output() {

System.out.println(\姓名 : \

System.out.println(\出生日期: \ System.out.println(\今年年龄 : \ } }

(3) 编写一个 Java 应用程序,该程序中有 3 个类:Triangle、Trapezium 和 Circle,分别用来 表示三角形、梯形和圆形。具体要求如下:

Triangle 类具有类型为 double 的三个边、周长以及面积属性,Triangle 类具有返

回周长、面 积以及修改三个边的功能。另外,Triangle 类还具有一个 boolean 型的属性,该属性用来判断三个数能否构成一个三角形。

Trapezium 类具有类型为 double 的上底、下底、高以及面积属性,具有返回面积

的功能。

Circle 类具有类型为double的半径、周长以及面积属性,具有返回周长、面积的

功能。

生成实例测试该类。

(4)创建 SavingAccount 类,用一个静态变量来存储每个帐户的

annualInterestRate。每个类 的对象都包括一个 private 实例变量 savingsBalance,用来指明帐户当前的储蓄余额。提供 calculateMonthlyInterest 方法,用 annualInterestRate 除以 12 再乘以 savingsBalance 来计算 月利,并将这个利率加到 savingsBalance 中。提供一个 static方法 modifyInterestRate,用来为 annualInterestRate 设置新值。编写一个驱动程序来测试 SavingAccount 类。实例化两个不同的 SavingAccount 对象 saver1 和 saver2 , 各自拥有的余额为 $2000.00 和 $3000.00 。 将 annualInterestRate 设置为 4%,然后为每个储户计算月利并打印出新的余额。接着将 annualInterestRate设置为 5%,计算下个月的利率并为每个储户打印出新的余额。

实验6继承

1. 实验目的:

掌握子类的继承性,子类对象的创建,成员变量的继承与隐藏,方法的继承与重写。 2. 实验内容:: (1) 编写一个java应用程序,除了主类之外,该程序中还有4个类:People, ChinaPeople, AmericanPeople.和BeijingPeople类。要求如下:

● People类有访问权限是protected的double类型成员变量height和weight,以及public

void speakHello(),public void averageHeight()和pubic void averageWeight()方法。 ● ChinaPeople类是People的子类,新增了public void chinaGongfu方法。要求

ChinaPeople重写父类的public void speakHello(),public void averageHeight()和pubic void averageWeight()方法。

● AmericaPeople类是People类的子类,新增publicvoidamericanBoxing()方法。要求

AmericaPeople类重写父类的public void speakHello(),public void averageHeight()和pubic void averageWeight()方法。

● BeijingPeople类是ChinaPeople类的子类,新增public void beijingOpera()方法。

要求BeijingPeople类重写父类的public void speakHello(),public void averageHeight()和pubic void averageWeight()方法。

Example.java

class People {

protected double weight,height; public void speakHello( ) {

System.out.println(\ }

public void averageHeight() { height=173;

System.out.println(\ }

public void averageWeight( ) { weight=70;

System.out.println(\ } }

class ChinaPeople extends People {

【代码1】 // 重写public void speakHello( )方法,要求输出类似“你好,吃饭了吗” // 这样的汉语信息

【代码2】 // 重写public void averageHeight( )方法,要求输出类似 // “中国人的平均身高:168.78厘米”这样的汉语信息 【代码3】 // 重写public void averageWeight( )方法,要求输出类似 //“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu () {

【代码4】// 输出中国武术的信息,如“坐如钟,站如松,睡如弓”等 }

}

class AmericanPeople extends People {

【代码5】 //重写public void speakHello()方法,要求输出类似“How do you do”

这样的英语信息

【代码6】 // 重写public void averageHeight( )方法 【代码7】 // 重写public void averageWeight( )方法 public void americanBoxing() {

【代码8】 // 输出拳击的信息,如“直拳”、“钩拳”等 } }

class BeijingPeople extends ChinaPeople {

【代码9】 // 重写public void speakHello( )方法,要求输出类似“您好”这样的

汉语信息

【代码10】 // 重写public void averageHeight( )方法 【代码11】 // 重写public void averageWeight( )方法 public void beijingOpera() {

【代码12】 // 输出京剧的信息 } }

public class Example {

public static void main(String args[ ]) {

ChinaPeople chinaPeople=new ChinaPeople( );

AmericanPeople americanPeople=new AmericanPeople( ); BeijingPeople beijingPeople=new BeijingPeople( ); chinaPeople.speakHello( ); americanPeople.speakHello( ); beijingPeople.speakHello( ); chinaPeople.averageHeight( ); americanPeople.averageHeight( ); beijingPeople.averageHeight( ); chinaPeople.averageWeight( ); americanPeople.averageWeight( ); beijingPeople.averageWeight( ); chinaPeople.chinaGongfu( );

americanPeople.americanBoxing( ); beijingPeople.beijingOpera( ) ; beijingPeople.chinaGongfu( ); } }

(2)设计一个应用程序要求:

? 设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成 员变量x和y,获取和设置x和y值的public方法。

? 设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径

的protected,类型的成员变量r、获取和设置r值的public方法、计算圆面积的一public方法。

? 设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的

protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public方法。 ? 建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。

要求:每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数 的构造方法将成员变量初始化为0值。子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。

(3) 设计一个应用程序要求:

? 定义一个抽象类Printable,其中包括一个方法printItMyWay(),该方法是一个抽象方法,没

有形参,返回值为空。

? 改写矩形类使之继承Printable类,用printItMyWay()方法将矩形的相关信息打印在屏幕

上,例如矩形的长为多少,矩形的宽为多少。. 注:矩形类包含矩形的长和宽。

? 在Printable类中增加一个新的抽象方法printItMyWay(char),这方法有一个字符性参数,返回值为空。其功能是利用给出的字符打印在矩形行区域内

在main方法中添加语句调用printItMyWay()和printItMyWay(char)

实验7 抽象类与接口

实验目的:掌握接口的定义和使用方法。

实验内容:

1、读懂下面模板代码,按要求补充程序并调试运行。掌握抽象类的定义及其实现方法,学习上转型对象的运用方法。

abstract class Employee {

public abstract double earnings(); }

class YearWorker extends Employee {

【代码1】 //重写earnings()方法 }

class MonthWorker extends Employee {

【代码2】 //重写earnings()方法。 }

class WeekWorker extends Employee {

【代码3】 //重写earnings()方法。 }

class Company {

Employee[] employee; double salaries=0;

Company(Employee[] employee) {

this.employee=employee; }

public double salariesPay() {

salaries=0;

【代码4】 //计算salaries。 return salaries; } }

public class HardWork {

public static void main(String args[]) {

Employee[] employee=new Employee[20]; for(int i=0;i

if(i%3==0)

employee[i]=new WeekWorker(); else if(i%3==1)

employee[i]=new MonthWorker(); else if(i%3==2)

employee[i]=new YearWorker(); }

Company company=new Company(employee);

System.out.println(\公司年工资总额:\ } }

2、读懂下面模板代码,按要求补充程序并调试运行。掌握接口的定义及其实现方法,学习接口回调的运用方法。

interface ComputerWeight {

public double computeWeight(); }

class Television implements ComputerWeight { 【代码1】 //实现computeWeight()方法。 }

class Computer implements ComputerWeight { 【代码2】 //实现computeWeight()方法。 }

class WashMachine implements ComputerWeight { 【代码3】 //实现computeWeight()方法。 } class Car

{ ComputerWeight[] goods; double totalWeights=0; Car(ComputerWeight[] goods) {

this.goods=goods; }

public double getTotalWeights() {

totalWeights=0;

【代码4】 //计算totalWeights return totalWeights; } }

public class Road {

public static void main(String args[])

{ ComputerWeight[] goodsOne=new ComputerWeight[50],

goodsTwo=new ComputerWeight[22] ; for(int i=0;i

goodsOne[i]=new Television(); else if(i%3==1)

goodsOne[i]=new Computer(); else if(i%3==2)

goodsOne[i]=new WashMachine(); }

for(int i=0;i

goodsTwo[i]=new Television(); else if(i%3==1)

goodsTwo[i]=new Computer(); else if(i%3==2)

goodsTwo[i]=new WashMachine(); }

Car 大货车=new Car(goodsOne);

System.out.println(\大货车装载的货物重量:\大货车.getTotalWeights()); Car 小货车=new Car(goodsTwo);

System.out.println(\小货车装载的货物重量:\小货车.getTotalWeights());

3、定义一个接口,其中包含一个计算体积的抽象方法calculateVolume(),,设计circle和Rectangle两个类都实现接口中的方法calculateVolume(),分别计算球体和长方体的体积。

试验8 异常处理

试验目的:熟悉和掌握java的异常处理机制、异常的跑出和捕捉,掌握编写自己的异常来处理非系统定义的错误。 实验内容:

1、上机输入以下程序,观察程序的运行结果,体会JAVA中的异常处理机制 class Test{

public static void main(String[] args) try{

int a=3,b=0;

System.out.println(a=a/b);

}

catch(ArithemticException e){

System.out.println(\捕捉到一个算术异常\; }

catch(Exception e){

System.out.println(\捕捉到一个一般异常\; } finally{

System.out.println(\程序结束\;

} } }

思考:(1)将两个catch语句交换位置,程序能够变异通过吗?系统将给出什么错误提示? (2)将try-catch-finally语句去掉,直接进行编译,能够通过编译吗?观察程序的运行结果。 2、编程实现异常处理,在try语句块中抛出一个带字符串参数的异常类Exception的对象;

然后再catch语句块中捕捉异常,并输出刚才输入的那个字符串参数,最后加入finally语句块,在其中执行一些打印操作。试解释程序的输出结果。理解java的异常处理机制。 3、编程实现让系统抛出ArrayIndexOutOfBoundsException,并捕捉。

4、编写两个自己定义的异常类,然后在编写一个类,在其中编写两个方法f1()和f2()。在f2() 中抛出自己定义的第一个常类对象,在f1() 中调用f2(),并捕捉其中的异常,然后在catch字句中抛出第二个异常。

实验9常用实用类

掌握String、StringBuffer、Datehe Calendar类的常用方法 实验内容

1、 编写一个java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否与

某个字符串相同,以及按字典序比较两个字符串的大小关系,进行字符串检索,创建子字符串,将数字型字符串转化为数字,将字符串存放到数组汇总,用字符数组创建字符串等。 模板代码

StringExample.java

class StringExample

{ public static void main(String args[])

{ String s1=new String(\ s2=new String(\

if(【代码1】) // 使用equals方法判断s1与s2是否相同 {

System.out.println(\与s2相同\ } else {

System.out.println(\与s2不相同\ }

String s3=new String(\

if(【代码2】) //判断s3的前缀是否是“220302”。 {

System.out.println(\吉林省的身份证\ }

String s4=new String(\你\ s5=new String(\我\

if(【代码3】)//按着字典序s4大于s5的表达式。 {

System.out.println(\按字典序s4大于s5\ } else {

System.out.println(\按字典序s4小于s5\ }

int position=0;

String path=\

position=【代码5】 //获取path中最后出现目录分隔符号的位置

System.out.println(\中最后出现\\\\的位置:\ String fileName=【代码6】//获取path中“A.java”子字符串。 System.out.println(\中含有的文件名:\ String s6=new String(\ s7=new String(\

int n1=【代码7】 //将s6转化成int型数据。 double n2=【代码8】 //将s7转化成double型数据。 double m=n1+n2; System.out.println(m);

String s8=【代码9】 //String调用valuOf(int n)方法将m转化为字符串对象 position=s8.indexOf(\

String temp=s8.substring(position+1);

System.out.println(\数字\有\位小数\ String s9=new String(\

char a[]=【代码10】 //将s8存放到数组a中。 for(int i=a.length-1;i>=0;i--) {

System.out.print(\ } } }

2、 编写一个应用程序,使用StringBuffer对象实现对字符串的编辑操作,如替换字符串

中的某些字符、删除字符串中的某些字符串中插入或追加新的字符串等。 3、 编写一个java应用程序,用户从键盘输入两个日期,程序将判断两个日期的大小关系

预计两个日期之间的相隔天数。

实验10 Swing图形用户界面设计(一)

实验目的:掌握swing组件的使用,掌握事件处理机制 实验内容:

1、 创建一个Jframe窗体。

2、 在创建的窗体中添加标签、按钮等组件

3、 为以上创建的窗口中的组件添加事件处理功能,要求在文本框中输入字符

串、当按下回车键时,将输入的文字显示在输出区域。

实验11 Swing图形用户界面设计(二)

实验目的:掌握常见布局类,学习处理事件响应和常用组件 实验内容: 1、猜数字游戏

要求程序中有两个按钮buttonGetNumber和buttonEnter,用户单击buttonGetNumber按钮可以获得一个随机数,然后在一个文本框中输入猜测,再单击按钮buttonEnter,程序根据用户猜测给出提示信息。

GuessExample.java

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*;

class WindowButton extends JFrame implements ActionListener { int number;

JTextField inputNumber; JLabel feedBack;

JButton buttonGetNumber,buttonEnter; WindowButton(String s) { super(s);

buttonGetNumber=new JButton(\得到一个随机数\ feedBack=new JLabel (\无反馈信息\ feedBack.setBackground(Color.green); inputNumber=new JTextField(\ buttonEnter=new JButton(\确定\

【代码1】 // 按钮buttonEnter增加ActionEvent事件监视器,监视器为当前窗口 【代码2】 // 按钮buttonGetNumber增加ActionEvent事件监视器,监视器为当前窗口 Box boxH1=Box.createHorizontalBox();

boxH1.add(new JLabel(\获取1-100之间的随机数:\ boxH1.add(buttonGetNumber); Box boxH2=Box.createHorizontalBox(); boxH2.add(new JLabel(\输入您的猜测:\ boxH2.add(inputNumber);

Box boxH3=Box.createHorizontalBox(); boxH3.add(new JLabel(\单击确定按钮:\ boxH3.add(buttonEnter);

Box boxH4=Box.createHorizontalBox(); boxH4.add(new JLabel(\反馈信息:\ boxH4.add(feedBack);

Box baseBox=Box.createVerticalBox(); baseBox.add(boxH1); baseBox.add(boxH2); baseBox.add(boxH3); baseBox.add(boxH4);

Container con=getContentPane(); con.setLayout(new FlowLayout()); con.add(baseBox); con.validate();

setBounds(120,125,270,200); setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100,100,150,150); setVisible(true); validate(); }

public void actionPerformed(ActionEvent e) {

if(【代码3】) // 判断事件源是否是buttonGetNumber number=(int)(Math.random()*100)+1;

else if(【代码4】) { // 判断事件源是否是buttonEnter int guess=0;

try { guess=Integer.parseInt(【代码5】); // 返回inputNumber中的文本 if(guess==number) {

【代码6】 // feedBack设置提示文本“猜对了!” }

else if(guess>number) {

【代码7】 // feedBack设置提示文本“猜大了!” inputNumber.setText(null); }

else if(guess

【代码8】 // feedBack设置提示文本“猜小了!” inputNumber.setText(null); } }

catch(NumberFormatException event) {

【代码9】 // feedBack设置提示文本“请输入数字字符” } } } }

class GuessExample {

public static void main(String args[]) { new WindowButton(\猜数字小游戏\ }

}

2、根据用户选择的字体来改变文本区中的字体

DialogExample.java

import java.awt.event.*; import javax.swing.*; import java.awt.*;

class FontDialog extends JDialog implements ItemListener,ActionListener { JComboBox list; JTextArea text; Font font; JButton yes,cancel; JComponent com;

FontDialog(JComponent com) { this.com=com; setModal(true);

yes=new JButton(\ cancel=new JButton(\ yes.addActionListener(this); cancel.addActionListener(this);

text=new JTextArea(2,25); list=new JComboBox();

GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName[]=ge.getAvailableFontFamilyNames(); for(int i=0;i

setBounds(100,100,280,170);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

validate(); }

public void itemStateChanged(ItemEvent e) { String name=(String)list.getSelectedItem(); font=new Font(name,Font.PLAIN,14); text.setFont(font); text.setText(\奥运\ }

public void actionPerformed(ActionEvent e) { if(e.getSource()==yes) { com.setFont(font);

【代码1】 // 将对话框设置为不可见 }

else if(e.getSource()==cancel) {

【代码2】 // 将对话框设置为不可见 } } }

class Dwindow extends JFrame implements ActionListener { JTextArea text; JToolBar bar; Container con; JButton buttonFont; Dwindow() {

buttonFont=new JButton(\设置字体\ text=new JTextArea(\显示内容\ buttonFont.addActionListener(this); bar=new JToolBar(); bar.add(buttonFont); con=getContentPane();

con.add(bar,BorderLayout.NORTH); con.add(new JScrollPane(text)); setBounds(60,60,300,300); setVisible(true); validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

public void actionPerformed(ActionEvent e) { if(e.getSource()==buttonFont) {

FontDialog dialog= 【代码3】 // 创建对话框,并将text传递给构造方法的参数 【代码4】 // 将对话框dialog设置为可见 } } }

public class DialogExample {

public static void main(String args[]) {

new Dwindow(); } }

3、编写简单的计算器。