Ir ao conteúdo
  • Cadastre-se

Gustavo Beck

Membro Júnior
  • Posts

    18
  • Cadastrado em

  • Última visita

posts postados por Gustavo Beck

  1. Estou fazendo uma Agenda telefonica, e preciso abrir um arquivo de texto para salvar um Arraylist dentro e poder modificar ele também. Estou usando a classe executavel AgendaTelefonica: 

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package agendatelefonica;
    
    /**
     *
     * @author gubec
     */
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /**
     * @author gubec
     */
    public class AgendaTelefonica extends Contato{
    
        static ArrayList<Contato> listaContato;
        
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int menuPrograma = 10;
    
            listaContato = new ArrayList<>();
            
            while(menuPrograma != 0){
                System.out.println("MENU");
                System.out.println("1- Incluir novos nomes e telefones");
                System.out.println("2- Consultar nomes existentes");
                System.out.println("3- Atualizar os dados de um contato já existente");
                System.out.println("4- Remover contato");
                System.out.println("0- Sair da aplicação\n");
                menuPrograma = input.nextInt();            
                if (menuPrograma == 1) {
                    Scanner contato;
                    Contato c = new Contato();
                    
                    System.out.println("Nome do contato: ");
                    contato = new Scanner(System.in);
                    c.setNome(contato.nextLine());
    
                    System.out.println("Telefone  do contato: ");
                    contato = new Scanner(System.in);
                    c.setTelefone(contato.nextInt());
    
                    
                    InserirContato(c);
                } else if (menuPrograma == 2) {
                    Contato c = new Contato();
                    System.out.println("Informe o nome que deseja buscar: ");
                    Scanner contato = new Scanner(System.in);
                    c.BuscarContato(contato.nextLine());
                } else if (menuPrograma == 3) {
                    Scanner contato;
                    Contato c = new Contato();
                    
                    System.out.println("Nome do contato: ");
                    contato = new Scanner(System.in);
                    c.setNome(contato.nextLine());
                    
                    BuscarContato(c.getNome());
                    
                    for (Contato todos : listaContato){
                        if (todos.getNome().toUpperCase().equals(c.getNome().toUpperCase())){
                            System.out.println("Novo nome do contato: ");
                            contato = new Scanner(System.in);
                            c.setNome(contato.nextLine());
                            
                            System.out.println("Novo telefone  do contato: ");
                            contato = new Scanner(System.in);
                            c.setTelefone(contato.nextInt());
                            c.AtualizarContato(c);
                            System.out.println("Contato atualizado com sucesso.");
                        }
                    }
                } else if (menuPrograma == 4) {
                    Scanner contato;
                    Contato c = new Contato();
                    
                    System.out.println("Nome do contato: ");
                    contato = new Scanner(System.in);
                    c.setNome(contato.nextLine());
                    
                    BuscarContato(c.getNome());
                    
                    for (Contato todos : listaContato){
                        if (todos.getNome().toUpperCase().equals(c.getNome().toUpperCase())){
                            c.RemoverContato(c);
                                    
                        }
                    }
                } else if (menuPrograma == 0) {
                 System.exit(0);                       
                }
            }
        }
        
    }

    E uma classe com o metodos executaveis: 

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package agendatelefonica;
    
    import static agendatelefonica.AgendaTelefonica.listaContato;
    import java.util.ArrayList;
    
    /**
     *
     * @author gubec
     */
    public class Contato {
        private String nome;
        private int telefone;
    
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }  
    
        public int getTelefone() {
            return telefone;
        }
    
        public void setTelefone(int telefone) {
            this.telefone = telefone;
        }
        static void InserirContato(Contato c) {
            listaContato.add(c);
            System.out.println("Contato adicionado com sucesso");
        }
        static void BuscarContato(String nome) {
            int posicao = 0;
            boolean encontrado = false;
            for (Contato c : listaContato){
                posicao++;
                if (c.getNome().toUpperCase().equals(nome.toUpperCase())){
                    encontrado = true;
                    System.out.println("Contato encontrado na posição "+posicao+" da lista de contatos");
                    System.out.println("Nome: "+c.getNome());
    
                    System.out.println("Telefone : "+c.getTelefone());
    
                }
            }
            if(!encontrado){
                System.out.println("Nenhum contato encontrado com o nome '"+nome+"'");
            }
        }
    
        private static void ExibirNomeContatos() {
            int posicao = 0;
            for (Contato c : listaContato){
                posicao++;
                System.out.println(posicao+"\t"+c.getNome());
            }
        }
    
        static void AtualizarContato(Contato novo) {
            for (Contato c : listaContato){
                
                    c.setNome(novo.getNome());
                    c.setTelefone(novo.getTelefone());
    
               
            }
        }
    
        static void RemoverContato(Contato remover) {
            if(listaContato.size()==1){
                listaContato = new ArrayList<>();
            }else{
                for(int i = 0; i < listaContato.size(); i++){
                    if (remover.getNome().equals(listaContato.get(i).getNome())){
                        listaContato.remove(i);
                    }
                }
            }
            System.out.println("Contato removido com sucesso.");
        }
    
        
    
    }

    Como eu faço para ler e salvar a ArrayList dentro de um arquivo txt?

  2.  

    Estou tentando criar um método construtor Aluno, mas está dando erro na linha public Aluno inteira, o que fazer?

    
    package exaula6;
    
    public class RegistroAcademico {
        private String nome;
        private int RA;
        private int idade;
        private int classe;
        private String curso;
        
    public Aluno(String nome, int RA, int idade, int classe, String curso){
            this.nome = nome;
            this.RA = RA;
            this.idade = idade;
            this.classe = classe;
            this.curso = curso;
            
        }
        public String retornadados(){
            return this.nome + " " + this.RA + " " + this.idade  + " " + this.classe  + " " +  this.curso;
        }
    }
    

     

  3. Está dando um erro no meu programa que é a base para criar um jogo da Forca, mas eu não consigo arrumar, e esse erro só acontece quando eu junto o main,forca.h e forca.c em um projeto .cbp, quando eu executo os 3 arquivos sozinhos funciona, mas preciso entregar para trabalho e preciso que funcione com o arquivo .cbp de projeto. Alguem consegue me ajudar a resolver? Esse é o erro: "error: dereferencing pointer to incomplete type 'NoSecreto {aka struct noSecreto}' "

    Main:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "forca.h"
    void exibe()
    {
        printf("Desenvolvido por:\nGustavo Felipe Beck 18133");
        printf("\nLucas Miranda 18567\n\n");
    }
    
    int main()
    {
        exibe();
        NoSecreto * lstSecreta = inicializaListaSecreta();
        NoSecreto * sorteada;
        NoSecreto * usadas = inicializaListaSecreta();
        lstSecreta = carregaListaArquivo(lstSecreta,"palavras.dat");
        imprimeListaSecreta(lstSecreta);
    
          do{
            system("cls");
            exibe();
            imprimeListaSecreta(lstSecreta);
    
            sorteada= sorteiaPalavra(lstSecreta,usadas);
            if(sorteada!=NULL){
                printf("%s\n", sorteada->palavra);
                lstSecreta = retiraUmElemento(lstSecreta,sorteada->palavra);
            }else{
                printf("Nao existe palavra disponivel!\n\n");
            }
        }while(getchar()!='f');
    
    
    
        NoL * letras = inicializaListaSecreta();
    
        return 0;
    }

    Forca.c:

    #include <stdio.h>
    #include <string.h>
    #include "forca.h"
    
    struct noSecreto {
    int status;
    char palavra[31];
    char assunto[100];
    int num;
    struct noSecreto * prox;
    };
    
    struct noLetras
    {
        char letra;
        int estado;
        struct noSecreto * proximo;
    };
    
    NoSecreto * inicializaListaSecreta()
    {
        return NULL;
    }
    
    NoSecreto * inserePalavraSecreta(NoSecreto * l,char word[31],char subject[100])
    {
      NoSecreto * novo;
      novo = (NoSecreto *) malloc(sizeof(NoSecreto));
      novo->status = 0;
      strcpy(novo->assunto,subject);
      strcpy(novo->palavra,word);
      novo->prox = l;
      l = novo;
      return l;
    }
    void imprimeListaSecreta(NoSecreto *l)
    {
        NoSecreto * p;
        for (p = l; p!=NULL; p=p->prox)
        {
            printf("%0d | %30s | %30s | %d\n", p->status,p->palavra,p->assunto,p->num);
        }
    }
    NoSecreto * carregaListaArquivo(NoSecreto * l, char nomeArq[255])
    {
        const char ch[2]=";";
        char * token;
        int status;
        char palavra[31];
        char assunto[101];
        char * linha[1024];
        int n=0;
        FILE * fWords;
    
        fWords = fopen(nomeArq,"r");
        if(fWords==NULL){
            printf("Falha ao acessar base de dados!!!\n\n");
            exit(0);
        }
        while(fgets(linha,1024,fWords))
        {
            token = strtok(linha,ch);
            if(token!=NULL)
            {
                 strcpy(palavra,token);
            }
            token=strtok(NULL,ch);
            if(token!=NULL)
            {
                strcpy(assunto,token);
            }
            l = inserePalavraSecreta(l,palavra, assunto);
            l->num=n;
            n++;
        }
    
        fclose(fWords);
        return l;
    }
    int quantos(NoSecreto * l)
    {
        NoSecreto * p;
        int y=0;
        for (p = l; p!=NULL; p=p->prox)
        {
           y++;
        }
        return y;
    }
    
    int temPalavraNaoUsada(NoSecreto *l)
    {
        NoSecreto *p;
        for(p=l;p!=NULL;p=p->prox){
            if(p->status==0) return 1;
        }
        return 0;
    }
    
    NoSecreto * sorteiaPalavra(NoSecreto *l,NoSecreto *l2)
    {
        int tam = quantos(l);
        int aleatorio=0;
        int tentativas = 0;
        NoSecreto * p;
    
        while(temPalavraNaoUsada(l)){
            aleatorio = geraAleatorio(tam);
            p = retornaPalavraPos(l,aleatorio);
            if(p->status==0){
              {
                p->status = 1;
                return p;
                l2 = inserePalavraSecreta(p,p->palavra,p->assunto);
    
              }
    
            }
        }
        return NULL;
    }
    
    NoSecreto * retornaPalavraPos(NoSecreto *l, int pos)
    {
        int n=1;
        NoSecreto *p;
        for(p=l; p!=NULL; p=p->prox)
        {
            if(n==pos) break;
            n++;
        }
        return p;
    }
    
    int geraAleatorio(int maximo)
    {
        time_t t;
        int n=0;
        srand((unsigned) time(&t));
        n = (rand() % maximo)+1;
        return n;
    }
    
    NoSecreto * retiraUmElemento(NoSecreto * l, char palavra[31])
    {
        NoSecreto * ant = NULL;
        NoSecreto * p = l;
    
        while(p != NULL && p->palavra != palavra)
        {
            ant = p;
            p = p->prox;
        }
        if(ant == NULL)
           {
                l = p->prox;
           }
        else
        {
           ant->prox = p->prox;
        }
        free(p);
        return l;
    }
    
    

    Forca.h:
     

    #include <stdio.h>
    #include <stdlib.h>
    #ifndef FORCA_H_INCLUDED
    #define FORCA_H_INCLUDED
    
    typedef struct noSecreto NoSecreto;
    typedef struct noLetras  NoL;
    NoSecreto *  inicializaListaSecreta();
    NoSecreto * carregaListaArquivo(NoSecreto * l, char nomeArq[255]);
    void imprimeListaSecreta(NoSecreto *l);
    NoSecreto * inserePalavraSecreta(NoSecreto * l,char word[31],char subject [100]);
    int temPalavraNaoUsada(NoSecreto *l);
    NoSecreto * sorteiaPalavra(NoSecreto *l,NoSecreto * l2);
    int quantos(NoSecreto * l);
    NoL * crialetras(NoSecreto * l);
    NoSecreto * retornaPalavraPos(NoSecreto *l, int pos);
    int geraAleatorio(int maximo);
    NoSecreto* retiraUmElemento(NoSecreto * l, char palavra[31]);
    #endif // FORCA_H_INCLUDED

     

    • Curtir 1
  4. Alguém poderia me ajudar com este erro, a função cria que vai ser usada no main da erroimage.thumb.png.976882908e4179c97b1d1158cb9fd48c.png

    //Gustavo Beck 18133 e Lucas Miranda 18567
    #include <stdlib.h>
    #include "fila.h"
    
    typedef struct no {
        int senha;
        struct no* prox;
    };
    typedef struct no No;
    
    typedef struct fila {
        No* ini;
        No* fim;
    };
    
    Fila* cria (void)
    {
        Fila* f = (Fila*) malloc(sizeof(Fila));
        f->ini = f->fim = NULL;
        return f;
    }
    
    /* função auxiliar: insere no fim */
    No* ins_fim (No* fim, int v)
    {
        No* p = (No*) malloc(sizeof(No));
        p->senha = v;
        p->prox = NULL;
        if (fim != NULL) /* verifica se lista não estava vazia */
            fim->prox = p;
        return p;
    }
    
    /* função auxiliar: retira do início */
    No* ret_ini (No* ini)
    {
        No* p = ini->prox;
        free(ini);
        return p;
    }
    
    void insere (Fila* f, int v)
    {
        f->fim = ins_fim(f->fim,v);
        if (f->ini==NULL) /* fila antes vazia? */
            f->ini = f->fim;
    }
    
    int retira (Fila* f)
    {
        int v;
        if (vazia(f)) {
            printf("Fila vazia.\n");
             /* aborta programa */
        }
        v = f->ini->senha;
        f->ini = ret_ini(f->ini);
        if (f->ini == NULL) /* fila ficou vazia? */
            f->fim = NULL;
        return v;
    }
    
    int vazia (Fila* f)
    {
        return (f->ini==NULL);
    }
    
    void libera (Fila* f)
    {
        No* q = f->ini;
        while (q!=NULL) {
            No* t = q->prox;
            free(q);
            q = t;
        }
        free(f);
    }
    
    /* imprime: versão com lista */
    void imprimeM (Fila* f)
    {
        No* q;
        for (q=f->ini; q!=NULL; q=q->prox)
            printf("M%d\n",q->senha);
    }
    void imprimeE (Fila* f)
    {
        No* q;
        for (q=f->ini; q!=NULL; q=q->prox)
            printf("E%d\n",q->senha);
    }
    
    int checafila (Fila* f, Fila* g)
    {
        No* q;
        No* p;
        int e=0;
        int d=0;
        for (q=f->ini; q!=NULL; q=q->prox)
           {
               e++;
           }
        for(p=g->ini;p!=NULL;p=p->prox)
        {
            d++;
        }
        if(e==0 && d==0)
            return 0;
        else
            return 1;
    }

     

    • Curtir 1
  5. Estou fazendo um programa para armazenar nome, ra e media dos alunos e ver se ele foi aprovado, tudo está indo certo, mas ao escrever o nome, ele armazena e usa para o mesmo nome para os 3 alunos, não pedindo para declarar de novo, o que eu faço para conseguir declarar 3 nomes diferentes mesmo que esses sejam com mais de uma palavra?
     

    #include <stdio.h>
    #include <stdlib.h>
    
    struct alunos {
    int ra;
    char nome[30];
    float media;
    };
    struct alunos aluno;
    
    int main()
    {
    
    for(int i = 1; i<=3;i++)
    {
    
      printf("Digite o nome do aluno %d: ",i);
      scanf("%[^\n]s",aluno.nome);
    
    
      printf("Digite o RA do aluno %d: ",i);
      scanf("%d",&aluno.ra);
    
      printf("Digite a media do aluno %d: ",i);
      scanf("%f",&aluno.media);
    
      if(aluno.media>=6)
      {
          printf("\nAluno %d: %s , com RA: %d , foi aprovado com a media %.2f \n",i, aluno.nome,aluno.ra,aluno.media);
      }
    
        else
        {
            printf("\nAluno %d: %s , com RA: %d , foi reprovado com a media %.2f \n",i, aluno.nome,aluno.ra,aluno.media);
        }
    }
    }

     

    • Curtir 1
  6. #include <stdio.h>
    #include <stdlib.h>
    
    int multiplicarDiagonal(int **m,int *n,int *j)
    {
        printf("Matriz: \n");
        for (int i=0; i<n; i++)
            {
               for (int x=0; x<j; x++)
               {
                  printf("%d, ", m[i][x]);
               }
    
            }
    
            printf("\nDigite um numero: ");
            int n1;
            scanf("%d",&n1);
            for (int i = 0; i<n;i++)
            {
                m[i][i] == m[i][i]*n1;
            }
    
               printf("Matriz modificada: \n");
        for (int i=0; i<n; i++)
            {
               for (int x=0; x<j; x++)
               {
                  printf("%d, ", m[i][x]);
               }
    
            }
            return 0;
    }
    int main()
    {
    int m[3][3] = {{1,2,3,4}, {1,2,3,4}, {1,2,3,4}, {1,2,3,4}};
    
    
     multiplicarDiagonal(m,3,3);
    }

    Queria saber no que eu estou errando na impressão da matriz

  7. @allanxd

    char fName[100];
     int op;
     scanf("%d",&op);
    if(op == 1)
        fName[100] = "C:\\Users\\gubec\\OneDrive\\Área de Trabalho\\teste\\SalaAloisio.csv";
    
    else if(op==2)
        fName[100] = "C:\\Users\\gubec\\OneDrive\\Área de Trabalho\\teste\\Sala2.csv";
    
    else if(op==3)
        fName[100] = "C:\\Users\\gubec\\OneDrive\\Área de Trabalho\\teste\\Sala3.csv";

    agora está certo?

  8. 6 minutos atrás, Atretador disse:

    @Gustavo Beck Quanto que vai sair essa 1060 3GB? Normalmente da para pegar RX580 no mesmo preco

    Na promoção eu vi por uns 930

    adicionado 0 minutos depois
    34 minutos atrás, Elder Nauvirth disse:

    @Gustavo Beck Se sua fonte está bem cuidada e não foi usada com estabilizador ou algo do tipo, ainda é considerável manter.

     

    Dá para manter até mesmo se a gpu pedir 1 conector de energia e a fonte tiver tal conector.

     

    Se já foi usada com estabilizador é melhor trocar a fonte e se desfazer do estabilizador também.

    Não usei nenhum estabilizador e limpo ela uma vez por mês, só que ela já tem 2 anos

     

  9. Olá, tenho uma fonte EVGA 430w com Certificado 80 Plus e PFC Ativo e queria saber se ela consegue rodar tranquilamente uma GTX 1060 3gb e um Ryzen 5 1600? Ou era melhor ir de 1050 ti para não ter que trocar a fonte.

    Outros componentes do PC, 2x4 ram hyperx Fury white, um HD de 1tb e 1 SSD de 120, um monitor de 21.5 polegadas e um de 15 polegadas. Agradeço a ajuda.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!