第四章 课后编程

来源:互联网 发布:淘宝主视频制作软件 编辑:程序博客网 时间:2024/05/20 01:38

欢迎大家转载,为保留作者成果,转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也可以下载!如果你没有积分,可以联系我索要!

1、

package forth_charter;/** File: Beer.java* ---------------------------* 第4章  编程练习第1题* 美国打发时间的歌曲,啤酒瓶* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class Beer extends ConsoleProgram {public void run(){for(int i=BEER_COUNTS; i>0;){println("墙上有" + i + "瓶啤酒。 ");println(i-- + "瓶啤酒。 ");print("拿下来一瓶,传出去。 ");if(i==0){println("墙上已经没有啤酒了");}else{println("墙上有" + i + "瓶啤酒。 " );}}}//定义啤酒瓶的数量为一个固定值private static final int BEER_COUNTS = 9;}

2、

package forth_charter;/** File: ThisOldMan.java* ---------------------------* 第4章  编程练习第2题* 美国打发时间的歌曲,ThisOldMan* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class ThisOldMan extends ConsoleProgram {public void run(){for(int i=1; i<11; i++){println("This old man, he played " + i + ".");print("he played the knick-knack on my ");switch(i){case 1: println("thumb.");break;case 2: println("shoe.");break;case 3: println("knee.");break;case 4: println("door.");break;case 5: println("hive.");break;case 6: println("sticks.");break;case 7: println("heaven.");break;case 8: println("pale.");break;case 9: println("spine");break;case 10: println("sbin");break;}println("With a knick-knack,paddy-whack, ");println("Give your dog a bone, ");println("This old man came rolling home.");println("");}}}

3、

package forth_charter;/** File: OddSum.java* ---------------------------* 第4章  编程练习第3题* 计算输入一个数后奇数相加的和* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class OddSum extends ConsoleProgram {public void run(){int n = readInt("请输入一个整数:");int total = 0;for(int i=1; i<=n;){total = total +  i;print(i);//判断当前的数加上1是否小于输入的数,如果小于就添加+号if(i+1<n){print("+");}i=i+2;} print("=" + total);}}

4、

package forth_charter;/** File: SixSeven.java* ---------------------------* 第4章  编程练习第4题* 打印出可以被6整除或被7整除,但不能同时被6或7整除的数* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class SixSeven extends ConsoleProgram {public void run(){println("在" + COUNT +"内,能被6整除或被7整除,但不能同时被6或7整除的数有:");for(int i=0; i<COUNT; i++){    if((i % 6 == 0 || i % 7 == 0)&&!(i % 6 == 0 && i % 7 == 0)){     print(i + "、");    }}}//设置为一个固定值private static final int COUNT = 100;}

5、

package forth_charter;/** File: AverageList.java* ---------------------------* 第4章  编程练习第5题* 打印出输入成绩的平均数,以-1作为标志结束* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class AverageList extends ConsoleProgram {public void run(){println("此程序打印出输入学生成绩 的平均值,输入-1结束,并打印出平均值:");double total = 0;double average =0;int i = 0;int value = readInt("请输入学生的成绩:");while(value != -1){i++;total += value;value = readInt("请输入学生的成绩:");}average = total/i;print("成绩的平均值 为:" + average);}}

6、

package forth_charter;/** File: Beer.java* ---------------------------* 第4章  编程练习第6题* 输入一个数以相反的顺序输出* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class OppsiteOut extends ConsoleProgram {public void run(){println("这个程序是输入一个正整数然后以相反的顺序输出");int count = readInt("请输入一个数:");print("反序输出的值为:" );while(count/10!=0){int remainder = count%10;count /=10;if(count/10==0){print(remainder);print(count);}else{print(remainder);}}}}

8、

package forth_charter;/** File: CountDown.java* ---------------------------* 第4章  编程练习第8题* 用while倒数火箭发射时间* * Author luoriver*/import acm.program.*;public class CountDown extends ConsoleProgram {public void run(){int N=START;while(N>0){println(N);    N = N -1;}println("liftoff");}//指定从哪一个数开始计时private static final int START = 10;}

9、

package forth_charter;/** File: Fbionacci.java* ---------------------------* 第4章  编程练习第9题* 计算Fbionacci公式* * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class Fbionacci extends ConsoleProgram {public void run(){print("这个程序是计算Fbionacci。 ");int N = readInt("请输入一个数 ");for (int i = 0; i <= N; i++)            println(i + ": " + Fbionacci.fib(i));    }//通过创建一个方法来实现    public static long fib(int n) {        if (n <= 1){        return n;        }else{        return fib(n-1) + fib(n-2);        }    }}

11、

package forth_charter;/** File: Pyramid.java* ---------------------------* 第4章  编程练习第11题* 打印金字塔* * Author luoriver*/import acm.program.*;import acm.graphics.*; public class Pyramid extends GraphicsProgram {          public void run(){         double x = (getWidth() - BRICK_IN_BASE * BRICK_WIDTH) / 2;         double y = (getHeight() + BRICK_IN_BASE * BRICK_HEIGHT) / 2;                  for (int i = 2 ; i <= BRICK_IN_BASE; i++){             for(int j = i; j <= BRICK_IN_BASE; j++){             GRect brick = new GRect(x - i * BRICK_WIDTH /2 + j * BRICK_WIDTH, y - i * BRICK_HEIGHT,BRICK_WIDTH, BRICK_HEIGHT);             add (brick);             }         }     }          /* private constants */     private static final double BRICK_WIDTH = 10;     private static final int BRICK_HEIGHT = 6;          private static final int BRICK_IN_BASE = 20; }

12、

package forth_charter;/** File: Beer.java* ---------------------------* 第4章  编程练习第12题* * * Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class Maxest extends ConsoleProgram {public void run(){int max = 0;while(true){ int n = readInt("?:");  if(max< n){ max = n; } if(n == -1) break;}print("最大值为" + max);}}

14、

package forth_charter;/* * File:CheckBoard.java * -------------------- * 画出国际象棋的棋盘,使用嵌套的for循环。 */import acm.graphics.*;import acm.program.*;import java.awt.*;public class CheckBoard extends GraphicsProgram {        public void run(){        double sqSize = getHeight() / N_ROWS;        for (int i = 0; i < N_ROWS; i++){            for(int j = 0; j < N_COLUMNS; j++){                double x = (getWidth() - N_ROWS * sqSize) / 2 + j * sqSize;                double y = i * sqSize;                GRect sq = new GRect(x,y,sqSize,sqSize);                sq.setFilled((i + j) % 2 != 0);                sq.setFillColor(Color.GRAY);                add(sq);                if (i < 3 && (i + j) % 2 != 0){                    GOval checkRed = new GOval(x + 4,y + 4,sqSize - 8, sqSize - 8);                    checkRed.setFilled(true);                    checkRed.setColor(Color.RED);                    add (checkRed);                }                if (i > 4 && (i + j) % 2 != 0){                    GOval checkBlack = new GOval(x + 4,y + 4,sqSize - 8, sqSize - 8);                    checkBlack.setFilled(true);                    checkBlack.setColor(Color.BLACK);                    add (checkBlack);                }            }        }    }        /*     * 定义常量     */    private static final int N_ROWS = 8;    private static final int N_COLUMNS = 8;}

15、

package forth_charter;/** File: Beer.java* ---------------------------* 方框移动程序* * Author luoriver*/import java.awt.Color;import acm.graphics.*;import acm.program.GraphicsProgram;public class BoucingBall extends GraphicsProgram {    public void run(){    //在画布的中央画一个球    int x = getWidth() / 2;        int y = getHeight() / 2;        GOval ball = new GOval(x, y,DIAMETER, DIAMETER);        ball.setFilled(true);        add(ball);                //设置移动步长        int dx = 1;        int dy = 1;                //设置球循环移动        while(true){            ball.move(dx, dy);            pause(PAUSE_TIME);            x += dx;            y += dy;                        //当球到达最左端即x==0或到达最右端时便向相反的方向运动            if(x > getWidth() - DIAMETER || x < 0) dx = -dx;                      //当球到达最顶端即y==0或到达最底端时便向相反的方向运动            if(y > getHeight() - DIAMETER || y <0) dy = -dy;        }    }    /* Private constants */    private static final int DIAMETER = 10;    private static final int PAUSE_TIME = 20;    }

16、

package forth_charter;/** File: RollingFont.java* * ---------------------------* 第4章  编程练习第1题* 美国打发时间的歌曲,啤酒瓶* * Author luoriver*/import java.awt.Color;import acm.program.*;import acm.graphics.*;import acm.program.GraphicsProgram;public class RollingFont extends GraphicsProgram {public void run(){int x = getWidth();int y = getHeight();//设置移动步长int dx = 1;GLabel font = new GLabel("my name is luoriver,Welcom to SIP VoIP communication group is 323827101",x,y) ;    font.setColor(Color.BLUE);    font.setFont("宋体-200");    add(font) ;        while(true){            font.move(-dx, 0);            pause(PAUSE_TIME);            x += dx;               }}//设置暂停时间 private static final int PAUSE_TIME = 20;}



0 0
原创粉丝点击