Buscar

aplicando aula 8

Prévia do material em texto

CURSO: Análise e desenvolvimento de sistemas 
POLO DE APOIO PRESENCIAL: Higienópolis 
SEMESTRE: 3° semestre 
COMPONENTE CURRICULAR / TEMA: BANCO DE DADOS 
NOME COMPLETO DO ALUNO: Flávio Morales 
TIA: 22504907 
NOME DO PROFESSOR: Thiago Donizetti dos Santos 
 
 
import java.util.Hashtable; 
import java.util.Scanner; 
 
class Produto { 
 private String codigoProduto; 
 private String descricao; 
 private double preco; 
 
 public Produto(String codigoProduto, String descricao, double preco) { 
 this.codigoProduto = codigoProduto; 
 this.descricao = descricao; 
 this.preco = preco; 
 } 
 
 public String getCodigoProduto() { 
 return codigoProduto; 
 } 
 
 public String getDescricao() { 
 return descricao; 
 } 
 
 public double getPreco() { 
 return preco; 
 } 
 
 @Override 
 public String toString() { 
 return "Produto{" + 
 "codigoProduto='" + codigoProduto + '\'' + 
 
 ", descricao='" + descricao + '\'' + 
 ", preco=" + preco + 
 '}'; 
 } 
} 
 
 
 
package br.com.rd.financialcoastparamters.mack.aplicando.a8; 
 
import java.util.LinkedList; 
import java.util.List; 
 
class TabelaHash { 
 private static final int TAMANHO_TABELA = 10; 
 private List<Produto>[] tabela; 
 
 public TabelaHash() { 
 this.tabela = new LinkedList[TAMANHO_TABELA]; 
 for (int i = 0; i < TAMANHO_TABELA; i++) { 
 tabela[i] = new LinkedList<>(); 
 } 
 } 
 
 public void cadastrarProduto(Produto produto) { 
 int indice = calcularIndice(produto.getCodigoProduto()); 
 tabela[indice].add(produto); 
 System.out.println("Produto cadastrado com sucesso."); 
 } 
 
 public void contarProdutosPorPais(String codigoPais) { 
 int indice = calcularIndice(codigoPais); 
 int quantidade = tabela[indice].size(); 
 System.out 
 .println("Quantidade de produtos do país " + 
TabelaPaises.getPais(codigoPais) + ": " + quantidade); 
 } 
 
 public Produto buscarProduto(String codigoProduto) { 
 int indice = calcularIndice(codigoProduto); 
 for (Produto produto : tabela[indice]) { 
 if (produto.getCodigoProduto().equals(codigoProduto)) { 
 return produto; 
 } 
 } 
 System.out.println("Produto não encontrado."); 
 return null; 
 } 
 
 
 public Produto excluirProduto(String codigoProduto) { 
 int indice = calcularIndice(codigoProduto); 
 List<Produto> listaProdutos = tabela[indice]; 
 for (Produto produto : listaProdutos) { 
 if (produto.getCodigoProduto().equals(codigoProduto)) { 
 listaProdutos.remove(produto); 
 System.out.println("Produto excluído com sucesso: " + 
produto.getDescricao()); 
 return produto; 
 } 
 } 
 System.out.println("Produto não encontrado."); 
 return null; 
 } 
 
 private int calcularIndice(String codigoProduto) { 
 String codigoPais = codigoProduto.substring(0, 3); 
 return Math.abs(codigoPais.hashCode()) % TAMANHO_TABELA; 
 } 
} 
 
 
 
 
package br.com.rd.financialcoastparamters.mack.aplicando.a8; 
 
import java.util.HashMap; 
import java.util.Map; 
 
class TabelaPaises { 
 private static final Map<String, String> tabela = new HashMap<>(); 
 
 static { 
 adicionarRange("002", "019", "Estados Unidos E.U.A."); 
 adicionarRange("020", "029", "Distribuição restrita (definido pela organização 
membro GS1)"); 
 adicionarRange("030", "039", "Estados Unidos E.U.A. (reservado para medicamentos)"); 
 adicionarRange("040", "049", "Distribuição restrita (definido pela organização 
membro GS1)"); 
 adicionarRange("050", "059", "Coupons"); 
 adicionarRange("060", "139", "Estados Unidos E.U.A."); 
 adicionarRange("200", "299", "Distribuição restrita (definido pela organização 
membro GS1)"); 
 adicionarRange("300", "379", "França / Mónaco"); 
 adicionarRange("400", "440", "Alemanha"); 
 adicionarRange("450", "459", "Japão"); 
 adicionarRange("490", "499", "Japão"); 
 
 adicionarRange("460", "469", "Rússia"); 
 adicionarRange("500", "509", "Reino Unido"); 
 adicionarRange("540", "549", "Bélgica / Luxenburgo"); 
 adicionarRange("570", "579", "Dinamarca / Ilhas Feroe / Groenlândia"); 
 adicionarRange("600", "601", "África do Sul"); 
 adicionarRange("640", "649", "Finlândia"); 
 adicionarRange("690", "699", "República Popular da China"); 
 adicionarRange("700", "709", "Noruega"); 
 adicionarRange("730", "739", "Suécia"); 
 adicionarRange("754", "755", "Canadá"); 
 adicionarRange("760", "769", "Suíça / Liechtenstein"); 
 adicionarRange("789", "790", "Brasil"); 
 adicionarRange("800", "839", "Itália / San Marino / Vaticano"); 
 adicionarRange("840", "849", "Espanha / Andorra"); 
 adicionarRange("870", "879", "Holanda"); 
 adicionarRange("900", "919", "Áustria"); 
 adicionarRange("930", "939", "Austrália"); 
 adicionarRange("940", "949", "Nova Zelândia"); 
 adicionarRange("978", "979", "Bookland (ISBN)"); 
 adicionarRange("981", "982", "Coupons e meios de pagamento"); 
 adicionarRange("990", "999", "Coupons"); 
 
 adicionarCodigoPais("380", "Bulgária"); 
 adicionarCodigoPais("383", "Eslovênia"); 
 adicionarCodigoPais("385", "Croácia"); 
 adicionarCodigoPais("387", "Bósnia e Herzegovina"); 
 adicionarCodigoPais("470", "Quirguistão"); 
 adicionarCodigoPais("471", "Ilha de Taiwan"); 
 adicionarCodigoPais("474", "Estônia"); 
 adicionarCodigoPais("475", "Letônia"); 
 adicionarCodigoPais("476", "Azerbaijão"); 
 adicionarCodigoPais("477", "Lituânia"); 
 adicionarCodigoPais("478", "Usbequistão"); 
 adicionarCodigoPais("479", "Sri Lanka"); 
 adicionarCodigoPais("480", "Filipinas"); 
 adicionarCodigoPais("481", "Bielorrússia"); 
 adicionarCodigoPais("482", "Ucrânia"); 
 adicionarCodigoPais("484", "Moldávia"); 
 adicionarCodigoPais("485", "Armênia"); 
 adicionarCodigoPais("486", "Geórgia"); 
 adicionarCodigoPais("487", "Cazaquistão"); 
 adicionarCodigoPais("489", "Hong Kong"); 
 adicionarCodigoPais("520", "Grécia"); 
 adicionarCodigoPais("528", "Líbano"); 
 adicionarCodigoPais("529", "Chipre"); 
 adicionarCodigoPais("530", "Albânia"); 
 adicionarCodigoPais("531", "República da Macedônia"); 
 adicionarCodigoPais("535", "Malta"); 
 adicionarCodigoPais("539", "República da Irlanda"); 
 
 adicionarCodigoPais("560", "Portugal"); 
 adicionarCodigoPais("569", "Islândia"); 
 adicionarCodigoPais("590", "Polónia"); 
 adicionarCodigoPais("594", "Romênia"); 
 adicionarCodigoPais("599", "Hungria"); 
 adicionarCodigoPais("603", "Gana"); 
 adicionarCodigoPais("608", "Bahrein"); 
 adicionarCodigoPais("609", "Maurícia Ilhas Maurício"); 
 adicionarCodigoPais("611", "Marrocos"); 
 adicionarCodigoPais("613", "Argélia"); 
 adicionarCodigoPais("616", "Quênia"); 
 adicionarCodigoPais("618", "Costa do Marfim"); 
 adicionarCodigoPais("619", "Tunísia"); 
 adicionarCodigoPais("621", "Síria"); 
 adicionarCodigoPais("622", "Egito"); 
 adicionarCodigoPais("624", "Líbia"); 
 adicionarCodigoPais("625", "Jordânia"); 
 adicionarCodigoPais("626", "Irã"); 
 adicionarCodigoPais("627", "Kuwait"); 
 adicionarCodigoPais("628","Arábia Saudita"); 
 adicionarCodigoPais("629", "Emirados Árabes Unidos"); 
 adicionarCodigoPais("729", "Israel"); 
 adicionarCodigoPais("740", "Guatemala"); 
 adicionarCodigoPais("741", "El Salvador"); 
 adicionarCodigoPais("742", "Honduras"); 
 adicionarCodigoPais("743", "Nicarágua"); 
 adicionarCodigoPais("744", "Costa Rica"); 
 adicionarCodigoPais("745", "Panamá"); 
 adicionarCodigoPais("746", "República Dominicana"); 
 adicionarCodigoPais("750", "México"); 
 adicionarCodigoPais("759", "Venezuela"); 
 adicionarCodigoPais("770", "Colômbia"); 
 adicionarCodigoPais("773", "Uruguai"); 
 adicionarCodigoPais("775", "Peru"); 
 adicionarCodigoPais("777", "Bolívia"); 
 adicionarCodigoPais("779", "Argentina"); 
 adicionarCodigoPais("780", "Chile"); 
 adicionarCodigoPais("784", "Paraguai"); 
 adicionarCodigoPais("786", "Equador"); 
 adicionarCodigoPais("850", "Cuba"); 
 adicionarCodigoPais("858", "Eslováquia"); 
 adicionarCodigoPais("859", "Chéquia"); 
 adicionarCodigoPais("860", "Sérvia e Montenegro"); 
 adicionarCodigoPais("865", "Mongólia"); 
 adicionarCodigoPais("867", "Coreia do Norte"); 
 adicionarCodigoPais("869", "Turquia"); 
 adicionarCodigoPais("880", "Coreia do Sul"); 
 adicionarCodigoPais("884", "Cambodja"); 
 adicionarCodigoPais("885", "Tailândia"); 
 
 adicionarCodigoPais("888", "Singapura"); 
 adicionarCodigoPais("890", "Índia"); 
 adicionarCodigoPais("893", "Vietnam"); 
 adicionarCodigoPais("899", "Indonésia"); 
 adicionarCodigoPais("950", "GS1 Global Office"); 
 adicionarCodigoPais("955", "Malásia"); 
 adicionarCodigoPais("958", "Macau"); 
 adicionarCodigoPais("977", "Publicações periódicas seriadas (ISSN)"); 
 adicionarCodigoPais("980", "Refund receipts"); 
 } 
 
 private static void adicionarRange(String inicio, String fim, String pais) { 
 for (int i = Integer.parseInt(inicio); i <= Integer.parseInt(fim); i++) { 
 tabela.put(String.format("%03d", i), pais); 
 } 
 } 
 
 private static void adicionarCodigoPais(String codigo, String pais) { 
 tabela.put(codigo, pais); 
 } 
 
 public static String getPais(String codigoProduto) { 
 String codigoPais = codigoProduto.substring(0, 3); 
 return tabela.getOrDefault(codigoPais, "País não encontrado"); 
 } 
} 
 
 
 
 
package br.com.rd.financialcoastparamters.mack.aplicando.lista.src.projlistaligada; 
 
import lombok.Getter; 
import lombok.Setter; 
 
@Getter 
@Setter 
public class ListaLigada { 
 
 private Node header; // início 
 private Node trailer; // fim 
 private int size; // qtde de 
 
 public ListaLigada() { 
 // construtor - cria uma lista vazia 
 header = null; 
 trailer = null; 
 size = 0; 
 
 } 
 
 public int size() { 
 // retorna o tamanho da lista 
 return size; 
 } 
 
 public boolean isEmpty() { 
 // verifica se a lista está vazia 
 if (size == 0) { 
 return true; 
 } else { 
 return false; 
 } 
 } 
 
 public Node first() { 
 // retorna o Nó inicial 
 return header; 
 } 
 
 public Node last() { 
 // retorna o nó final da lista 
 return trailer; 
 } 
 
 public void addFirst(Node novoMumero) { 
 // adiciona um animal no início da Lista 
 if (isEmpty()) { 
 // a lista está vazia 
 header = novoMumero; 
 trailer = novoMumero; 
 } else { 
 // já existe pelo menos um animal na lista 
 novoMumero.next = header; 
 header = novoMumero; 
 } 
 size++; 
 } 
 
 public void addLast(Node novoNumero) { 
 // adiciona um animal no final da Lista 
 if (isEmpty()) { 
 // a lista está vazia 
 header = novoNumero; 
 trailer = novoNumero; 
 } else { 
 // já existe pelo menos um animal na lista 
 trailer.next = novoNumero; 
 
 trailer = novoNumero; 
 } 
 size++; 
 } 
 
 public void mostraLista() { 
 // mostra todos os elementos 
 Node aux = header; 
 header.mostraNumero(); 
 while (aux.next != null) { 
 aux = aux.next; 
 aux.mostraNumero(); 
 } 
 System.out.println("Fim da Lista!"); 
 } 
 
 public void addAfter(Node novoNumero, int pos) throws Exception { 
 // adiciona o nó novoAnimal depois do animal indicado por pos 
 if (isEmpty()) // se a lista estiver vazia 
 { 
 throw new Exception("Lista vazia!"); 
 } else { 
 // verifica se a posição de inserção é o final da lista 
 if (trailer.numeroInteiro == pos) { 
 addLast(novoNumero); 
 } else { 
 // procura a posição de inserção 
 Node aux; 
 for (aux = header; aux.next != null; aux = aux.next) { 
 if (aux.numeroInteiro == pos) { 
 novoNumero.next = aux.next; 
 aux.next = novoNumero; 
 size++; 
 } 
 } 
 } 
 } 
 } 
 
 public void addBefore(Node novoNumero, int pos) throws Exception { 
 // adiciona o nó novoAnimal antes do animal indicado por pos 
 if (isEmpty()) // se a lista estiver vazia 
 { 
 throw new Exception("Lista vazia!"); 
 } else { 
 // verifica se a posição de inserção é o início da lista 
 if (header.numeroInteiro == pos) { 
 addFirst(novoNumero); 
 } else { 
 
 // procura a posição de inserção 
 Node aux, ant = null; 
 for (aux = header; !(aux.numeroInteiro == pos); aux = aux.next) { 
 ant = aux; 
 } 
 ant.next = novoNumero; 
 novoNumero.next = aux; 
 size++; 
 } 
 } 
 } 
 
 public void remove(int numero) throws Exception { 
 // remove o animal indicado como parâmetro 
 if (isEmpty()) // se a lista estiver vazia 
 { 
 throw new Exception("Lista vazia!"); 
 } else { 
 // verifica se o animal a ser removido é o primeiro da lista 
 if (header.numeroInteiro == numero) { 
 header = header.next; 
 } else { 
 // procura pelo animal que será removido 
 Node aux, ant = null; 
 for (aux = header; !(aux.numeroInteiro == numero); aux = aux.next) { 
 ant = aux; 
 } 
 ant.next = aux.next; 
 } 
 size--; 
 } 
 } 
 
 // Desenvolvimento da opção 1. 
 // Escreva uma função que retorne o elemento central de uma lista ligada. 
 public Node findMiddle() { 
 if (header == null) { 
 System.out.println("Lista vazia"); 
 return null; 
 } 
 
 Node slow = header; 
 Node fast = header; 
 
 while (fast != null && fast.next != null) { 
 slow = slow.next; 
 fast = fast.next.next; 
 } 
 
 
 System.out.println("Elemento Central: " + slow.numeroInteiro); 
 return slow; 
 } 
 
 // Desenvolvimento da opção 10. 
 // Escreva uma função que anexe uma lista ligada à extremidade de outra lista 
 // ligada, recebidacomo parâmetro, e retorne essa nova lista. Por exemplo, se 
 // forrem recebidas duas listas com o conteúdo (10 20 45 70) e (23 14 56), 
 // deverá ser retornada uma lista com o conteúdo (10 20 45 70 23 14 56). 
 
 public void appendList(ListaLigada otherList) { 
 if (isEmpty()) { 
 header = otherList.header; 
 trailer = otherList.trailer; 
 } else if (!otherList.isEmpty()) { 
 trailer.next = otherList.header; 
 trailer = otherList.trailer; 
 } 
 size += otherList.size; 
 } 
 
 public void displayList() { 
 Node current = header; 
 while (current != null) { 
 System.out.print(current.numeroInteiro + " "); 
 current = current.next; 
 } 
 System.out.println(); 
 } 
}

Continue navegando