Olá, sou do primeiro semestre e estou tendo problemas com um trabalho em que deve ser feito um sistema de uma locadora.
Devo implementar pelo menos as seguintes funcionalidades:
Aluguel de filmes com o código de cliente e de filme
Devolução de filmes com o código do filme
Consulta do filme com o título ou parte dele.
Consulta de filme com o código
Histórico de locação de um cliente com o código do cliente
Há ainda umas outras coisas, como:
5 melhores filmes de 1 ator e 5 melhores filmes de 1 diretor
Filme mais locado
Cliente com mais locações
Indicar os 2 filmes com as melhores notas que têm coincidência de diretor ou ator mais locado para
um cliente
Mas as primeiras funcionalidades ali são mais importantes, o professor disse que a maioria das implementações devem ser feitas por arraylist. Quem puder dar uma ajudada e fazer pelo menos um método e explicar a lógica, eu agradeço, e espero poder ajudar mais pessoas daqui no futuro! Um abraço!
public class CadastroDeAstros {
// private ArrayList<Astro> lista;
private HashMap<String, Astro> lista;
// Construtor de CadastroDeAstros
public CadastroDeAstros() {
lista = new HashMap<String, Astro>();
// lista = new ArrayList<Astro>();
}
//
public boolean cadastrar(Astro novo) {
lista.put(novo.getNome(), novo);
return true;
// return lista.add(novo);
}
public int size() {
return lista.size();
}
public Astro buscaPorNome(String nome) {
return lista.get(nome);
/*
* for(Astro a: lista) if(a.getNome().equals(nome)) return a; return
* null;
*/
}
public String toString() {
int cont = 1;
String aux = "";
for (Astro a : lista.values()) {
aux += String.format("%5d. %s\n", cont, a.getNome());
cont++;
}
return aux;
}
}
public class Astro implements Comparable<Astro> {
private String nome;
public Astro(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public String toString() {
return nome;
}
public int compareTo(Astro outro) {
return nome.compareTo(outro.nome);
}
}
public class Personagem {
private Astro astro;
private String nome;
public Personagem(Astro astro, String nome) {
this.astro = astro;
this.nome = nome;
}
public Astro getAstro() {
return astro;
}
public String getNome() {
return nome;
}
public String toString() {
return astro.toString() + "/" + nome;
}
}
public class CadastroDeFilmes {
private ArrayList<Filme> lista;
public CadastroDeFilmes() {
lista = new ArrayList<Filme>();
}
public boolean cadastrar(Filme novo) {
return lista.add(novo);
}
public int size() {
return lista.size();
}
public String toString() {
return lista.toString();
}
}
public class Filme {
private String codigo;
private String titulo;
private Astro diretor;
private int ano;
private double votos;
private double nota;
private ArrayList<Personagem> elenco;
public Filme(String codigo, String titulo, Astro diretor, int ano, double votos,
double nota) {
this.codigo = codigo;
this.titulo = titulo;
this.diretor = diretor;
this.ano = ano;
this.votos = votos;
this.nota = nota;
elenco = new ArrayList<Personagem>();
}
public String getCodigo() {
return codigo;
}
public String getTitulo() {
return titulo;
}
public Astro getDiretor() {
return diretor;
}
public int getAno() {
return ano;
}
public double getVotos() {
return votos;
}
public double getNota() {
return nota;
}
public ArrayList<Personagem> getElenco() {
return elenco;
}
public boolean addElenco(Personagem p) {
return elenco.add(p);
}
public String toString() {
return String.format("%s (%d): %s %.1f %.0f", titulo, ano,
diretor, nota, votos);
}
}
public class Locacao {
private Cliente locador;
private Filme locado;
private Date retirada;
private Date devolucao;
public Locacao(Cliente locador, Filme locado) {
this.locador = locador;
this.locado = locado;
retirada = new Date();
devolucao = null;
}
public void encerrar() {
if (devolucao == null) {
devolucao = new Date();
}
}
public Cliente getLocador() {
return locador;
}
public Filme getLocado() {
return locado;
}
public Date getRetirada() {
return retirada;
}
public Date getDevolucao() {
return devolucao;
}
public boolean isEncerrada() {
return devolucao != null;
}
}
public class CadastroDeClientes {
private ArrayList<Cliente> lista;
public CadastroDeClientes() {
lista = new ArrayList<Cliente>();
cadastrarTestes();
}
public void cadastrarTestes() {
lista.add(new Cliente("Dilma Roussef"));
lista.add(new Cliente("Michel Temer"));
lista.add(new Cliente("Ivan Pinheiro"));
lista.add(new Cliente("Edmilson Costa"));
lista.add(new Cliente("Ze Maria"));
lista.add(new Cliente("Claudia Durans"));
lista.add(new Cliente("Jose Maria Eymael"));
lista.add(new Cliente("Jose Paulo da Silva Neto"));
lista.add(new Cliente("Jose Serra"));
lista.add(new Cliente("Indio da Costa"));
lista.add(new Cliente("Levy Fidelix"));
lista.add(new Cliente("Luis Eduardo Ayres Duarte"));
lista.add(new Cliente("Marina Silva"));
lista.add(new Cliente("Guilherme Leal"));
lista.add(new Cliente("Plinio de Arruda Sampaio"));
lista.add(new Cliente("Hamilton Assis"));
lista.add(new Cliente("Rui Costa Pimenta"));
lista.add(new Cliente("Edson Dorta Silva"));
}
public String toString() {
return lista.toString();
}
public int size() {
return lista.size();
}
}
public class Cliente {
private String nome;
public String getNome() {
return nome;
}
public Cliente(String nome) {
this.nome = nome;
}
}
Pergunta
Almiro Batista
Olá, sou do primeiro semestre e estou tendo problemas com um trabalho em que deve ser feito um sistema de uma locadora.
Devo implementar pelo menos as seguintes funcionalidades:
Aluguel de filmes com o código de cliente e de filme
Devolução de filmes com o código do filme
Consulta do filme com o título ou parte dele.
Consulta de filme com o código
Histórico de locação de um cliente com o código do cliente
Há ainda umas outras coisas, como:
5 melhores filmes de 1 ator e 5 melhores filmes de 1 diretor
Filme mais locado
Cliente com mais locações
Indicar os 2 filmes com as melhores notas que têm coincidência de diretor ou ator mais locado para
um cliente
Mas as primeiras funcionalidades ali são mais importantes, o professor disse que a maioria das implementações devem ser feitas por arraylist. Quem puder dar uma ajudada e fazer pelo menos um método e explicar a lógica, eu agradeço, e espero poder ajudar mais pessoas daqui no futuro! Um abraço!
Diagrama de classes do BlueJ
public class CadastroDeAstros { // private ArrayList<Astro> lista; private HashMap<String, Astro> lista; // Construtor de CadastroDeAstros public CadastroDeAstros() { lista = new HashMap<String, Astro>(); // lista = new ArrayList<Astro>(); } // public boolean cadastrar(Astro novo) { lista.put(novo.getNome(), novo); return true; // return lista.add(novo); } public int size() { return lista.size(); } public Astro buscaPorNome(String nome) { return lista.get(nome); /* * for(Astro a: lista) if(a.getNome().equals(nome)) return a; return * null; */ } public String toString() { int cont = 1; String aux = ""; for (Astro a : lista.values()) { aux += String.format("%5d. %s\n", cont, a.getNome()); cont++; } return aux; } }public class Astro implements Comparable<Astro> { private String nome; public Astro(String nome) { this.nome = nome; } public String getNome() { return nome; } public String toString() { return nome; } public int compareTo(Astro outro) { return nome.compareTo(outro.nome); } }public class Personagem { private Astro astro; private String nome; public Personagem(Astro astro, String nome) { this.astro = astro; this.nome = nome; } public Astro getAstro() { return astro; } public String getNome() { return nome; } public String toString() { return astro.toString() + "/" + nome; } }public class CadastroDeFilmes { private ArrayList<Filme> lista; public CadastroDeFilmes() { lista = new ArrayList<Filme>(); } public boolean cadastrar(Filme novo) { return lista.add(novo); } public int size() { return lista.size(); } public String toString() { return lista.toString(); } }public class Filme { private String codigo; private String titulo; private Astro diretor; private int ano; private double votos; private double nota; private ArrayList<Personagem> elenco; public Filme(String codigo, String titulo, Astro diretor, int ano, double votos, double nota) { this.codigo = codigo; this.titulo = titulo; this.diretor = diretor; this.ano = ano; this.votos = votos; this.nota = nota; elenco = new ArrayList<Personagem>(); } public String getCodigo() { return codigo; } public String getTitulo() { return titulo; } public Astro getDiretor() { return diretor; } public int getAno() { return ano; } public double getVotos() { return votos; } public double getNota() { return nota; } public ArrayList<Personagem> getElenco() { return elenco; } public boolean addElenco(Personagem p) { return elenco.add(p); } public String toString() { return String.format("%s (%d): %s %.1f %.0f", titulo, ano, diretor, nota, votos); } }public class Locacao { private Cliente locador; private Filme locado; private Date retirada; private Date devolucao; public Locacao(Cliente locador, Filme locado) { this.locador = locador; this.locado = locado; retirada = new Date(); devolucao = null; } public void encerrar() { if (devolucao == null) { devolucao = new Date(); } } public Cliente getLocador() { return locador; } public Filme getLocado() { return locado; } public Date getRetirada() { return retirada; } public Date getDevolucao() { return devolucao; } public boolean isEncerrada() { return devolucao != null; } }public class CadastroDeClientes { private ArrayList<Cliente> lista; public CadastroDeClientes() { lista = new ArrayList<Cliente>(); cadastrarTestes(); } public void cadastrarTestes() { lista.add(new Cliente("Dilma Roussef")); lista.add(new Cliente("Michel Temer")); lista.add(new Cliente("Ivan Pinheiro")); lista.add(new Cliente("Edmilson Costa")); lista.add(new Cliente("Ze Maria")); lista.add(new Cliente("Claudia Durans")); lista.add(new Cliente("Jose Maria Eymael")); lista.add(new Cliente("Jose Paulo da Silva Neto")); lista.add(new Cliente("Jose Serra")); lista.add(new Cliente("Indio da Costa")); lista.add(new Cliente("Levy Fidelix")); lista.add(new Cliente("Luis Eduardo Ayres Duarte")); lista.add(new Cliente("Marina Silva")); lista.add(new Cliente("Guilherme Leal")); lista.add(new Cliente("Plinio de Arruda Sampaio")); lista.add(new Cliente("Hamilton Assis")); lista.add(new Cliente("Rui Costa Pimenta")); lista.add(new Cliente("Edson Dorta Silva")); } public String toString() { return lista.toString(); } public int size() { return lista.size(); } }public class Cliente { private String nome; public String getNome() { return nome; } public Cliente(String nome) { this.nome = nome; } }Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.