首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个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
103
问题
下面是一个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://jikaoti.com/ti/OkkiFFFM
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
从所给的四个选项中,选择最合适的一个填入问号处,使下图中的立体图形①、②、③和④可组成一个完整的长方体。
2006年度,江苏省医疗结构中,非营利性医疗机构比营利性医疗机构多____。2006年度.江苏省社区卫生服务站的数量是____。
同事小王总是“三分钟热度”,经常提出各种意见,如果意见不被采纳。小王就会垂头丧气,即使意见被采纳。也不踏踏实实把工作做好,影响了你们的工作进度,你怎么办?(2012年6月30日上午山西省公务员面试真题)
王某持匕首抢劫张某,在争斗中王某头部撞击墙角昏迷倒地,匕首掉在地上。张某见状,捡起匕首往王某心脏部位猛刺数下,导致王某死亡。对于张某用匕首刺死王某的行为,下列说法正确的是()。
甲欲杀死乙,在乙饭碗里投放毒药,不料朋友丙分食了乙的饭菜,甲为了杀死乙,没有阻止丙,结果导致乙和丙均中毒死亡。甲对丙死亡所持的心理态度是()。
电脑作为日常工具走进寻常百姓家,既给我们的生活带来便利,同时电脑病毒、黑客等问题也给我们带来困扰。以下关于计算机病毒的叙述,正确的是()。①我们平常所说的“黑客”与“计算机病毒”其实是一回事②若用杀毒盘清毒后,感染病毒的文件可以
党的十八大提出的“四个监督”的内容是()。
金融市场最基本的功能是()。
根据以下资料,回答以下问题。E省统计局公布的数据显示,2014年上半年E省实现地区生产总值(GDP)5141.7亿元,同比增长了6.8%.比全国平均水平低了0.6个百分点。分产业来看,第一产业增加值268.79亿元,同比增长4.0%;第
设xOy平面第一象限中有曲线:y=y(x),过点A(0,一1),y’(x)>0.M(x,y)为上任意一点,满足:弧段的长度与点M处的切线在x轴上的截距之差为一1.(Ⅰ)导出Y=y(x)满足的微分方程和初始条件;(Ⅱ)求曲线的表达式.
随机试题
执行器能够完全代替人的手、脚操作。()
下列代号中,板材对接焊缝试件新考规代号有()。
口服补液盐治疗腹泻适用于( )
下列违反无菌技术操作原则的一项是()。
()是行政复议程序的核心。
甲向乙购买价值25万元的汽车一辆。双方约定:甲先交付10万元,乙即将车交付甲,其余款项由甲分三次付清,乙保留汽车所有权至甲付清全部车款之时。收到甲交付的10万元车款后,乙将车交付甲,但未办理车辆过户登记。在甲付清全部车款前,乙又以30万元的价格将该车卖给不
一个完全竞争的市场结构,必须具备下列条件()。
办公室空气环境的优劣会直接影响办公者的()
建构主义学习环境设计理论强调()。
设f(χ)=,且f〞(0)存在,求a,b,c.
最新回复
(
0
)