Ir para conteúdo
Fórum Script Brasil
  • 0

Resolução de Exercício.


Gustavo Ferreira

Pergunta

Bom dia, estou com essa questão pra resolver, esta sendo um desáfio, mas preciso de ajuda.

 

 

Questão Única
Você foi contratado(a) para criar um software para gerência de projetos de desenvolvimento de
sistemas. O software irá controlar tarefas que precisam ser feitas e em que fases estas estão. As
fases são: BACKLOG (repositório de tarefas a serem feitas), TODO (selecionadas para serem feitas
num período, como em 1 semana ou 1 mês), DOING (tarefas que estão sendo executadas num dado
momento), e DONE (tarefas concluídas). Observe que há um fluxo a ser seguido: BACKLOG →
TODO → DOING → DONE e esse fluxo deve ser respeitado. Ou seja, uma tarefa não pode pular
etapas. Logo, a ideia é automatizar o comportamento, algo que costuma ser feito manualmente.
Como ponto de partida, o cliente forneceu para você um código base tendo como tarefas a
realização das ADs do CEDERJ. Este estudo de caso serve como exemplo porque o fluxo básico de
tarefas de desenvolvimento de sistemas e tarefas do dia-a-dia são similares:
class Board {
static int BACKLOG = 0;
static int TODO = 1;
static int DOING = 2;
static int DONE = 3;
String labels[] = {"BACKLOG", "TODO", "DOING", "DONE"};
Phase phase[] = new Phase[4];
public Board() {
for (int i=0; i<4; i++)
phase[i] = new Phase();
}
public void add(Card c) {
phase[BACKLOG].adiciona(c);
}
public void prepare(Card c) {
phase[BACKLOG].remove(c);
phase[TODO].adiciona(c);
}
public void start(Card c) {
phase[TODO].remove(c);
phase[DOING].adiciona(c);
}
public void finish(Card c) {
phase[DOING].remove(c);
phase[DONE].adiciona(c);
}
public String toString() {
String saida = "";
for (int i=0; i<4; i++)
saida += labels[i] + "\n" + phase[i].toString() + "\n";
return saida;
}
}
public class AD1_2023_2 {
public static void main(String[] args) {
Board semestre2023_2 = new Board();
Card fazerAD1 = new Card("Fazer a AD1");
semestre2023_2.add(fazerAD1);
Card fazerAD2 = new Card("Fazer a AD2");
semestre2023_2.add(fazerAD2);
System.out.println(semestre2023_2);
semestre2023_2.prepare(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.start(fazerAD1);
System.out.println(semestre2023_2);
semestre2023_2.finish(fazerAD1);
System.out.println(semestre2023_2);
}
}
A classe Board representa um quadro de controle similar à ilustração apresentada a seguir:
Além desta classe, são usadas também as classes Phase e Card. A implementação dessas duas
classes é o que o cliente lhe pediu e ele exige que sua implementação seja completamente
compatível com o código fonte fornecido.

 

 

 

 

 

package Application;

 

import Entities.Board;

import Entities.Card;

import Entities.Phase;

 

public class Program {

 

public static void main(String[] args) {

 

Board semestre2023_2 = new Board();

Card fazerAD1 = new Card("Fazer AD1");

semestre2023_2.add(fazerAD1);

Card fazerAD2 = new Card("Fazer AD2");

semestre2023_2.add(fazerAD2);

System.out.println(semestre2023_2);

semestre2023_2.prepare(fazerAD1);

System.out.println(semestre2023_2);

semestre2023_2.start(fazerAD1);

System.out.println(semestre2023_2);

semestre2023_2.finish(fazerAD1);

System.out.println(semestre2023_2);

}

 

}

 

 

 

package Entities;

 

public class Board {

 

static int BACKLOG = 0;

static int TODO = 1;

static int DOING = 2;

static int DONE = 3;

String labels[] = {"BACKLOG", "TODO" , "DOING", "DONE"};

Phase phase [] = new Phase[4];

 

 

public Board() {

 

for (int i=0; i<4; i++)

phase[i] = new Phase();

 

}

 

public void add(Card c) {

phase[BACKLOG].adiciona(c);

}

public void prepare(Card c) {

phase[BACKLOG].remove(c);

phase[TODO].adiciona(c);

}

public void start (Card c) {

phase[TODO].remove(c);

phase[DOING].adiciona(c);

 

}

public void finish(Card c) {

phase[DOING].remove(c);

phase[DONE].adiciona(c);

 

 

}

 

public String toString() {

 

String saida = "";

for (int i=0; i<4; i++)

saida +=labels[i] + "\n" + phase[i].toString() + "\n";

return saida;

 

}

 

package Entities;

 

public class Card {

 

private String title;

 

 

 

public Card(String title) {

this.title = title;

}

 

 

public String getTitle() {

 

 

return title;

}

 

@Override

public String toString() {

return title;

 

 

}

 

 

public void add(Card card) {

// TODO Auto-generated method stub

 

}

 

}

 

 

package Entities;

 

public class Phase {

 

private List<Card> cards = new ArrayList<>();

public void adiciona(Card card) {

card.add(card);

}

 

public void remove(Card c) {

}

@Override

public String toString() {

StringBuilder phaseContent = new StringBuilder();

for (Card card: cards) {

 

phaseContent.append(card.getTitle()).append("\n");

}

return phaseContent.toString();

}

}

 

 

ERRO DE EXECUÇÃO.

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

List cannot be resolved to a type

ArrayList cannot be resolved to a type

List cannot be resolved to a type

 

at Entities.Phase.<init>(Phase.java:6)

at Entities.Board.<init>(Board.java:16)

at Application.Program.main(Program.java:11)

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...