Ir ao conteúdo

AdrianoSiqueira

Membro Pleno
  • Posts

    1.273
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. Comente esse linha, ela está lançando uma exceção nada a ver.
  2. Seria algo assim: public class Vetor { private int[] vetor; public Vetor() { // O vetor precisa ter um tamanho inicial // Ajuste esse valor para as suas necessidades vetor = new int[100]; } public void preencher(int valor) { } public int getMax() { } public int getMin() { } public void mostrar() { } } Aí você desenvolve a sua lógica em cima disso. Não posso dar o código completo por causa das regras do fórum.
  3. Só para registrar minha contribuição. #include <stdio.h> #include <stdlib.h> int main() { const int quantidade = 50; int maior = 0; int menor = 0; int entrada = 0; for(int i = 0; i < quantidade; i++) { printf("Valor [%2i]: ", (i + 1)); scanf(" %i", &entrada); if(i == 0 || entrada > maior) { maior = entrada; } if(i == 0 || entrada < menor) { menor = entrada; } } printf("-------------------------------- \n"); printf("Maior: %i \n", maior); printf("Menor: %i \n", menor); printf("-------------------------------- \n"); return 0; }
  4. Na linha 45 você fechou o parenteses antes do colchete.
  5. Uma outra abordagem poderia ser assim: #include <iostream> #include <algorithm> using std::string; using std::cout; using std::cin; using std::getline; using std::for_each; int main() { string nome = ""; int quantidadeLetras = 0; int quantidadeVogais = 0; int quantidadeConsoantes = 0; int quantidadeNumeros = 0; int quantidadeEspeciais = 0; double porcentagemVogais = 0.0; double porcentagemConsoantes = 0.0; double porcentagemNumeros = 0.0; double porcentagemEspeciais = 0.0; // Entrada do usuário cout << "Digite o nome: "; getline(cin, nome); // Contagem das letras for(string::iterator iterator = nome.begin(); iterator != nome.end(); iterator++) { if(*iterator == ' ') { continue; } quantidadeLetras++; switch(toupper(*iterator)) { case 'A': case 'E': case 'I': case 'O': case 'U': quantidadeVogais++; break; case 'B': case 'C': case 'D': case 'F': case 'G': case 'H': case 'J': case 'K': case 'L': case 'M': case 'N': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'V': case 'W': case 'X': case 'Y': case 'Z': quantidadeConsoantes++; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': quantidadeNumeros++; break; default: quantidadeEspeciais++; break; } } // Cálculo de porcentagem porcentagemVogais = quantidadeVogais * 100 / quantidadeLetras; porcentagemConsoantes = quantidadeConsoantes * 100 / quantidadeLetras; porcentagemNumeros = quantidadeNumeros * 100 / quantidadeLetras; porcentagemEspeciais = quantidadeEspeciais * 100 / quantidadeLetras; // Exibição dos dados system("clear"); // No Windows mude para "cls" cout << "-----------------------------------------" << "\n" << " Nome: " << nome << "\n" << " Letras: " << quantidadeLetras << "\n" << " Vogais: " << quantidadeVogais << " (" << porcentagemVogais << "%)" << "\n" << "Consoantes: " << quantidadeConsoantes << " (" << porcentagemConsoantes << "%)" << "\n" << " Números: " << quantidadeNumeros << " (" << porcentagemNumeros << "%)" << "\n" << " Especiais: " << quantidadeEspeciais << " (" << porcentagemEspeciais << "%)" << "\n" << "-----------------------------------------" << "\n"; return 0; }
  6. Você só precisa criar um ponteiro para a sua variável aluno, depois você passa o ponteiro para as funções. #include <stdio.h> #include <stdlib.h> struct tipoAluno { int mat; char nome[31]; float media; }; void escreveAluno(struct tipoAluno *aluno) { printf("Matricula: %i \n", aluno->mat); printf(" Nome: %s \n", aluno->nome); printf(" Media: %.2f \n", aluno->media); } void lerAluno(struct tipoAluno *aluno) { printf("Matricula do aluno: "); scanf(" %i", &aluno->mat ); printf("Nome do aluno: "); scanf(" %[^\n]", aluno->nome); printf("Media do aluno: "); scanf(" %f", &aluno->media); } int main(void) { struct tipoAluno aluno; struct tipoAluno *ponteiroAluno = &aluno; lerAluno(ponteiroAluno); escreveAluno(ponteiroAluno); return 0; }
  7. Aí já não sei responder, faz muito tempo que não uso o NetBeans. Provavelmente você terá que fazer o mesmo procedimento em todas as máquinas.
  8. Depois de adicionar a biblioteca, a IDE já importa as classes automaticamente como qualquer outra classe. E sim, todas as máquinas que forem trabalhar com seu código fonte, precisarão a biblioteca adicionada.
  9. Não, porque elementos static existem independente de existir um objeto.
  10. Não, o método main fica em uma classe separada, a ideia é que a classe Principal do seu programa não seja uma interface gráfica, nesse caso você deve criar uma nova classe, colocar o método main nela e partir daí você chama as demais janelas.
  11. Talvez fazendo uma restauração de fábrica não resolva?
  12. Para JavaFX: > DatePicker Para Swing: > JCalendar > JDatePicker
  13. @Patrickwilker0, as classes que eu mostrei no exemplo tem os mesmos nomes que as suas de propósito, elas são as suas classes, mas de um jeito super simplificado. A minha ideia era que você adicionasse o código das minhas classes dentro das suas (uma espécie de merge).
  14. A senha está sendo salva dentro da classe CadastroAdministrador, como o objeto dessa classe está sendo criado dentro da classe de Administrador, ele só existe dentro dessa classe, logo quando a interface é fechada toda a informação é destruída. Faça o seguinte: crie o objeto CadastroAdministrador fora da classe de Administrador e passe esse objeto pelo construtor, dessa forma quando a interface for fechada a informação será preservada. adicionado 20 minutos depois Eu fiz um pequeno exemplo muito mínimo só para ilustrar: import javax.swing.JFrame; import javax.swing.JOptionPane; public class Administrador extends JFrame { private final CadastroAdministrador cadastroAdministrador; public Administrador(CadastroAdministrador cadastroAdministrador) { this.cadastroAdministrador = cadastroAdministrador; } // Chame essa função dentro da ação do botão de cadastrar a senha private void cadastrar() { String senha = "123"; // Você pega do campo boolean status = cadastroAdministrador.cadastrarSenha(senha); if (status) { JOptionPane.showMessageDialog(null, "Cadastrado com sucesso."); } else { JOptionPane.showMessageDialog(null, "Erro ao cadastrar."); } } // Chame essa função dentro da ação do botão de alterar a senha private void alterarSenha() { String senhaAntiga = "123"; // Você pega do campo String senhaNova = "123"; // Você pega do campo boolean status = cadastroAdministrador.alterarSenha(senhaAntiga, senhaNova); if (status) { JOptionPane.showMessageDialog(null, "Alterado com sucesso."); } else { JOptionPane.showMessageDialog(null, "Erro ao alterar."); } } } import java.util.ArrayList; import java.util.List; public class CadastroAdministrador { private List<String> senhas; public CadastroAdministrador() { senhas = new ArrayList<>(); } public boolean cadastrarSenha(String senha) { if (senhas.contains(senha)) { return false; } else { senhas.add(senha); return true; } } public boolean alterarSenha(String senhaAntiga, String senhaNova) { if (senhaAntiga.equals(senhaNova)) { // As senhas não podem ser iguais return false; } else if (!senhas.contains(senhaAntiga)) { // A senha antiga não existe return false; } else { // Tudo certo senhas.remove(senhaAntiga); senhas.add(senhaNova); return true; } } } public class Principal { public static void main(String[] args) { CadastroAdministrador cadastroAdministrador = new CadastroAdministrador(); Administrador administrador = new Administrador(cadastroAdministrador); administrador.setVisible(true); } }
  15. Você pode postar o código desse JFrame de Login?
  16. Botão direito no arquivo .jar e escolha abrir com, e marque para sempre abrir com o java.
  17. CLion
  18. Eu dividi em três classes para ficar mais fácil import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Objects; public class GerenciadorArquivo { /** * Procura os arquivos dentro do diretório. * * @param diretorioOrigem Pasta onde deve ser realizada a busca. * * @return Uma lista com os arquivos encontrados. */ public List<File> listarArquivos(File diretorioOrigem) { Objects.requireNonNull(diretorioOrigem, "Diretório de origem não pode ser null."); List<File> arquivos = new ArrayList<>(); listar(diretorioOrigem, arquivos); return arquivos; } /** * Função auxiliar para percorrer recursivamente os subdiretórios da pasta de origem. * * @param diretorioOrigem Pasta de origem onde deve ser realizada a busca. * @param arquivos Lista onde colocar os arquivos. */ private void listar(File diretorioOrigem, List<File> arquivos) { File[] items = diretorioOrigem.listFiles(); Objects.requireNonNull(items, "Diretório de origem não existe ou não é um diretório."); for (File item : items) { if (item.isDirectory()) { listar(diretorioOrigem, arquivos); } else { arquivos.add(item); } } } /** * Lê o conteúdo do arquivo e armazena as linhas dentro de uma lista. * * @param arquivo Arquivo que deve ser lido. * * @return Lista contendo as linhas do arquivo. */ public List<String> ler(File arquivo) { Objects.requireNonNull(arquivo, "O arquivo não pode ser null."); List<String> linhas = new ArrayList<>(); String linha; try (BufferedReader reader = new BufferedReader(new FileReader(arquivo))) { while ((linha = reader.readLine()) != null) { if (linha.contains("=")) { // Só adiciona linhas válidas no formato [ chave=valor ] linhas.add(linha); } } } catch (IOException e) { e.printStackTrace(); } return linhas; } /** * Escreve o novo conteúdo dentro do arquivo. Todo o conteúdo antigo será sobrescrito. * * @param conteudo O que deve ser escrito. * @param arquivo Arquivo que será sobrescrito. */ public void escrever(String conteudo, File arquivo) { Objects.requireNonNull(arquivo, "O arquivo não pode ser null."); try (BufferedWriter writer = new BufferedWriter(new FileWriter(arquivo))) { writer.write(conteudo); writer.flush(); } catch (IOException e) { e.printStackTrace(); } } } import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class GerenciadorLinhas { private Map<String, String> linhas; public GerenciadorLinhas() { linhas = new LinkedHashMap<>(); } /** * Adiciona a linha no map de linhas. * * @param linha Linha a ser adicionada. */ public void adicionarLinha(String linha) { String chave = linha.split("=")[0]; String valor = linha.split("=")[1]; if (!linhas.containsKey(chave)) { linhas.put(chave, valor); } } /** * Adiciona as linhas no map de linhas. * * @param linhas Linhas a serem adicionadas. */ public void adicionarLinha(List<String> linhas) { linhas.forEach(this::adicionarLinha); } public Map<String, String> getLinhas() { return linhas; } } import java.io.File; import java.util.Collections; import java.util.List; import java.util.Map; public class Principal { public static void main(String[] args) { File diretorioOrigem = new File("/tmp/Programa"); File arquivoDestino = new File("/tmp/Programa/destino.txt"); GerenciadorArquivo gerenciadorArquivo = new GerenciadorArquivo(); GerenciadorLinhas gerenciadorLinhas = new GerenciadorLinhas(); List<File> arquivos = gerenciadorArquivo.listarArquivos(diretorioOrigem); arquivos.remove(arquivoDestino); Collections.sort(arquivos); if (arquivoDestino.exists()) { gerenciadorLinhas.adicionarLinha(gerenciadorArquivo.ler(arquivoDestino)); } // Ler todos os arquivos for (File arquivo : arquivos) { gerenciadorLinhas.adicionarLinha(gerenciadorArquivo.ler(arquivo)); } // Preparar para escrever StringBuilder builder = new StringBuilder(); Map<String, String> map = gerenciadorLinhas.getLinhas(); for (Map.Entry<String, String> entry : map.entrySet()) { builder.append(entry.getKey()) .append("=") .append(entry.getValue()) .append(System.lineSeparator()); } gerenciadorArquivo.escrever(builder.toString(), arquivoDestino); } }
  19. Você pode postar o código das classes ProcurarArquivos e Unificar? Porque do jeito que está eu não consigo reproduzir.
  20. Pelos testes que fiz aqui, acho que esse código dará certo: package codigo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; public class Programa { public static void main(String[] args) { final String urlPastaOrigem = "/tmp/Programa"; final String urlArquivoDestino = "/tmp/Programa/destino.txt"; File pastaOrigem = new File(urlPastaOrigem); File arquivoDestino = new File(urlArquivoDestino); /* Se o arquivo de destino existir, a lista de linhas será iniciada já com as linhas do próprio arquivo, caso contrário a lista será criada em branco. Saiba mais: Operador ternário. */ Set<String> linhasDestino = arquivoDestino.exists() ? new LinkedHashSet<>(ler(arquivoDestino)) : new LinkedHashSet<>(); // Lista os arquivos da pasta e realiza alguns testes. File[] arquivos = pastaOrigem.listFiles(); if (arquivos == null) { System.out.println("Pasta de origem não é uma pasta."); return; } else if (arquivos.length == 0) { System.out.println("Pasta de origem está vazia."); return; } // Deixa os arquivos em ordem alfabética. Arrays.sort(arquivos); Set<String> linhasNovas = new LinkedHashSet<>(); for (File arquivo : arquivos) { if (arquivo.getAbsolutePath().equals(arquivoDestino.getAbsolutePath())) { // Pula a leitura do próprio arquivo de destino. continue; } linhasNovas.addAll(ler(arquivo)); } /* Prepara o conteúdo final para ser escrito no arquivo, esse conteúdo é formado pela união das linhas atuais e novas. */ StringBuilder conteudoFinal = new StringBuilder(); for (String linha : linhasDestino) { conteudoFinal.append(linha) .append(System.lineSeparator()); } for (String linha : linhasNovas) { if (linhasDestino.contains(linha)) { // Se a linha já existir, ela será pulada. continue; } conteudoFinal.append(linha); conteudoFinal.append(System.lineSeparator()); } // Substitui todo o conteúdo do arquivo de destino escrever(conteudoFinal.toString(), arquivoDestino); // Execução bem sucedida. System.out.println("Tudo pronto"); System.exit(0); } /** * Lê as linhas do arquivo e gera um {@link Set} contendo elas. * Automaticamente não serão aceitas linhas repetidas. * * @param arquivo Arquivo para ler as linhas. * * @return Set contendo as linhas do arquivo. */ private static Set<String> ler(File arquivo) { String linha; Set<String> linhas = new LinkedHashSet<>(); try (BufferedReader reader = new BufferedReader(new FileReader(arquivo))) { while ((linha = reader.readLine()) != null) { linhas.add(linha); } } catch (IOException e) { e.printStackTrace(); } return linhas; } /** * Escreve o novo conteúdo dentro do arquivo de destino substituindo o conteúdo antigo. * * @param conteudo O que deve ser escrito no arquivo. * @param arquivoDestino Arquivo que receberá o conteúdo. */ private static void escrever(String conteudo, File arquivoDestino) { try (BufferedWriter writer = new BufferedWriter(new FileWriter(arquivoDestino))) { writer.write(conteudo); writer.flush(); } catch (IOException e) { e.printStackTrace(); } } }
  21. Atá, então o arquivo de destino não pode ter linhas repetidas?
  22. O código que eu postei não serve para você?
  23. Faz tempo que não uso Word, mas se bem me lembro, você vai no menu Arquivo e lá tem a opção de exportar o arquivo como PDF.
  24. Tente formatar da forma convencional.
  25. package ler; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; public class Programa { public static void main(String[] args) { // Altere essas variáveis segundo as suas necessidades final String urlDiretorioOrigem = "/tmp/Programa"; final String urlArquivoDestino = "/tmp/Programa/destino.txt"; File diretorioOrigem = new File(urlDiretorioOrigem); File arquivoDestino = new File(urlArquivoDestino); if (!diretorioOrigem.isDirectory()) { System.out.println("A URL de origem não é um diretório ou o diretório não existe!!!"); return; } File[] arquivos = diretorioOrigem.listFiles(); if (arquivos != null) { Arrays.sort(arquivos); // Deixar os arquivos em ordem alfabética for (File arquivo : arquivos) { if (arquivo.getAbsolutePath().equals(urlArquivoDestino)) { // Pula a leitura do próprio arquivo de destino continue; } String conteudo = lerArquivo(arquivo); escreverArquivo(conteudo, arquivoDestino); } System.out.println("Tudo pronto."); System.exit(0); } else { System.out.println("Erro de I/O!!!"); System.exit(1); } } private static String lerArquivo(File arquivo) { StringBuilder builder = new StringBuilder(); String linha; try (BufferedReader reader = new BufferedReader(new FileReader(arquivo))) { while ((linha = reader.readLine()) != null) { builder.append(linha); } } catch (IOException e) { e.printStackTrace(); } return builder.toString(); } private static void escreverArquivo(String conteudo, File arquivo) { try (BufferedWriter writer = new BufferedWriter(new FileWriter(arquivo, true))) { writer.write(conteudo); writer.newLine(); writer.flush(); } catch (IOException e) { e.printStackTrace(); } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!