[主观题]

下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为

8 1 6

3 5 7

4 9 2

要求用Applet实现上述魔方阵。窗口中包括提示栏,提示输入0~15之间的奇数;输入框,输入方阵的阶数;按钮;点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

注意:不改动程序的结构,不得增行或删行。

源程序文件代码清单如下:

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

import java.lang.Math.*;

/*

<applet code="ex10_3.class" width=800 height=400>

</applet>

*/

public class ex10_3 extends Applet implements ActionListener

{

Panel pane=new Panel();

drawWnd dw;

Label 11 = new Label("输入(0~15的奇数): ");

TextField tf1 = new TextField(5);

B.utton btn = new Button("OK");

int[] [] a=new int[16] [16];

int n=15;

public void init()

{

pane.setLayout(new FlowLayout(FlowLayout.CENTER, 25,5));

pane.add(11);

pane.add(tf1);

pane.add(btn);

pane.addActionListener(this);

add("North",pane);

dw=new drawWnd();

add("South",dw);

}

class drawWnd extends Canvas

{

drawWnd ( )

{

setSize(300,300);

setBackground(Color.GRAY);

}

public void paint(Graphics g)

{

g.setColor(Color. GREEN);

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

g.drawString(Integer.toString(a[i] [j]),i*20,j*20);

}

}

public void actionPerformed(ActionEvent ae)

}

try{

n=Integer.parseInt (tf1.getText ());

int i=1, j=1;

for (i=1;i<=n;i++)

for (j=1; j<=n; j++)

a[i] [j]=0;

j=n/2+1;

a[i] [j]=1;

for (int k=1; k<=n*n; k++)

{

i--;

j++;

if((i<1)&&(j>n))

{

i=i+2;

j--;

}

else

{

if (i<1)

i=n;

if (j>n)

j=1;

}

if (a[i] [j]==0)

a[i] [j]=k;

else{

i=i+2;

j--;

a[i] [j]=k;

}

}

dw. repaint ( );

}

catch (NumberFormatException nfe)

&n

参考答案与解析:

相关试题

设A是一个n阶方阵,已知│A│=2,则│-2A│等于:()

[单选题]设A是一个n阶方阵,已知│A│=2,则│-2A│等于:()A . (-2)n+1B . (-1)n2n+1C . -2n+1D . -22

  • 查看答案
  • 设A是一个n阶方阵,已知A=2,则-2A等于().

    [单选题]设A是一个n阶方阵,已知A=2,则-2A等于().A . ['['B . C . D . -22

  • 查看答案
  • 设A是一个n阶方阵,已知|A|=2,则|-2A|等于:()

    [单选题]设A是一个n阶方阵,已知|A|=2,则|-2A|等于:()A . (-2)n+1B . (-1)n2n+1C . -2n+1D . -22

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中(  ).A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中()。

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中()。A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组D.

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中()。

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中()。A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组D.

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中().

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中().A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组D.

  • 查看答案
  • A是n阶方阵,其秩r<n,则在A的n个行向量中().

    [单选题]A是n阶方阵,其秩r<n,则在A的n个行向量中().A.必有r个行向量线性无关B.任意r个行向量线性无关C.任意r个行向量都构成极大线性无关向量组D.

  • 查看答案
  • 下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每