下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Math.*;
/*
<applet code="ex18_3.class" width=800 height=400 >
</applet>
*/
public class ex18_3 extends Applet implements ActionListener {
Panel pane=new Panel();
drawWnd dw;
Label 11 = new Label("峰值");
TextField tf1 = new TextField(15);
Button btn = new Button("OK");
private float a=0;
public void init(){
pane.setLayout(new FlowLayout(FlowLayout.CENTER,25,5));
pane.add(11);
pane.add(tf1);
pane.add(btn);
btn.addActionListener(this);
add("North",pane);
dw=new drawWnd();
add("South",dw);
}
class drawWnd extends Canvas {
drawWnd() {
setSize(300,100);
setBackground(Color. GRAY);
}
public void paint(Graphics g) {
g.setColor(Color.GREEN);
for(int i=0;i<getSize().width-1;i++){
int y=0;
int y1=y+(int) (Math.sin(i)*a);
int y2=y1+(int) (a*Math.sin(i+1));
g.drawLine(i,y1,i+1,y2);
}
}
}
public void actionPerformed(ActionEvent ae) {
try{
a=Integer.parseInt(tf1.getText());
dw.repaint();
}
catch(NumberFormatException nfe){
tf1.setText("error!");
}
}
}
ex18_3.html
<HTML>
<HEAD>
<TITLE>ex18_3</TITLE>
</HEAD>
<BODY>
<applet code="ex18_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第1题:
在一个图形窗口同时绘制[0,2π]的正弦曲线、余弦曲线,可以使用命令()。
A.x=(0:0.01:2*pi)'; Y=[sin(x),cos(x)]; plot(x,Y);
B.x=(0:0.01:2*pi); Y=[sin(x);cos(x)]; plot(x,Y);
C.fplot(@(x)sin(x),@(x)cos(x),[0,2*pi])
D.fplot(@(x)[sin(x),cos(x)],[0,2*pi])
第2题:
3、下面关于电压传输特性曲线的说法,哪一个是正确的?
A.曲线的X轴表示时间,Y轴表示输出电压。
B.曲线的X轴表示时间,Y轴表示输入电压。
C.曲线的X轴表示输入电压,Y轴表示输出电压。
D.曲线的X轴表示输入电流,Y轴表示输出电流。
第3题:
在窗体中安排一个画布,在画布内绘制一个宽100,高80的红色填充矩形, 矩形内部绘制一个蓝色的填充椭圆. 椭圆中心位置用白色写上"你好"的文字
第4题:
本程序用户在文本框中输入任何数,点击ok按钮,则会判断文本框中的数字是否是整数,并将结果显示在文本框中,用户如果在文本框中输入回车,则文本框清空。
第5题:
【多选题】在一个图形窗口同时绘制[0,2π]的正弦曲线、余弦曲线,可以使用命令()。
A.x=(0:0.01:2*pi)'; Y=[sin(x),cos(x)]; plot(x,Y);
B.x=(0:0.01:2*pi); Y=[sin(x);cos(x)]; plot(x,Y);
C.fplot(@(x)sin(x),@(x)cos(x),[0,2*pi])
D.fplot(@(x)[sin(x),cos(x)],[0,2*pi])