四、程序编程题:
1、编写一个Applet程序,利用Graphics类可绘制的图形:直线、直角矩形、圆角矩形、多边形、圆和椭圆,各个图形的坐标可以自定义。
import java.awt.*;
import java.awt.event.*;
public class GraphicsTest extends Frame{
private class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0); } }
public GraphicsTest() {
super(\); setSize(200,200); setVisible(true);
addWindowListener(new WindowCloser()); }
public void paint(Graphics g) {
g.setColor(Color.black); g.drawLine(10,40,30,40); g.setColor(Color.blue); g.drawRect(30,40,100,200); // g.setColor(Color.red);
// g.drawPolygon();//封闭的多边形 g.setColor(Color.yellow); g.drawOval(40,60,100,200); }
public static void main(String args[]) {
GraphicsTest x= new GraphicsTest(); } }
2、编写一个Applet程序,包括一个标签对象prompt和一个按钮对象btn,实现ActionListener接口,监听并处理btn引发的动作事件。要求当单击按钮时,标签对象上的字符发生改变。
3、编写一个Application或者Applet程序,包含一个TextField对象tf和一个Text Area对象ta,实现了Text Listener接口和Action Listener接口,要求当用户在tf中
输入或修改文本时,在tf文本区域中可以得到一个同步的拷贝。当用户在tf中输入回车时将tf中的文本清空。
4、创建一个标题为“按钮”的窗框,窗框中显示有“按下我”字样的按钮。
4解:
import java.awt.*;
public class A extends Frame { private Button B= new Button(\按下我\); public A() { super(\按钮\); add(B); pack(); setVisible(true); } public static void main(String args[]) { A C = new A(); } }
public class Point2D {
private int x; private int y;
public Point2D(int x,int y){ this.x=x; this.y=y; }
public void offset(int a, int b) {
x=x+a; y=y+b; }
共 6 页,第 6 页 static double Dist(Point2D p2d1,Point2D p2d2) {
System.out.println(\点p2d1\+\+p2d1.x+\+p2d2.y+\+\与点p2d2\+\+p2d2.x+\+p2d2.y+\+\之间的距离为\);
return(Math.sqrt((p2d1.x-p2d2.x)*(p2d1.x-p2d2.x)+(p2d1.y-p2d2.y)*(p2d1.y-p2d2.y))); }
public static class Point3D extends Point2D {
private int x,y,z;
Point3D(int x,int y,int z) {
super(x,y); this.x=x; this.y=y;
this.z=z; }
public void offset(int a, int b,int c) {
x=x+a; y=y+b; z=z+c; }
static double Dist(Point3D p3d1,Point3D p3d2) {
System.out.println(\点p3d1\+\+p3d1.x+\+p3d1.y+\+p3d1.z+\+\与点p3d2\+\+p3d2.x+\+p3d2.y+\+p3d2.z+\+\之间的距离为\);
return(Math.sqrt((p3d1.x-p3d2.x)*(p3d1.x-p3d2.x)+(p3d1.y-p3d2.y)*(p3d1.y-p3d2.y)+(p3d1.z-p3d2.z)*(p3d1.z-p3d2.z)));} }
public static void main(String[] args) {
Point2D p2d1 = new Point2D(1,2);
p2d1.offset(10, 11); //p2d1的平移量,即变换之后就变成了p2d1=(11,13)了。 // Point2D p2d2 = new Point2D(11,13); Point2D p2d2 = new Point2D(3,4); Point3D p3d1 = new Point3D(1,2,3);
p3d1.offset(2,3,4);//p2d1的平移量,即变换之后就变成了p3d1=(3,5,7)了。 Point3D p3d2 = new Point3D(2,3,4); double p1,p2; System.out.println(Point2D.Dist(p2d1,p2d2)); System.out.println(Point3D.Dist(p3d1,p3d2)); } }
复数加减
import java.util.*; public class Complex { public int x,y;
Complex(int x,int y){ this.x=x; this.y=y; }
public static void showComp(int x,int y) {
if(y>=0)
System.out.println(x+\+y+\); else
System.out.println(x+\+(-y)+\); }
public static void addComp(Complex C1,Complex C2){
// System.out.println((C1.x+C2.x)+\ showComp(C1.x+C2.x,C1.y+C2.y); }
public static void subComp(Complex C1,Complex C2){ showComp(C1.x-C2.x,C1.y-C2.y); }
public static void multiComp(Complex C1,Complex C2){ showComp(C1.x*C2.x-C1.y*C2.y,C1.x*C2.y+C1.y*C2.x); }
public static boolean equalComp(Complex C1,Complex C2) {
if((C1.x==C2.x)&&(C1.y==C2.y)) return true; else
return false; }
public static void main(String args[]) {
Complex C1 = new Complex(5,8); Complex C2 = new Complex(7,12); addComp(C1,C2); subComp(C1,C2); multiComp(C1,C2);
System.out.println(equalComp(C1,C2)); } }
Point3D:
class Point2D{ int x,y;
Point2D(int a,int b) {
x=a; y=b; }
void offset(int a,int b){ x=x+a; y=y+b; } }
public class Point3D extends Point2D{ private int z;
Point3D(int a,int b,int c){ super(a,b); z=c; }
Point3D(Point2D p2,int c){ super(p2.x,p2.y); z=c; }
void offset(int a,int b,int c){ x=x+a; y=y+b; z=z+c; }
//void distance(Point2D p,Point2D p2){} public static void main(String[] args){ Point2D p2d1= new Point2D(2,1);
Point2D p2d2= new Point2D(2,2); Point3D p3d1= new Point3D(2,1,1); Point3D p3d2= new Point3D(2,1,2); double cx,cy,dx,dy,dz; cx=p2d1.x-p2d2.x; cy= p2d1.y-p2d2.y;