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

724

被折叠的 条评论
为什么被折叠?



