CSE142 Sample Program              handout #7
+------+
|\    /|
| \  / |
|  \/  |
|  /\  |
| /  \ |
|/    \|
+------+
 
First Version of Program
------------------------
public class DrawFigure {
    public static void main(String[] args) {
        drawLine();
        drawTop();
        drawBottom();
        drawLine();
    }
 
    public static void drawLine() {
        System.out.print("+");
        for (int column = 1; column <= #; column++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
 
    public static void drawTop() {
        for (int line = 1; line <= #; line++) {
            System.out.print("|");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }
 
    public static void drawBottom() {
        for (int line = 1; line <= #; line++) {
            System.out.print("|");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= #; column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }
}
 
Second Version of Program
------------------------
public class DrawFigure {
    public static void main(String[] args) {
        drawLine();
        drawTop();
        drawBottom();
        drawLine();
    }
 
    public static void drawLine() {
        System.out.print("+");
        for (int column = 1; column <= 6; column++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
 
    public static void drawTop() {
        for (int line = 1; line <= 3; line++) {
            System.out.print("|");
            for (int column = 1; column <= line - 1; column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= 6 - 2 * line; column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= line - 1; column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }
 
    public static void drawBottom() {
        for (int line = 1; line <= 3; line++) {
            System.out.print("|");
            for (int column = 1; column <= 3 - line; column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= 2 * line - 2; column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= 3 - line; column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }
}

+--------+
|\      /|
| \    / |
|  \  /  |
|   \/   |
|   /\   |
|  /  \  |
| /    \ |
|/      \|
+--------+
 
Final Version With Class Constant
---------------------------------
// Stuart Reges
// 10/6/04
//
// This program produces an hourlgass figure as output.
 
public class DrawFigure {
    public static final int SUB_HEIGHT = 4;  // height of each half
 
    public static void main(String[] args) {
        drawLine();
        drawTop();
        drawBottom();
        drawLine();
    }
 
    // Produces a solid line
    public static void drawLine() {
        System.out.print("+");
        for (int column = 1; column <= (2 * SUB_HEIGHT); column++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
 
    // This produces the top half of the hourglass figure
    public static void drawTop() {
        for (int line = 1; line <= SUB_HEIGHT; line++) {
            System.out.print("|");
            for (int column = 1; column <= (line - 1); column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= 2 * (SUB_HEIGHT - line); column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= (line - 1); column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }

 
    // This produces the bottom half of the hourglass figure
    public static void drawBottom() {
        for (int line = 1; line <= SUB_HEIGHT; line++) {
            System.out.print("|");
            for (int column = 1; column <= (SUB_HEIGHT - line); column++) {
                System.out.print(" ");
            }
            System.out.print("/");
            for (int column = 1; column <= 2 * (line - 1); column++) {
                System.out.print(" ");
            }
            System.out.print("\\");
            for (int column = 1; column <= (SUB_HEIGHT - line); column++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
    }
}

 


Stuart Reges
Last modified: Fri Oct 7 13:37:34 PDT 2005