问答题下面是一个Applet程序,其功能是计算山顶的高度,计算方法是;该山顶由a点量得仰角度数为a度,由b点量得仰角度数为b度,且测得a,b点之间的距离为c米,求山的高度。要求窗口中有3个输入框,分别作为a,b,c的输入,一个按钮点击后进行计算,结果显示在另一个文本框中(这个文本框不可编辑)。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.Applet;/*<appletcode="ex23_3.class"width=800height=400></applet>*/publicclassex23_3extendsAppletimplementsActionListenerPanelpane=newPanel();Label11=newLabel("a点仰角:");TextFieldtf1=newTextField(5);Label12=newLabel("b点仰角:");TextFieldtf2=newTextField(5);Label13=newLabel("a,b之间距离:");TextFieldtf3=newTextField(5);Buttonbtn=newButton("OK");Label14=newLabel("山高:");TextFieldtf4=newTextField(20);ex23_3obj23_3;publicvoidinit()pane.setLayout(newFlowLayout(FlowLayout.LEFT,10,5));pane.add(11);pane.add(tf1);pane.add(12);pane.add(tf2);add("North",pane);Panelp2=newPanel();p2.setLayout(newFlowLayout(FlowLayout.LEFT,10,5));p2.add(13);p2.add(tf3);p2.add(btn);btn.addActionListener(this);add("Center",p2);Panelp3=newPanel();p3.setLayout(newFlowLayout(FlowLayout.LEFT,10,5));p3.add(14);tf4.setEditable(true);p3.add(tf4);add("South",p3);obj23_3=newex23_3();publicvoiddoMessure(doubleal,doublea2,doublea3,TextFieldtf)doublepi=Math.PI,a,b,h;a=al*pi/180.0;b=a2*pi/180.0;h=a3/(1.0/Math.tan(a)-1.0/Math.tan(b));tf.setText(Integer.toString(h));publicvoidactionPerformed(ActionEventae)doublea,b,c;trya=newDouble(tf1.getText()).doubleValue();b=newDouble(tf2.getText()).doubleValue();c=newDouble(tf3.getText()).doubleValue();obj23_3.doMessure(a,b,c,tf4);catch(NumberFormatExceptionnfe)tf4.setText("wrongnumber!");ex23_3.html<HTML><HEAD><TITLE>ex23_3</TITLE></HEAD><BODY><appletcode="ex23_3.class"width=800height=400></applet></BODY></HTML>
问答题System. out.println (s+"结束!");
问答题请完成下列Java程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次50元将钱汇入。编写一个程序,模拟实际作业。要求实现2个类,一个是银行类,一个是顾客类。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
Customer2 :sum= 50
Customer1 :sum= 50
Customer1 :sum= 100
Customer2 :sum= 100
Customer1 :sum= 150
Customer2 :sum= 150
class bank{
private static int sum=0;
public static void add(int.n,char c){
int tmp=sum;
______________;
try{
Thread.sleep(((int) ((2000-500+1)*(Math.random())))+500);
}
catch(InterruptedException e){}
sum=tmp;
System.out.println("Customer"+c+" :sum= "+sum);
}
}
class customer extends Thread{
static char flag17_2 = "1";
public void run(){
char myflag17_2;
synchronized(this) {
myflag17_2 = flag17_2++;
}
for(int i=1;i<=3;i++)
______________________;
}
}
public class ex17_2{
public static void main(String args[]){
customer c1=new customer();
customer c2=new customer();
c1.start();
c2.start();
}
}
问答题本题程序首先给一个数组赋值,然后计算该数组中下标为奇数的元素的和。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 public class basic public static void main (String args[]) int sum; ______; int arrayList[] = new int[20]; for(int i = 0; i <= 19; i ++) arrayList[i] = i + i; int pos = 0; while(pos < 20) if(______) sum = sum + arrayList[pos]; ______; System.out.println("sum ="+ sum);
问答题下面是一个Applet程序,其功能是通过两个文本框获得用户输入的两个数,按回车键计算这两个数的商。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.Event.*;
import java.applet.*;
/*
<applet code="ex5_3.class"width=800 height=400>
</applet>
*/
public class ex5_3 extends Applet
{
private TextField tf1,tf2;
private String strAnswer;
public void init()
{
tf1=new TextField(20);
add(tf1);
tf2=new TextField(20);
add(tf2);
strAnswer="Undefined";
}
public void paint(Graphics g)
{
Font f=new Font("TimesRoman",Font.PLAIN,20);
g.setFont(f);
g.drawstring("result:",80,100);
g.drawstring(strAnswer,60,150);
}
public boolean action(Event e,Object o)
{
String s1=tf1.getText();
String s2=tf2.getText();
try
{
int n1={{U}}String.valueOf(s1){{/U}};
int n2={{U}}String.valueOf(s2){{/U}};
int out=n1/n2;
StrAnswer={{U}}Integer.parseInt(out){{/U}};
}
catch(NumberFormatException nfe)
{
strAnswer="error number!";
}
repaint();
return true;
}
}
{{B}} ex5_3.html{{/B}}
<HTML>
<HEAD>
<TITLE>ex5_3</TITLE>
</HEAD>
<BODY>
<applet code="ex5_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
问答题下面是一个Applet程序,其功能是绘制三维矩形以使该矩形面凹下,并将图像放入凹下的矩形面中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;importjava.awt.image.*;importjava.util.*;importjava.net.*;/*<appletcode="ex16_3.class"width=800height=400></applet>*/publicclassex16_3extendsAppletprivateImageimg;publicvoidinit()URLurl=getCodeBase();img=getImage(url,"ex16_3.gif");MediaTrackermt=newMediaTracker();mt.addImage(img,1);trymt.waitForAll();catch(Exceptione)e.printStackTrace();setBackground(Color.black);publicvoidpaint(Graphicsg)intthick=3,x=10,y=10;g.drawImage(img,x,y);g.setColor(Color.lightGray);intw=img.getWidth(this);inth=img.getHeight(this);for(inti=0;i<thick;i++)g.draw3DRect(x,y,w+(2*i),h+(2*i),true);ex16_3.html<HTML><HEAD><TITLE>ex16_3</TITLE></HEAD><BODY><appletcode="ex16_3.class"width=800height=400></applet></BODY></HTML>
问答题请完成下列Java程序:读取自己的源文件并把它压缩成GZIP文件。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 import java.io.*; import java.util.zip.*; public class exl6 2 public static void mainString[] arg) ex16_2 obj16_2 = new ex16_2(); obj16_2.doZip("ex16_2.java","ex16_2.gzip") public void doZip(String strIn,String strOut FileInputStream in; FileOutputStream out; GZIPOutputStream gzip; int nFileLength; byte[] barray = new byte[10]; try in = new FileInputStream(strIn); out = new FileOutputStream(strOut); gzip = new GZIPOutputStream(out); while((nFileLength = in.read(barray, 0 barray.length)) > 0) _____________________; ______________________; gzip.close(); catch(Exception e) e.printStackTrace();
问答题本题中,主窗口中有两个下拉菜单,一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。 import java.awt.*; import java.awt.event.*; class java3 extends Frame String[]figureNames="圆形","椭圆形","正方形","长方形"); String[]colorNames="红色","绿色"."蓝色"."黄色"; Color[]colorValues=Color.red,Color.green, Color.blue,Color.yellow; Choice chFigure=new Choice(); Choice chColor=new Choice(); int curX,curY; java3() super("java3"); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); Panel p=new Panel(new GridLayout(1,0)); for(int i=0;i<figureNames.length;i++) chFigure.addItem(figureNames[i]); for(int i=0;i<colorNames.length;i++) chColor.addItem(colorNames[i]); p.add(chColor); p.add(chFigure); add(p,BorderLayout.NORTH); addMouseListener(this); setSize(300,300); show(); public void update(Graphics g) g.getColor(colorValues[chColor.getSelectedIndex()]); switch(chFigure.getSelectedIndex()) case 0; g.fillOval(curX,curY,30,30); break; case 1: g.fillOval(curX,curY,30,50); break; case 2: g.fillReet(curX,curY,30,30); break; case 3: g.fillRect(curX,curY,30,50); break; class MouseEventListener implements MouseAdapter public void mousePressed(MouseEvent evt) curX=evt.getX(); curY=evt.getY(); repaint(); static public void main(String[]args) new java3();
问答题通过实现Runnable接口创建线程,请在下画线处加入语句完成此程序:
public class ThreadTest{
public static void main(String args[]){
Thread t1=new Thread(new Hello());
Thread t2=new Thread(new Hello());
______
t2.start();
}
}
class Hello implements Runnable{
int i;
public void run(){
while( true){
System.out.println("Hello"+i++);
if(i==5)break;
}
}
}
问答题本题中,在下画线上填写代码,指定变量b为字节型,变量f为单精度实型,变量1为64位整型。
问答题本题的功能是监听键盘键的敲击,并显示在窗口中。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class java3 {{U}}extends JFrame extends KeyListener{{/U}}
{
private String linel="",line2="";
private String line3="";
private JTextArea textArea;
public java3()
{
super("java3");
textArea=new JTextArea(10,15);
textArea.setText("Press any key on the keyboard...");
textArea.setEnabled(false);
addKeyListener(this);
getContentPane().add(textArea);
setSize(350,100);
show();
}
public void keyPressed(KeyEvent e)
{
line1="Key pressed:"+e.getKeyText(e.getKeyCode());
setLines2and3(e);
}
public void keyReleased(KeyEvent e)
{
linel="Key released:"+e.getKeyText(e.getKeyCode());
setLines2and3(e);
}
public void keyTyped(KeyEvent e)
{
{{U}}Line1="Key typed:"+e.getKeychar(){{/U}};
setLines2and3(e);
}
private void setLines2and3(KeyEvent e)
{
line2="This key is"+(e.isActionKey()?"":"not")+"an action key";
String temp=e.getKeyModifiersText(e.getModifiers());
line3="Modifier keys pressed:"+(temp.equals("")?"none":temp);
textArea.setText(line1+"n"+line2+"/n"+line3+"n");
}
public static void main(String args[])
{
java3 app=new java3();
{{U}}addWindowListener(new Windowadapterl(){{/U}}
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
问答题本程序的功能是,通过鼠标确定两个点,然后画两点间的直线。窗口中有一个按钮“Drawline”,单击该按钮后,它就处于按下状态,然后用鼠标在窗口上点一下,在单击的地方就会出现一个坐标圆点,用鼠标在另一个地方单击一下又会出现另一个圆点,并且此时在两个坐标圆点间划出一条直线,且“Drawline”按钮处于可用状态,再单击这个按钮就可以画另一条直线,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classEventQueuePanelextendsJPanelimplementsActionListener{EventQueuePanel(){JButtonbutton=newJButton("Drawline");add(button);button.addActionListener(this);}publicvoidactionPerformed(ActionEventevt){Graphicsg=getGraphics();______p=getClick();g.drawOval(p.x-2,p.y-2,4,4);Pointq=getClick();g.drawOval(q.x-2,q.y-2,4,4);g.drawLine(p.x,p.y,q.x,q.y);g.dispose();}publicPointgetClick(){EventQueueeq=Toolkit.getDefaultToolkit().getSystemEventQueue();while(true){try{AWTEventevt=eq.getNextEvent();if(evt.getID()==MouseEvent.MOUSE_PRESSED){MouseEventmevt=(MouseEvent)evt;Pointp=______();Pointtop=getRootPane().getLocation();p.x-=top.x;p.y-=top.y;returnp;}}catch(InterruptedExceptione){}}}privateinty=60;}classEventQueueFrameextendsJFrame{publicEventQueueFrame(){setTitle("exam_17");setSize(300,200);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});ContainercontentPane=getContentPane();contentPane.add(newEventQueuePanel());}}publicclassexam_17{publicstaticvoidmain(String[]args){Frameframe=newEventQueueFrame();frame.show();}}
问答题下面的程序是用do-while语句计算10的阶乘。请在程序的每条横线处填写1个语句,使程序的功能完整。
注意:请勿改动main()主方法和其他已有的语句内容;仅在横线处填入适当的语句。
源程序文件代码清单如下:
public class DoWhileLoop
{
public static void main(______)
{
int n=10;
long result=1;
do
{
_____;
}
_____;
System.out.println("10的阶乘为:"+result);
}
}
问答题以下程序中,使用适当的布局管理器,在Frame框的“North”位置添加一句提示信息,在“South”位置添加一个单行文本框,在这个文本框中输入的内容将会显示在“Center”位置。运行结果如下图所示。注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。importjava.awt.*;importjava.awt.event.*;publicclassExample2_6extendsFramepublicstaticvoidmain(String[]argv)Example2_6frame=newExample2_6("Example2_6");frame,init();frame.setSize(300,300);frame,show();publicExample2_6(Stringname)super(name);addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)__________;);publicvoidinit()setLayout(new___________);LabellabelTitle=newLabel("在文本框中输入字符串,可以在Frame中间显示");LabelshowTextLabel=newLabel();TextFieldtextField=newTextField("请在这里输入字符串");textField.addActionListener(newAddStringListener(showTextLabel,textField));add("North",labelTitte);add("Center",showTextLabel);add("South",textField);classAddStringListenerimplementsActionListenerLabellabel;TextFieldtextField;publicAddStringListener(Labellabel,TextFieldtextField)this.label=label;this.textField=textField;publicvoidactionPerformed(ActionEvente)label,setText(textField.getText());
问答题本程序是一个Applet,页面中有一个按钮“横向移动”和一个标签“我可以被种植”,初始单击按钮时,按钮做横向向右移动,碰到标签后标签消失,并且按钮的名称变为“纵向移动”,如果继续单击按钮,则按钮做纵向向下移动,如图所示。importjava.awt.*;importjava.awt.event.*;publicclassexam_80extendsjava.applet.AppletimplementsActionListener{Buttonbutton;Labellabel;publicvoidinit(){button=newButton("横向移动");button.setBackground(Color.red);button.addActionListener(this);label=newLabel("我可以被碰掉",Label.CENTER);label.setBackground(Color.blue);add(button);add(label);}publicvoidactionPerformed(ActionEvente){______rect=button.getBounds();if(rect.intersects(______)){label.setVisible(false);}if(label.isVisible()){button.setLocation(rect.x+3,rect.y);}else{button.setLocation(rect.x,rect.y+3);button.setLabel("纵向走动");}}}exam_80.html:<html><head><title>exam_80</title></head><body><appletcode="exam_80.class"width="400"height="500"></applet></body></html>
问答题本程序中定义了三个标签,分别为纯文本的标签lab1、纯图形的标签lab2、文本和图形混合的标签lab3,如图所示。importjava.awt.GridLayout;importjava.awt.event.WindowEvent;importjava.awt.event.WindowAdapter;importjavax.swing.*;publicclassexam_59extendsJPanel{JLabellab1,lab2,lab3;publicexam_59(){ImageIconicon=______("exam_59.gif","图形");setLayout(newGridLayout(3,1));lab1=newJnabel("纯文本的标签");lab2=newJLabel(______);lab3=newJLabel("文本图形混合的标签",icon,JLabel.LEFT);lab3.setHorizontalTextPosition(JLabel.LEFT);add(lab1);add(lab2);add(lab3);}publicstaticvoidmain(String[]args){JFrameframe=newJFrame("exam_59");frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});frame.setContentPane(newexam_59());frame.pack();frame.setVisible(true);}}
问答题下面是一个Applet程序,设置其宽高为300和300像素,程序的功能是在小程序界面画一根水平线和一根垂直线,将小程序界面均分为4个区域,鼠标在不同的区域移动时显示不同的几何图形。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.awt.Graphics.*;importjava.awt.event.*;/*<appletcode=AppletProgramingwidth=200height=200></applet>*/publicclassAppletProgramingextendsAppletintm=-1,n=-1;publicvoidinit()addMouseMotionListener(newMouseMotionAdapter()publicvoidmouseMoved(Mousep)m=e.getX();n=e.getY();repaint());publicvoidpaint(Graphicsg)g.drawLine(100,0,100,200);g.drawLine(0,100,200,100);if(m<100g.fillOval(10,10,80,80);elseif(m>100g.fillRect(110,10,80,80);elseif(m<100g.fillArc(10,130,80,35,50,250);elseif(m>100intyvals[]=120,170,170;g.setColor(Color.yellow);g.fillPolygon(xvals,yvals,3);ex35_3.html:<html><head><title>ASimpleProgram</title></head><body><appletcode="AppletPrograming.class"width=800height=400></applet></body></html>
问答题本题程序的功能是将输入的字符串转换为实数,并打印输出。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 import java.io.*; public class basic public static void main(String[] args) InputStreamReader ir; BufferedReader in; Ir = new InputStreamReader______; in = new BufferedReader(ir); double d = 0.0; System.out .print ("请输入一个实数:"); ______ String s = in.readLine(); ______ catch(Exception e) System.out.println ( "你输入的实数是:"+d);
问答题本程序比较两个实型对象d1和d2的大小,并输出比较结果。其中对象d1和对象d2的值都是7.2,打印输出结果为:Equal!。
public static void main(String[] args) {
Double d1=______(7.2);
Double d2=______("7.2");
if(______)
System.out.println("Equal!");
else
System.out.println("Unequal!");
}
}
问答题注意:下面出现的“考生文件夹”均为%USER%在考生文件夹下存有文件名为Java_1.java文件,请完善Java_1.java文件,并进行调试,使程序输出结果如下:由于Java_1.java文件不完整,请在注释行“//*********Found*********”下一行语句的下画线地方填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:importjavax.swing.*;publicclassJava_1publicstaticvoidmain(Stringargs[])//*********Found**********StringBufferbuf=new______("Hello,howareyou?");Stringoutput="buf="+bur.toString()+"/nlength="+buf.length()+"/ncapacity="+buf.capacity();buf.ensureCapacity(75);output+="/n/nNewcapacity="+buf.capacity();buf.setLength(10);output+="/n/nNewlength="+buf.length()+"/nbuf="+buftoString();JOptionPane.showMessageDialog(null,output,"字符串缓存长度和容量的实例",//*********Found**********JOptionPane.______);//*********Found**********System.______(0);
