您的位置:首页 > 编程语言 > Java开发

实验2_Java类的创建和使用

2012-03-15 12:58 162 查看
这次共四题:创建和使用J***A类,并进行Applet可视化编程练习。



// Ex2_1.java

/**
 * 题目要求:
 * 编写程序,找出100~700间能同时被3、7、11整除的数
 * 源程序保存为Ex2_1.java。
 **/

public class Ex2_1 
{
	public static void main(String[] args)
	{
		System.out.println("下面是在100~700间能同时被3、7、11整除的数:\n");
		int number;
		for (number = 100; number <= 700; ++number)
		{
			if( (0 == number % 3) &&  (0 == number % 7) && (0 == number % 11)) 
			{
				System.out.println(+ number + "\n");
			}
		}
	
	}
}

/**
 * 运行结果:
 * 下面是在100~700间能同时被3、7、11整除的数:
 *
 * 231
 * 
 * 462
 * 
 * 693
 *
 **/




// Ex2_2.java

/**
 * 题目要求:
 * 求1!+2!+...20!的和并输出,同时要求把1!、2!、3!...的结果存放到一个数组中,并输出数组的各元素。
 * 源程序保存为Ex2_2.java。
 **/

public class Ex2_2 
{
	public static void main(String[] args)
	{
		long save[] = new long[20];
		long sum = 0;
		for (int i = 0; i != 20; ++i)
		{
			save[i] = i + 1;
			
			long result = 1;
			for (long calculate = i + 1; calculate > 0; --calculate)
			{
				result *= calculate;
			}
			save[i] = result;
			System.out.println(+ (i + 1) + "阶乘的结果是:" + save[i] + "\n");
			sum += save[i];
		}
		System.out.println("1!+2!+...20!的和是:" + sum + "\n");
	}
}

// 下面是运行结果:

// 1阶乘的结果是:1
//
// 2阶乘的结果是:2
//
// 3阶乘的结果是:6
// 
// 4阶乘的结果是:24
// 
// 5阶乘的结果是:120
// 
// 6阶乘的结果是:720
// 
// 7阶乘的结果是:5040
// 
// 8阶乘的结果是:40320
// 
// 9阶乘的结果是:362880
// 
// 10阶乘的结果是:3628800
// 
// 11阶乘的结果是:39916800
// 
// 12阶乘的结果是:479001600
// 
// 13阶乘的结果是:6227020800
// 
// 14阶乘的结果是:87178291200
// 
// 15阶乘的结果是:1307674368000
// 
// 16阶乘的结果是:20922789888000
// 
// 17阶乘的结果是:355687428096000
// 
// 18阶乘的结果是:6402373705728000
// 
// 19阶乘的结果是:121645100408832000
// 
// 20阶乘的结果是:2432902008176640000
// 
// 1!+2!+...20!的和是:2561327494111820313




// Ex2_3.java

/**
 * 题目要求:
 * 运行书本P59页例4.1,并修改程序实现两个数的相乘,
 * 修改源程序保存为Ex2_3.java。
 */
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class Ex2_3 extends Applet implements ActionListener{
    Label label1 = new Label("*");
	Label label2 = new Label("=");
	TextField field1 = new TextField(6);
	TextField field2 = new TextField(6);
	TextField field3 = new TextField(6);
	Button button1 = new Button("相乘");

	public void init(){
		add(field1); 
		add(label1);
		add(field2);
		add(label2);
		add(field3);
		add(button1);
		button1.addActionListener(this);
	}
	
	public void actionPerformed(ActionEvent e){
		int x = Integer.parseInt(field1.getText()) * Integer.parseInt(field2.getText());
		field3.setText(Integer.toString(x));
	}
}



<HTML>
<applet code = "Ex2_3.class" height = 200 width = 400>
</applet>
</HTML>




上题结果截图:





// Ex2_4.java

/**
 * 题目要求:
* 1)创建一个描述平面坐标系中的点及其操作的类Point,添加两个double类型的属性x,y,描述点在坐标系中的位置。
* 2)在Point中添加方法:
*    初始化x和y的构造函数;
*    返回x和y值的getX( )和getY( );
*    将点平移w(水平)和h(垂直)的方法shiftPoint (double w, double h);
*    确定点在第几象限的方法whatQuadrant( ),并返回结果;
* 3)编写程序测试类Point,使用上面定义的各个方法,并将其结果输出,源程序保存为Ex2_4.java。
**/

class Point
{
	double x;
	double y;

	// construction
	Point (double tempX, double tempY)
	{
		x = tempX; 
		y = tempY;
		System.out.println("初始化该Point类 x = " + x + " ,y = " +y); 
	}
	
	// get value
	public double getX()
	{
		return x;
	}
    public double getY()
	{
		return y;
	}
	//  将点平移w(水平)和h(垂直)的方法shiftPoint (double w, double h);
	public void shiftPoint(double w, double h)
	{
		x += w;
		y += h;
		return;
	}
   //  确定点在第几象限的方法whatQuadrant( ),并返回结果;
	public int whatQuadrant()
	{
		if (0.0 == x && 0.0 == y)
		{
			return 0;
		}
		else if (x > 0.0 && y > 0.0)
		{
			return 1;
		}
		else if (x < 0.0 && y > 0.0)
		{
			return 2;
		}
		else if (x < 0.0 && y < 0.0)
		{
			return 3;
		}
		else if (x > 0.0 && y < 0.0)
		{
			return 4;
		}
		else if (y == 0.0) // 坐标位于X轴上
		{
			return 5;
		}
		else	if( x == 0.0)				// 坐标位于Y轴上
		{
			return 6;
		}
	    else 
		{
			return 7;
		}
}

 public static void testAllFunction(Point test, double x, double y)
	{
		System.out.println("使用get()函数得: x = " + test.getX() + ", y = " + test.getY() );
		switch(test.whatQuadrant())
		{
			case 0: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于坐标原点" );
				break;
			}
			case 1: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于第1象限" );
				break;
			}
			case 2: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于第2象限" );
				break;
			}
			case 3: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于第3象限" );
				break;
			}
			case 4: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于第4象限" );
				break;
			}
			case 5: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于 x 轴" );
				break;
			}
			case 6: 
			{
				System.out.println("使用whatQuadrant()函数知该Point位于 y 轴" );
				break;
			}
		}
		test.shiftPoint(x, y);
		System.out.println("使用shiftPoint()函数移动后的 x = " + test.getX() + ", y = " + test.getY() + "\n");
	}

	public static void main(String args[])
	{
    	System.out.println("测试在Point的main中调用运行成功,下面开始关于Point类的方法测试\n");

		Point zero = new Point(0,  0);
		testAllFunction(zero, 6, 8);

		Point one = new Point(6, 8);
		testAllFunction(one, 6, 8);
		
		Point two = new Point(-7, 6);
		testAllFunction(two, 6, 8);

		Point three = new Point(-6, -8);
		testAllFunction(three, 6, 8);

		Point four = new Point(6, -8);
		testAllFunction(four, 6, 8);

	}
}

public class Ex2_4
{
	public static void main(String args[])
	{
		Point.main(args);
	}
}

// 下面是运算结果:

// 测试在Point的main中调用运行成功,下面开始关于Point类的方法测试
//
// 初始化该Point类 x = 0.0 ,y = 0.0
// 使用get()函数得: x = 0.0, y = 0.0
// 使用whatQuadrant()函数知该Point位于坐标原点
// 使用shiftPoint()函数移动后的 x = 6.0, y = 8.0
// 
// 初始化该Point类 x = 6.0 ,y = 8.0
// 使用get()函数得: x = 6.0, y = 8.0
// 使用whatQuadrant()函数知该Point位于第1象限
// 使用shiftPoint()函数移动后的 x = 12.0, y = 16.0
// 
// 初始化该Point类 x = -7.0 ,y = 6.0
// 使用get()函数得: x = -7.0, y = 6.0
// 使用whatQuadrant()函数知该Point位于第2象限
// 使用shiftPoint()函数移动后的 x = -1.0, y = 14.0
// 
// 初始化该Point类 x = -6.0 ,y = -8.0
// 使用get()函数得: x = -6.0, y = -8.0
// 使用whatQuadrant()函数知该Point位于第3象限
// 使用shiftPoint()函数移动后的 x = 0.0, y = 0.0
// 
// 初始化该Point类 x = 6.0 ,y = -8.0
// 使用get()函数得: x = 6.0, y = -8.0
// 使用whatQuadrant()函数知该Point位于第4象限
// 使用shiftPoint()函数移动后的 x = 12.0, y = 0.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: