工学院计算机系 Java程序设计 实验指导
实验十五 数组应用
一、实训目的
数组是一种比较重要的数据类型。通过本次实验,掌握Java数组的使用方法,特别是
一维数组和二维数组的声明、创建和使用。 二、实训内容
a) 通过练习书上已有的程序,学习数组的使用方法。 b) 通过程序填空、改错的方法,加深理解。 c) 通过编程练习,进一步掌握数组的使用方法。 三、实训步骤
第一:新建一个名为chapter15的工程,保存路径在为“D:\\学号+姓名(用拼音)\\ chapter15”文件夹下。
第二:练习书上已有的程序,学习一维数组的使用方法。 1. 利用选择排序法完成对数据的递增排序及输出。
2. 在工程chapter13里新建一个java源文件,输入【例5.2】里的代码。 3. 将代码稍加修改,使之实现数据从大到小排列。 第三:程序填空及改错。
1. 在工程chapter13里新建一个java源文件,输入下面的代码,并将空白处代码填完整。 下面的代码所要实现的功能是:数学中的矩阵在java中用二维数组来实现,程序实现两个矩阵相加的运算。 package ch05; class ArrayAdd {
public static void main(String args[]) {
int c[][]={{1,2,3},{4,5,6},{7,8,9}}; int d[][]={{2,2,2},{1,1,1},{3,3,3}}; int i,j;
int e[][]= //e数组用于存放相加结果矩阵 System.out.println(\ for(i=0;i for(j=0; ;j++) System.out.print(c[i][j]+\ \ System.out.println(); } //输出c数组中各元素 System.out.println(\ for(i=0;i 36 工学院计算机系 Java程序设计 实验指导 { for(j=0;j System.out.print(d[i][j]+\ \ System.out.println(); } //输出d数组中各元素 System.out.println(\ for(i=0;i for(j=0;j //各元素相加 System.out.print(e[i][j]+\ \ } System.out.println(); } } } 2. 程序改错。下面程序实现的功能是计算一个数组中各元素的平均值。将程序中的错误 改正,使之能显示出正确的结果。 算法分析: 1)计算平均值的功能由方法arrayAverage来实现。ArrayAverage的形式参数是一维数组。 2)在main方法中以实际参数调用方法arrayAverage。 package ch05; class ArrayAvg { public static void main(String args[]) { int c[9]={1,2,3,4,5,6,7,8,9}; int j; System.out.println(\ for(j=1;j<=9;j++) System.out.print(c[j]+\ \ System.out.println(); System.out.println(\ System.out.println(arrayAverage(c[])); } 37 工学院计算机系 Java程序设计 实验指导 static float arrayAverage(int d) { float average=0; for(int i=0;i 第四:编程题。 自己定义一个一维数组,数组中放10个整数,程序中实现将前5个元素与后5个元素对换,即将第1个元素和第10个元素互换,将第2个元素和第9个元素互换,依此类推。 四、思考练习 a) 参考下面的程序,下面的程序实现从键盘读入n个数字存放到数组中。试将上面 的编程中的10个整数也按此方法从键盘输入。 import java.io.*; //必须引入io包 class ArrayC1 { public static void main(String args[]) throws IOException { BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); int a[],i,temp; String c; System.out.println(\数组中的元素个数 c=keyin.readLine(); temp=Integer.parseInt(c); //键盘输入的是字符串必须转换成整型 a=new int[temp]; System.out.println(\每行输一个元素 for(i=0;i c=keyin.readLine(); a[i]=Integer.parseInt(c); } System.out.println(\ for(i=0;i System.out.print(a[i]+\ \ } } 38 工学院计算机系 Java程序设计 实验指导 实验十六 界面程序设计 一、实验目的 掌握GUI编程中的主要概念:AWT,Swing,窗口、面板,容器布局,布局管理器。掌握GUI编程。掌握事件编程机制。 二、实验内容 1、编程包含一个标签和一个按钮,单击按钮时,标签的内容在\你好\和\再见\之间切换。 2、编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为“普通”、“黑体”和“斜体”。选择文本标签为“普通”的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为“黑体”的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为“斜体”的单选按钮时,普通按钮中的文字的字体为斜体。 3、编程确定当前鼠标的位置坐标。 4、编程使用BorderLayout布局方式放置5个按钮。 三、实验步骤 1. 本程序文件名为TestFrame import java.awt.*; import javax.swing.*; public class TestFrame extends JFrame { JTextArea text; public TestFrame(String s) { super(s);//调用父类的构造函数,设置窗口的标题名称。 Container contentPane = getContentPane();//得到窗口内容面板 contentPane.setLayout(new BorderLayout( ));//设置内容面板的布局为边框布局 //创建并添加文本区到窗口中间 text=new JTextArea(\这是一个文本区,用来输入文本。\ contentPane.add(text,BorderLayout.CENTER);//将文本区添加到窗口中间 //创建图片对象并设置窗口图标 Toolkit tk=getToolkit();//得到一个Toolkit对象 Image img=tk.getImage(\创建图片对象 setIconImage(img);//设置窗口图标 setSize(400,300);//设置窗口的宽、高分别为400像素和300像素 setVisible(true);//设置窗口可见,缺省是不可见的 } public static void main (String[] args) { TestFrame w=new TestFrame(\我的窗口应用程序\ } 39 工学院计算机系 Java程序设计 实验指导 } 2.本程序是在内容面板上布置按钮。 import java.awt.*; import javax.swing.*; public class UsePanel extends JFrame { JTextArea text;//文本区 JButton btn[]=new JButton[5];// 有5个元素的按钮数组 public UsePanel(String s) { super(s); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); text=new JTextArea(\这是一个文本区,用来输入文本。\ contentPane.add(text,BorderLayout.CENTER);//将文本区添加到窗口中间 JPanel panel=new JPanel();//创建缺省布局方式(FlowLayout)的面板 for(int i=0;i contentPane.add(panel,BorderLayout.NORTH);//将面板添加到窗口北边 setSize(400,300); setVisible(true); } public static void main (String[] args) { UsePanel w=new UsePanel(\演示面板布局\ } } 四、思考练习 1. 创建一个含有标签和按钮的窗口,实现点击按钮修改标签背景颜色的功能。 2. Java的事件处理机制是怎样 40