[问答题] 下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为8 1 63 5 74 9 2要求用Appl

[问答题] 下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为8 1 63 5 74 9 2要求用Appl,第1张

[问答题] 下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为 8 1 6 3 5 7 4 9 2 要求用Appl

[问答题] 下面是一个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.*;

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);

Button btn = new Button("OK");

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

int n=15;

public void init()

pane.setLayout(new FlowLayout(FlowL

正确答案:

btn.addActionListener(this)a[1][j]=1int k=2;k<=n*n;k++

参考解析:

本题主要考查Applet图形界面编程和 for循环语句的使用以及对数组的 *** 作。解题关键是明白魔方阵的基本原理,并能看得懂这个问题的算法,熟悉数组 *** 作,for循环语句以及Applet界面构件及其事件处理机制。魔方阵的排列规律是:首先将1放在第一行中间一列;然后从2开始直到n*n为止。各数依次按如下规则存放:每一个数存放的行比前一个数的行数减1、列数加1;如果上一个数的行数为1,则下一个数的行数为n;当上一个数的列数为n时,下一个数的列数应改为1,行数减1;如果按以上规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面。本题中,第1处,事件监听器应该是btn对象的,不是pane对象;第 2处,应该按照上述规则第一条,将1放在第一行中间一列:第2处,循环变量应该从2开始,如果是1得不到正确答案。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5585601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存