0% acharam este documento útil (0 voto)
15 visualizações6 páginas

Modelagem em Java

O documento descreve uma classe Bordado que representa bordados, várias subclasses de Robo que executam operações em bordados, e uma classe LinhaProducao que gerencia uma linha de produção com robôs. As classes modelam entidades e operações relacionadas ao processamento de bordados por robôs.

Enviado por

Rennan Medeiros
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato ODT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
15 visualizações6 páginas

Modelagem em Java

O documento descreve uma classe Bordado que representa bordados, várias subclasses de Robo que executam operações em bordados, e uma classe LinhaProducao que gerencia uma linha de produção com robôs. As classes modelam entidades e operações relacionadas ao processamento de bordados por robôs.

Enviado por

Rennan Medeiros
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato ODT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Java

// A classe Bordado representa um bordado no sistema.


class Bordado {
int id; // Identificador único do bordado.
int altura; // Altura do bordado em pontos.
int largura; // Largura do bordado em pontos.
char[][] pontos; // Matriz de caracteres representando os pontos do bordado.

// Construtor da classe Bordado. Inicializa o bordado com 'o' em todos os pontos.


Bordado(int id, int altura, int largura) {
this.id = id;
this.altura = altura;
this.largura = largura;
this.pontos = new char[altura][largura];
for (int i = 0; i < altura; i++) {
for (int j = 0; j < largura; j++) {
pontos[i][j] = 'o';
}
}
}

// Método para exibir o bordado. A implementação deve imprimir os pontos do bordado.


void exibirBordado() {
// implementação do método
}
}

// A classe Robo é uma classe abstrata que representa um robô genérico no sistema.
abstract class Robo {
String codigo; // Código único do robô.
double custoPorPonto; // Custo por ponto processado pelo robô.
int peso; // Peso do robô.

// Construtor da classe Robo.


Robo(String codigo, double custoPorPonto, int peso) {
this.codigo = codigo;
this.custoPorPonto = custoPorPonto;
this.peso = peso;
}

// Método abstrato para processar um bordado. A implementação depende do tipo específico do robô.
abstract void processar(Bordado bordado);
}

// A classe RoboLimpador é um tipo específico de robô que remove todos os pontos de um bordado.
class RoboLimpador extends Robo {
RoboLimpador(String codigo) {
super(codigo, 0.01, 1);
}

// Implementação do método processar para o RoboLimpador.


void processar(Bordado bordado) {
// implementação do método
}
}

// A classe RoboBorda é um tipo específico de robô que cria pontos "x" na borda de um bordado.
class RoboBorda extends Robo {
RoboBorda(String codigo) {
super(codigo, 0.5, 3);
}

// Implementação do método processar para o RoboBorda.


void processar(Bordado bordado) {
// implementação do método
}
}

// A classe RoboRetangulo é um tipo específico de robô que cria um retângulo de pontos "x" em um bordado.
class RoboRetangulo extends Robo {
int x1, y1, x2, y2; // Coordenadas dos pontos opostos do retângulo.

RoboRetangulo(String codigo, int x1, int y1, int x2, int y2) {
super(codigo, 1.1, 5);
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}

// Implementação do método processar para o RoboRetangulo.


void processar(Bordado bordado) {
// implementação do método
}
}

// A classe RoboPonto é um tipo específico de robô que insere um ponto "x" em uma posição específica de um bordado.
class RoboPonto extends Robo {
int x, y; // Coordenadas do ponto a ser inserido.

RoboPonto(String codigo, int x, int y) {


super(codigo, 1.5, 2);
this.x = x;
this.y = y;
}

// Implementação do método processar para o RoboPonto.


void processar(Bordado bordado) {
// implementação do método
}
}

// A classe LinhaProducao representa a linha de produção que pode conter até 5 robôs.
class LinhaProducao {
Robo[] robos; // Array de robôs na linha de produção.

// Construtor da classe LinhaProducao. Inicializa o array de robôs.


LinhaProducao() {
robos = new Robo[5];
}

// Método para adicionar um robô na linha de produção em uma posição específica.


void adicionarRobo(Robo robo, int posicao) {
// implementação do método
}

// Método para remover um robô da linha de produção pelo seu código.


void removerRobo(String codigo) {
// implementação do método
}

// Método para processar um bordado na linha de produção. O bordado é processado por cada robô em ordem.
void processarBordado(Bordado bordado) {
// implementação do método
}

// Método para obter o peso total dos robôs na linha de produção.


int getPesoTotal() {
// implementação do método
}
}

__________________________________________________________________________________________________-
Classe Bordado:

• Atributos:
• altura: inteiro
• largura: inteiro
• pontos: matriz de caracteres
• identificador: inteiro (número único)
• Métodos:
• construtor(height: int, width: int)
• get_identificador(): retorna o identificador do bordado
• lista_bordado(): retorna uma representação do bordado em formato de texto
• processa_robo(robo): processa o bordado com o robô fornecido
2. Classe Robo:

• Atributos:
• codigo: string (código único)
• tipo: string (tipo de robô)
• peso: float
• custo_por_ponto: float
• Métodos:
• construtor(codigo: str, tipo: str, peso: float, custo_por_ponto: float)
• get_custo_ativacao(pontos_alterados: int): retorna o custo de ativação do robô
• get_codigo(): retorna o código do robô
3. Classe LinhaProducao:

• Atributos:
• bordados_processados: dicionário {identificador_bordado: [bordado,
quantidade_de_passagens]}
• robos_na_linha: lista de objetos Robo
• Métodos:
• cadastra_producao(robocode: str, posicao: int): adiciona um robô à linha de
produção em uma determinada posição
• processa_bordado(identificador_bordado: int): processa o bordado na linha de
produção
• pega_peso(): retorna o peso total dos robôs na linha de produção
• apaga_robo(robocode: str): remove um robô da linha de produção
• exibe_historico(identificador_bordado: int): exibe o histórico do bordado ao
longo das passagens pela linha de produção
Teste definitivo
Bordado
association Robo
---
- id: int
- altura: int
- largura: int
- pontos: char[][]
---
+ Bordado(id: int, altura: int, largura: int)
+ exibirBordado(): void
---
Robo
---
- codigo: String
- custoPorPonto: double
- peso: int
---
+ Robo(codigo: String, custoPorPonto: double, peso: int)
+ processar(bordado: Bordado): void
---
RoboLimpador
extends Robo
---
- codigo: String
- custoPorPonto: double
- peso: int
---
+ RoboLimpador(codigo: String)
+ processar(bordado: Bordado): void
---
RoboBorda
extends Robo
---
- codigo: String
- custoPorPonto: double
- peso: int
---
+ RoboBorda(codigo: String)
+ processar(bordado: Bordado): void
---
RoboRetangulo
extends Robo
---
- codigo: String
- custoPorPonto: double
- peso: int
- x1: int
- y1: int
- x2: int
- y2: int
---
+ RoboRetangulo(codigo: String, x1: int, y1: int, x2: int, y2: int)
+ processar(bordado: Bordado): void
---
RoboPonto
extends Robo
---
- codigo: String
- custoPorPonto: double
- peso: int
- x: int
- y: int
---
+ RoboPonto(codigo: String, x: int, y: int)
+ processar(bordado: Bordado): void
---
LinhaProducao
association Robo
---
- robos: Robo[]
---
+ LinhaProducao()
+ adicionarRobo(robo: Robo, posicao: int): void
+ removerRobo(codigo: String): void
+ processarBordado(bordado: Bordado): void
+ getPesoTotal(): int
---

Você também pode gostar