《Java程序设计》实验指导书-2 - [1] 下载本文

//以下grade( )方法的功能是根据所给成绩,得出成绩的等第请完成相应的代码

void grade(int score){ }

public static void main(String[] args){

//该语句功能是将标准输入流system.in与输入流、缓冲流套接,从键盘接受一个字符串

BufferedReader strin=new BufferedReader(new InputStreamReader(System.in)); System.out.print(\

//这里try{ }catch(){ } 结构为Java系统要求的异常处理为第六章的内容 try{

//将键盘输入的字符串转换成整数类型,并赋值给变量s

s=Integer.parseInt(strin.readLine()); //以上方法注意在以后自己的程序中加以应用 }catch(IOException e){ }

shiyan12 x=new shiyan22(); x.grade(s); } }

3. 给出一个不多于5位的正整数,要求(1)求出他是几位数(2)分别打印出每一位数字

(3)按照逆序打印出各位数值。例如123应输出321。 4. 求40的阶乘。

本题编程时要考虑到所求结果的准确性

5. 给出10个数,使用某种排序方法,按照从小到大的顺序输出各个数。

实验三 JAVA面向对象特性实验

实验目的

1. 过实验使学生类的封装、继承和多态等特性。 2. 掌握JAVA类的设计方法。

3. 掌握JAVA类继承以及方法重写的实现。 4.掌握接口的设计方法。

5.掌握包的设计以及使用方法。 实验原理

面向对象是Java语言最基本的特征,其中封装、继承和多态是面向对象程序设计的三个关键特征。

将对象的数据与操作数据的方法结合,通过方法将对象的数据与实现细节保护起来就是封装。外界只能通过对象的方法访问对象,这样既保证了对象数据的一致性,又提高了软件模块的内聚性。继承性使得子类继承父类的状态(变量)和行为(方法),这样提高了编

程的效率和代码的利用率。

Java中类都有构造方法,通常构造方法用来进行该类的初始化。构造方法与所属的类同名,但是要注意只有无参数的构造方法可以继承,而有参数的构造方法是不能够被继承的。

方法重写可以隐藏父类定义的方法,可以使子类有自己特有的行为方法。要注意子类中重写的方法必须与父类中对应的方法具有相同的返回值、方法名和参数列表。方法重写又是实现对象运行时多态的基础,而多态性又使得程序具有良好的可扩展性。

包又是Java的重要特色,它可以将一组相关类与接口包裹起来形成包。提供了以包为单位的独立命名空间,有效地解决了命名冲突的问题。

通过以下几个实验,可以掌握和理解类的这些基本特性。 实验内容

1. 设计一个水果类,要求包括名称(name),颜色(color),产地(place)等属性以及

得到和输出这些属性的方法。要求各有一个无参和有参的构造函数。

2. 设计一个苹果类和一个菠萝类,继承水果类。并至少具有一个品种属性。重写父类的部

分方法。要求这两个类都有各自的构造函数。 3. 将以上各类包含在一个包中。

4. 设计一个接口Action,该接口中至少包含吃(eat),摘(pick)和存储(store)方法。

要求以上各类实现该接口。 5. 计一个测试类,输出所有信息。

实验四 Java输入输出实验

实验目的

1.通过实验使学生理解JAVA输入输出系统的基本原理。

2.掌握字节流输入输出类(FileInputStream,FileOutputStream)、字符流输入输出类(FileReader,FileWriter)、随机存取文件类RandomAccessFile及File类的使用方法。 实验原理

应用程序常常需要从外界输入数据,或者把数据输出到外界。Java的输入输出系统支持流式输入/输出(即顺序存取方式)和随机存取文件的方式,保存数据的粒度从字节、字符到对象。其中流式输入输出是最基础的,应该重点掌握。 实验内容

1.编写一个程序,求2—200之间的素数,并将结果保存在文件prime.dat中。再从该文件中读取内容并在屏幕上显示出来。

以下程序共有两个类,类prime完成求素数。请根据所述功能,在程序空白处填空。 import java.io.*; class prime{

void getprime(int m,int n,int a[]){ int i,j,k;

for(i=m,k=0;i<=n;i++){ for(j=2;j<=i/2;j++){

if(i%j==0) break; }

if(j>i/2) a[k++]=i;

} } }

public class shiyan41{

public static void main(String[] args){ File primefile=new File(\ prime p=new prime(); int a[]=new int[50]; int i=0,c;

p.getprime(2,200,a); try{

FileOutputStream out= ; //创建文件输出字节流

FileInputStream in= ; //创建文件输入字节流 while(a[i]!=0){

; //写数据 }

while((c=in.read())!=-1){ System.out.println(c); }

in.close();

out.close();}catch(IOException e){ e.printStackTrace();} } }

2.写一个程序显示在程序的命令行中指定的目录中所有的文件和目录,包括文件大小以及是文件还是目录类型,并且按照字母顺序排列显示。

3.使用随机访问流读出文本文件最后n个字符,文本文件名和数字n用命令行参数的方式提供。

以下程序是本题的主要代码,按照题目要求运行时命令行指定文本文件名和数字n。例如:java shiyan44 text.txt 12 其中文本文件名 text.txt对应args[0], 12对应args[1]。必须加以注意的是这里12为字符串,要求在程序中加以处理转化为数值类型。请根据功能要求将空白处的语句填写完整。 import java.io.* ;

public class shiyan44{

public static void main(String args[])throws Exception{ String filename,s,t; int n=0;

long leng,filepoint; //注意这里定义为长整型

RandomAccessFile file= ; //创建随机文件读写对象 leng=file.length(); t=args[1];

//以下循环语句完成将从命令行接受到的数字字符转换成为整数类型 for(int i=0;i

n=10*n+(int)(t.charAt(i)-48); }

file.skipBytes((int)(leng-n));

//将文件指针向前移动到最后n个字符,请注意这里为何要将长整形转换为整型类型 filepoint=file.getFilePointer(); while(filepoint

s= ; //读出内容并赋值给变量s System.out.println(s);

filepoint=file.getFilePointer(); }

file.close(); } }

4.编写一个程序,保存一个包含整数、日期和地址的对象到文件sample.dat中,并从该文件中读取对象显示出来。

实验五 基于AWT及SWING的GUI及事件处理实验

实验目的

1. 熟悉JAVA的图形用户界面的基本组件,以及它们的层次关系和使用方法。

2.掌握常见的布局管理设计器,如FlowLayout,GridLayout,BorderLayout。学会如

何进行布局设计。

3.掌握事件驱动原理,使GUI中的基本组件能够响应用户的操作。

实验原理

在应用程序的开发中,开发出友好的图形用户界面是极为重要的。在Java中有AWT(Abstract Windows Toolkit 抽象窗口工具集)和Swing两类工具集,其中AWT和本地代码有关并不完全独立于平台,而Swing成为轻量级组件完全支持跨平台。但是两者的机制完全一样,例如事件处理机制都采用监听方式;都提供了容器、布局管理器的机制。 实验内容

1.编写程序,包括一个标签、文本框和命令按钮。当用户单击按钮时,程序把文本框中的内容复制到当前的位置。 2.编写程序,利用JtextField和JpasswordField分别接收用户输入的用户名和密码,并对用户输入的密码进行检验。对于每个用户名有三次密码输入机会。

3.编写程序实现一个计算器,包括10个数字(0-9)按钮和4个运算符(加、减、乘、除)按钮,以及等号和清空两个辅助按钮,还有一个显示输入输出的文本框。

以下是本题的参考代码,请大家调试运行然后根据自己的需求添加相应的功能。如增加开平方根、求阶乘等功能。 import java.awt.event.*; import javax.swing.*; import java.awt.*;