Baixe o app para aproveitar ainda mais
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(); } }
Compartilhar