首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求用Applet实现上述魔方阵,窗口中包括提示栏,
下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求用Applet实现上述魔方阵,窗口中包括提示栏,
admin
2009-01-15
141
问题
下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如三阶魔方阵为:
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="ex19_3.class" width=800 height=400 >
</applet>
*/
public class ex19_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(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
[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
[j]=0;
j=n/2+1;
a
[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
[j]==0)
a
[j]=k;
else{
i=i+2;
j--;
a
[j]=k;
}
}
dw. repaint ( );
}
catch(NumberFormatException nfe){
tf1.setText("error!");
}
}
}
ex19_3.html
<HTML>
<HEAD>
<TITLE>ex19_3</TITLE>
</HEAD>
<BODY>
<applet code="ex19_3.class" width=800 height=400
</applet>
</BODY>
</HTML>
选项
答案
btn.addActionListener(this) a[1]][j]=1 int k=2;k<=n*n;k++
解析
本题主要考查Applet图形界面编程和for循环语句的使用以及对数组操作。解题关键是明白魔方阵的基本原理,并能看得懂这个问题的算法,熟悉数组操作,for循环语句以及Applet界面构件及其事件处理机制。魔方阵的排列规律是:首先将 1放在第一行中间一列;然后从2开始直到n*n为止,各数依次按如下规则存放:每一个数存放的行比前一个数的行数减1、列数加1;然后如果上一个数的行数为1,则下一个数的行数为n;再次当上一个数的列数为n时,下一个数的列数应改为1,行数减1;最后如果按以上规则确定的位置上的已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数的下面。本题中,第一处,事件监听器应该是btn对象的,不是pane对象;第二处,应该按照上述规则第一条,将1放在第一行中间一列;第二处,循环变量应该从2开始,如果是1得不到正确答案。
转载请注明原文地址:https://www.kaotiyun.com/show/hIID777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是:
无论是现代游戏,还是传统游戏,都______出了一定的知识、社会和时代特征,同时也______了团结、多样性和包容的价值。但随着社会变迁和时代发展,很多有价值的传统游戏正在一代又一代的______中逐渐消逝。填入画横线部分最恰当的一项是:
组织激励很重要,要做好组织激励有不同的方法,以下是影响组织激励的几个主要因素:(1)工作环境;(2)薪酬福利;(3)领导认可;(4)成就感;(5)组织文化;(6)职业发展。请从中选择两个因素并说明理由。请考生再补充一个针对飞机上使用手机这一情况的相应观
黄某是甲县人事局的干部,他向县检察院举报了县人事局领导叶某在干部调配中收受钱物的行为,2个月后未见动静,黄某几经努力才弄清是检察院的章某把举报信私下扣住并给了叶某。黄某于是又向县人大、市检察院举报章某的行为。黄某的这一行为属于下列哪一种?(
王某持匕首抢劫张某,在争斗中王某头部撞击墙角昏迷倒地,匕首掉在地上。张某见状,捡起匕首往王某心脏部位猛刺数下,导致王某死亡。对于张某用匕首刺死王某的行为,下列说法正确的是()。
依据我国特别行政区基本法,下列哪个选项的表述是正确的?()
《全面推进依法行政实施纲要》要求,减少行政执法层次,适当下移执法重心。对与人民群众日常生活、生产直接相关的行政执法活动,其主要实施机关是()。
由商品的价格变动所引起的商品相对价格的变动,进而由商品的相对价格变动所引起的商品需求量的变动,称为()。
研究表明,糟糕的空气质量有可能导致疲劳、头痛等不适反应和更严重的各类疾病,而室内空气污染平均高于室外10倍。下列属于造成室内空气质量不佳的因素是()。①空调②复印机、静电除尘器③生理代谢④尘螨
行政行为作出后,非依法定程序不得随意变更或撤销,这是行政行为的()。
随机试题
能顺木之天,以致其性焉尔。天:致其性:
Ihaven’tdecidedwhichhotel________.
阎某深夜听见自己家的狗一阵狂叫,怀疑有小偷潜入,便起身拿起猎枪外出查看,朦胧夜色中见有几个人走过来,李某便向这几个人开枪,击中其中一个巡逻的警察,致其死亡。关于阎某的罪过形式,下列哪一选项是正确的?()
以下对抽象行政行为的理解正确的是哪项?
贯彻稳定和发展经济职能的财政措施不包括()。
甲公司拟建一生产项目,预计投产第一年的流动资产需用额为35万元,流动负债需用额为15万元;预计第二年流动资金需用额为10万元,流动负债需用额为5万元,以后各年与此相同。则下列表述中,正确的有()。
学习一种新材料时运用联想、假借意义,对记忆很有帮助的这种方法是()。
下列叙述正确的是()。
在我国,有关法定继承人的顺序,错误的说法是()。
无差异市场营销:指企业不考虑各子市场的特性,而只注重市场的共性,决定只推出单一的产品,运用单一的市场营销组合,力求在一定程度上适合尽可能多的顾客需求。根据上述定义,下列属于无差异市场营销的是()
最新回复
(
0
)