《JAVA语言的科学与艺术》学习笔记04

本文提供了三个实用的Java程序案例,包括温度转换表、信号灯绘制及阶乘表生成器。通过这些示例,读者可以了解如何使用Java进行基本的控制台及图形界面编程。

5.2 TemperatureConversionTable.java

import acm.program.*;

public class TemperatureConversionTable extends ConsoleProgram {
	public void run() {
		println("Celsius to Fahrenheit table.") ;
		for (int c = LOWER_LIMIT ;c <UPPER_LIMIT ;c+=STEP_SIZE){
			int f = (int) celsiusToFahrenheit(c) ;
			println(c+"C="+f+"F");
		}
	}
	
	private double celsiusToFahrenheit(double c) {
		return 9.0 /5.0 * c +32 ;
	}
	private static final int LOWER_LIMIT =0 ;
	private static final int UPPER_LIMIT =100;
	private static final int STEP_SIZE =5;
}


5.4  DrawStoplight.java

import acm.graphics.*;
import acm.program.*;
import java.awt.*;


public class DrawStoplight extends GraphicsProgram {
	public void run(){
		double cx =getWidth() /2 ;
		double cy =getHeight() /2 ;
		double fx =cx - FRAME_WIDTH/2;
		double fy =cy - FRAME_HEIGHT/2;
		double dy =  FRAME_HEIGHT/4 + LAMP_RADIUS/2 ;
		GRect frame = new GRect(fx,fy,FRAME_WIDTH,FRAME_HEIGHT) ;
		frame.setFilled(true);
		frame.setColor(Color.GRAY);
		add(frame);
		add(createFilledCircle(cx,cy-dy,LAMP_RADIUS,Color.RED)) ;
		add(createFilledCircle(cx,cy,LAMP_RADIUS,Color.YELLOW)) ;
		add(createFilledCircle(cx,cy+dy,LAMP_RADIUS,Color.GREEN)) ;
		
	}
	
	private GOval createFilledCircle(double x,double y ,double r, Color color){
		GOval cricle =new GOval(x-r,y-r,2*r,2*r);
		cricle.setColor(color);
		return cricle;
	}
	
	private static final double FRAME_WIDTH =50 ;
	private static final double FRAME_HEIGHT =100;
	private static final double LAMP_RADIUS =10;
}


5.6 FactorialTable.java

import acm.program.*;

public class FactorialTable extends ConsoleProgram {
	
	public void run(){
		for (int i =LOWER_LIMIT;i<UPPER_LIMIT;i++){
			println(i+"!="+factorial(i));
		}
	}
	
	private int factorial(int n){
		int result =1 ;
		for (int i=1 ;i<=n;i++){
			result *=i;
		}
		return result ;
	}
	
	private static final int LOWER_LIMIT = 0;
	private static final int UPPER_LIMIT =10 ;
}






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值