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
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.