问答题

[说明]
面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label控件。要求点击First时则能在Label中显示出Command:First,而点击Second时则能显示出 Command: Second,要求只能使用重载一次actionPerfonned()方法。
程序运行结果如图6所示。


import java. awt.*;
import java. awt. event. *;
import java. applet. *;
/*
< applet cede = exl_7, class width = 800 height = 400 >
</applet >
*/
public class ex]_ extends Applet implements ActionListener
private String str = "ok";
private Label |;
private Button btn;
public void init( )
(1)
I = new Label(str);
I. reshape(10, 10, 150, 30);
add(I);
(2)
btn. reshape(10, 50, 60, 20);
(3)
add(btn);
btn = new Button(" Second" );
btn. reshape(10, 100, 60, 20);
(4)
btn, addActionListener(this);
add(btn);

public void actionPerformed(ActionEvent ae)
str = " Command:" +ae. getActionCommand( )
(5)
ex1_7, html
< HTML >
< HEAD >
< TITLE > ext _7 </TITLE >
</HEAD >
< BODY >
< appletcode =" ext. class" width =800 height =400 >
</applet >
</BODY >
</HTML >

【参考答案】

(1)setLayout(null); (2)btn=new Button("First");
(3)btn.......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
[说明] ①定义私有数据成员code、english分别用于表示考生的编号、英语成绩,它们都是int型的数据。 ②完成成员函数void Student::inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下: 输入编号: 英语成绩: 计算机成绩: ③利用已实现的类Student的成员函数,完成函数void firstname(Student *A[],int uum)的定义,该函数根据考生信息A[],输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。 源程序文件test1.cpp清单如下: #include < iostream. h > class Student (1) int computer; int total; public void getinformation( ); void computesum( ); int getcode( ); int gettotalscore( ); ~Student( ); ; void Student: :getinformation( ) (2) cout << 英语成绩: ; cin> >english; cout << 计算机成绩: ; cin > > computer; void Student:: computesum ( ) total = english + computer; cout << 编号 << code << 总分: <<total << endl; int Student::getcode( ) return code; int Student:: gettotalscore ( ) return total; void firstname(Student * A[] ,int num) (3) tempsum = ( * A[0] ). gettotalscore( ); for( int i=1; i <num; i++) if ( ( ( * A[i] ). gettotalscore( ) ) > tempsum) tempcode = ( * A[i] ). getcode( ); tempsum = ( * A[i] ). gettotalscore( ); cout << 总分最高者-- << tempcode << : << tempsum <<endl; void main( ) Student * A[3]; int i,n =3 for(i=0;i<n;i ++) A[i] = new Student; A[i] -> getinformation( ) for(i=0;i<n;i ++) A[i] -> computesum( ) firstname ( A,3 );
问答题
[说明] 下列最短路径算法的具体流程如下:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择不使森林中产生回路的边加入到森林中去,直至该森林变成一棵树为止,这棵树便是连通网的最小生成树。该算法的基本思想是:为使生成树上总的权值之和达到最小,则应使每一条边上的权值尽可能地小,自然应从权值最小的边选起,直至选出 n-1条互不构成回路的权值最小边为止。 [算法] *对图定义一种新的表示方法,以一维数组存放图中所有边,并在构建图的存储结构时将它构造为一个“有序表”。以顺序表MSTree返回生成树上各条边。* typedef struct VertexType vex1;VertexType vex2; VRType weight; EdgeType; typedef ElemType EdgeType; typedef struct 有向网的定义 VertexType vexs [MAX_VERTEX_N U M ]; 顶点信息 EdgeType edge[ MAX_EDGE_NUM]; 边的信息 int vexnum, arcnum; 图中顶点的数目和边的数目 I ELGraph; void MiniSpanTree_Kruskal( ELGraph G,SqList& MSTree) G, edge 中依权值从小到大存放有向网中各边 生成树的边存放在顺序表MSTree中 MFSetF; InitSet( F, G. vexnum ); 将森林F初始化为N棵树的集合 InitList (MSTree, G. vexnum); 初始化生成树为空树 i=0;k=1; while(k< (1) ) e = G. edge[i]; 取第i条权值最小的边 *函数fix_mfset返回边的顶点所在树的树的根代号,如果边的两个顶点所在树的树根相同,则说明它们已落在同一棵树上。 * ri = fix_mfset(F, LocateVex(e. vex1) ); r2= (2) ; 返回两个顶点所在树的树根 if(r1 (3) r2) 选定生成树上第k条边 if(Listlnsert(MSTree,k,e) (4) ; 插入生成树 mix_mfset( E, r1,r2); 将两棵树归并为一棵树 (5) ; 继续考察下一条权值最小边 DestroySet (F);