2013-09-06 2 views
3

Мне дали небольшое задание, как показано ниже. Не могли бы вы рассказать о том, как это осуществить?Программа для создания фигур и отображения их на консоли

Напишите простую структурированную программу и простую программу oo, которая реализует функцию отображения фигуры. Ваша программа должна просто распечатать (для консоли) номер, если фигуры, а затем спросить каждую фигуру, чтобы отобразить ее, что также приведет к созданию строки вывода для консоли, по одной для каждой фигуры. Совершенно нормально, чтобы ваша основная программа создавала коллекцию форм, прежде чем сортировать эту коллекцию и отображать фигуры. Ваша программа должна поддерживать круги, треугольники и квадраты, но следует использовать полиморфизм так, что основная программа не знает типа формы он имеет дело с, но вместо этого трактует форму равномерно

Я создал программу для создания формы, как ниже, но я не уверен, как создавать фигуры, как указано, и хранить их в коллекции и итерации для отображения этих фигур на консоли. Мне сказали не использовать базу данных для хранения фигур

import java.awt.Color; 
import java.awt.Graphics; 
import javax.swing.JApplet; 

public class DrawShapes extends JApplet { 

    public void paint(Graphics g) { 
     g.setColor(Color.RED); 
// drawing string 
     g.drawString("Hello World!", 100, 100); 
// drawing rectangle 
     g.draw3DRect(120, 120, 120, 120, true); 
     g.setColor(Color.blue); 
     g.fill3DRect(120, 120, 120, 120, true); 
// drawing circle 
     g.drawOval(240, 240, 120, 120); 
     g.setColor(Color.CYAN); 
     g.fillOval(240, 240, 120, 120); 
// drawing square 
     g.drawRect(350, 350, 250, 100); 
     g.setColor(Color.magenta); 
     g.fillRect(350, 350, 250, 100); 
// drawing trinale 
    } 
} 
+0

Я думаю, что они хотят что-то вроде Whats на этой странице http://www.angelfire.com/tx4/cus/shapes/java.html. –

+0

, если я понимаю это правильно, вам нужно распечатать его на КОНСОЛЕ !!! поэтому вам нужно нарисовать его с помощью функций system.out.print ... – JohnnyAW

+0

да. ваше понимание правильное. Его нужно напечатать на консоли с помощью SOP – JavaGeek

ответ

1

Только идея, как это сделать. Обратите внимание, что рисунок скрыт от коллекции фигур.

interface Drawable { 
    public void draw(Graphics g); 
} 

class DrawableSquare implements Drawable{ 
    public DrawableSquare(int x, int y, int width) { ... } 
    public void draw(Graphics g) 
    { 
    g.fillRect(x, y, width, width); 
    } 
} 

class Screen { 
    Collection<Drawable> drawables; 

    public void paint(Graphics g) { 
    for (Drawable dr: drawables) { 
     dr.draw(g); 
    } 
    } 
}