Ir ao conteúdo
  • Cadastre-se

Felipe Hoffmeister

Membro Pleno
  • Posts

    53
  • Cadastrado em

  • Última visita

posts postados por Felipe Hoffmeister

  1. Fazer um programa que permita a inclusão de um grafo (dirigido ou não dirigido), mostrando o Grafo (desenhado) ou a Matriz/lista de adjacências.
    O programa deve permitir:
    - Incluir ou excluir vértices e arestas/arcos a qualquer tempo
    - Fazer busca em Largura e Profundidade. Com opção de buscar algum elemento do grafo ou mostrar todos os vértices do grafo na ordem de visitação.
    - O ponto de inicio da busca deve ser informado pelo usuário.

    • Obrigado 1
  2. @vangodp

    //NOME: FELIPE HOFFMEISTER PEREIRA
    using namespace std;
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #include <fstream>
    #include "biblioteca.h"
    int memoria(ListaE &lista) {
    
        Produto *aux;
        aux = lista.inicio;
        char a[200];
        ifstream salvar;
        salvar.open("arquivo.txt");
        if(!salvar.is_open()) {
            cout<<"Arquivo.txt nao abriu";
            return 0;
    
        }
    
    
    
    }
    bool imprime(ListaE lista)
    {
        Produto *aux = new Produto;
    
        aux = lista.inicio;
    
    
        while(aux != NULL )
        {
            cout<<"Codigo: "<<aux->Codigo<<endl;
            cout<<"Nome: "<<aux->Nome<<endl;
            cout<<"Preco: "<<aux->Preco<<endl<<endl;
            aux = aux->proximo;
    
        }
    }
    
    int armazena(ListaE &lista)
    {
        Produto *aux;
        aux = lista.inicio;
        ofstream salvar;
        salvar.open("arquivo.txt");
        if(!salvar.is_open()) {
            cout<<"Arquivo.txt nao abriu";
            return 0;
    
        } else
    
            while(aux != NULL)
            {
                salvar <<aux->Codigo<<" ";
                salvar <<aux->Preco<<" ";
                salvar <<aux->Nome<<" \n";
                aux = aux->proximo;
    
            }
    }
    
    int inserir(ListaE &lista, Produto prod)
    {
    
        cout<<"\t\tCodigo: ";
        cin>>prod.Codigo;
        cout<<"\t\tPreco: ";
        cin>>prod.Preco;
        cout<<"\t\tNome do produto: ";
        cin.ignore();
        getline(cin,prod.Nome);
        adiciona_item(lista,prod);
    
    
    
    }
    
    int buscar_lista(ListaE &lista, Produto prod)
    {
        int codigo;
        cout<<"Digite o Codigo para a busca: ";
        cin>>codigo;
        Produto* produto_buscado = busca(lista.inicio,codigo);
        if(produto_buscado != NULL)
        {
    
            cout<<"Codigo: "<<produto_buscado->Codigo<<endl;
            cout<<"Nome: "<<produto_buscado->Nome<<endl;
            cout<<"Preco: "<<produto_buscado->Preco<<endl<<endl;
            return 1;
        }
        else
        {
            cout << "Nao existe esse produto"<<endl;
            return 0;
        }
    
    
    }
    int remover_lista(ListaE &lista, Produto prod)
    {
    
        int codigo_remover;
        cout<<"Digite o Codigo para a remover: ";
        cin>>codigo_remover;
    
        if(!remover(lista,codigo_remover))
        {
            cout<<"Codigo invalido, ou a lista esta vazia"<<endl;
    
        }
        else
        {
            cout<<"Codigo: "<<codigo_remover<<" removido com sucesso"<<endl;
        }
    }
    
    void menu()
    {
    
        system("color 0");
        cout<<"\t\tMercado "<<endl<<endl;
        cout<<"\t\tPRODUTOS"<<endl<<endl;
        cout<<"\t\t1 - Adicionar Produto"<<endl;
        cout<<"\t\t2 - Buscar Produto"<<endl;
        cout<<"\t\t3 - Remover Produto"<<endl;
        cout<<"\t\t0 - Sair"<<endl;
    
    }
    
    int main()
    {
    
        ListaE lista;
        Produto prod;
        int escolha;
    
    
        inicializa_lista(lista);
        memoria(lista);
    
        do
        {
            system("color f1");
            menu();
            imprime(lista);
            cin>>escolha;
    
            if(escolha == 1)
            {
    
                system("cls");
                inserir(lista,prod);
                system("cls");
            }
    
            if(escolha == 2)
            {
                system("cls");
                buscar_lista(lista,prod);
    
            }
            if( escolha == 3)
            {
                system("cls");
                remover_lista(lista,prod);
            }
    
            if(escolha == 0) {
    
    
    
                armazena(lista);
    
            }
        }
        while (escolha != 0 );
        return 0;
    
    
    }

     

    adicionado 0 minutos depois
    #ifndef BIBLIOTECA_H_INCLUDED
    #define BIBLIOTECA_H_INCLUDED
    #include <iostream>
    using namespace std;
    
    
    //estrutura do produto
    struct Produto
    {
        int Codigo;
        float Preco;
        string Nome;
    
        Produto *proximo;
    };
    
    //estrutura da lista
    struct ListaE
    {
        Produto *inicio;
    };
    
    //inicializa lista
    bool inicializa_lista (ListaE &lista)
    {
        lista.inicio = NULL;
    }
    
    bool adiciona_item(ListaE &lista,Produto prod)
    {
    
        Produto *aux = new Produto;
    
        aux->Codigo = prod.Codigo;
        aux->Preco  = prod.Preco;
        aux->Nome   = prod.Nome;
    
    
        if(lista.inicio == NULL)
        {
    
            aux->proximo = NULL;
            lista.inicio= aux;
    
        }
        else
        {
            aux->proximo = lista.inicio;
            lista.inicio = aux;
        }
    }
    
    Produto* busca(Produto* aux, int codigo)
    {
    
        if( aux == NULL)
        {
            return NULL;
        }
        else if(codigo == aux->Codigo)
        {
            return aux;
        }
        else {
            return busca(aux->proximo,codigo);
        }
    }
    
    bool remover(ListaE &lista, int remover)
    {   Produto *atual;
        Produto *anterior;
    
        if(lista.inicio == NULL) {
            return 0;
        }
        else {
            atual = lista.inicio;
            anterior = atual;
            if(lista.inicio->Codigo == remover) {
                lista.inicio = lista.inicio->proximo;
                delete atual;
                return 1;
    
            }
            else
    
                while(atual != NULL)
                {
    
                    if(atual->Codigo == remover) {
                        anterior->proximo = atual->proximo;
                        delete atual;
                        return 1;
                    }
                    else {
                        anterior = atual;
                        atual = atual->proximo;
                    }
    
    
    
                }
            return 0;
        }
    }
    
    #endif // BIBLIOTECA_H_INCLUDED

    @vangodp

    adicionado 2 minutos depois

    @vangodp eu estou conseguindo inserir no arquivo.txt mas inserir novamente na lista nao estou conseguindo

  3. Estou fazendo um trabalho em c++ de uma lista encadeada, e nao estou conseguindo acessar um ponteiro

    #ifndef BIBLIOTECA_H_INCLUDED
    #define BIBLIOTECA_H_INCLUDED
    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    
    
    
    //estrutura do produto
    struct Produto {
        int Codigo;
        float Preco;
    
        Produto *proximo;
    };
    
    //estrutura da lista
    struct ListaE {
        Produto *inicio;
    };
    
    //inicializa lista
    bool inicializa_lista (ListaE &lista) {
        lista.inicio = NULL;
    }
    
    
    bool adiciona_item(ListaE &lista,Produto prod) {
    
        Produto *novo_item;
         Produto *aux;
    
    
    
        novo_item = &prod;
    
    
    
        cout<<lista.inicio<<endl;
    
    
        if(lista.inicio == NULL) {
    
            lista.inicio = novo_item;
            novo_item->proximo = NULL;
           
        }
    
    }
    
    
    #endif // BIBLIOTECA_H_INCLUDED
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    o ponteiro no qual nao consigo acessar é  novo_item->proximo = NULL;

    • Curtir 1
  4. @arfneto A duvida que eu tenho e como fazer a funcao, pois eu fiz ja a agenda de uma forma que o meu professor disse q ta errado, na forma que eu fiz inserir algo no CPF por exemplo, tinha que ter uma funcao especifica para o CPF, a forma que ele quer seria como se tivesse uma funcao inserir e nela independente de qual itens que você tenha ela insere, você passa por parametro o CPF e dentro da funcao ela insere o cpf no local correto da mesma forma o id, cnpj etc, utlizando a mesam funcao

  5. @arfneto tenho sim , mais tem coisas no codigo que postou que eu nao entendo , como #pragma once e #include "PF.h" #include "PJ.h"

     

    adicionado 3 minutos depois

    @arfneto e outra coisa, a agenda é uma só, quando for inserir algo nela e pressionar 1 la dentro voce escolhe em qual tipo de agenda você insere, entre a pessoal e juridica

     

    adicionado 26 minutos depois

    @arfneto  se você conseguir me ajudar somente em uma funcao, como na insere por ex, eu consigo fazer o resto pois estou com muita duvida no que meu professor pediu,  na minha logica a funcao insere tem q inserir qualquer tipo de dado como cpf, cnpj, id etc independente de qual struct você tem, nao sei se isso é possivel e se for nao sei como fazer

  6. @arfneto nao consegui explicar de uma forma clara, eu preciso que a mesma funcao da biblioteca insira valores em diferentes dados , por exemplo inserir no CPF e no ID, Eu o que eu tenho que fazer para eu conseguir fazer  isso

    adicionado 2 minutos depois

    @arfneto a struct agenda foi o professor que passou, nao fui eu quem criei vou lhe mostrar uma foto do enunciado do trabalho para ver se voce consegue entender e me ajudar image.thumb.png.c0d2c67c99a77254aa5a3e278e1cd8b9.png 

  7. mas eu ja postei

    adicionado 1 minuto depois
    #include <iostream>
    using namespace std;
    #include "agenda.h"
    #include <windows.h>
    #include <stdlib.h>
    #include "biblioteca.h"
    #define MAX 5
    
    struct pessoa_juridica
    {
        int ID, CNPJ,Empresa, Tcomercial;
        string nome;
        int quantidade;
    
    };
    
    struct pessoa_fisica
    {
        int ID, CPF,Cel;
        string nome;
        int quantidade;
    
    };
    
    
    
    
    
    int main()
    {
        system("color 70");
        int  aux,aux2;
        Agenda<pessoa_fisica,5> A1;
        Agenda <pessoa_juridica,5> A2;
    
        pessoa_fisica a1;
    
        inicializa_agenda(A1);
        inicializa_agenda(A2);
        insere(A1,a1);
    do{
    
        Infos();
        cin>>aux;
        system("cls");
        if(aux==1) {
            tipos();
            cin>>aux2;
            system("cls");
    
            if(aux2==1) {
                    if( A1.quantidade<MAX){
                cin.sync();
                int i;
                i=verifica_pos(A1);
                cout<<"\tNOME: ";
                getline(cin, A1.itens[i].nome);
                cin.sync();
                while(!geraID(A1,i)) {
                    cout<<"\tID invalido"<<endl;
                }
                while(!geraCPF(A1,i)) {
                    cout<<"\tCPF invalido"<<endl;
                }
                while(!geraCel(A1,i)) {
                    cout<<"\tCelular invalido"<<endl;
                }
                A1.quantidade+=1;
            }
            else{
                cout<<"A agenda atingiu o numero maximo"<<endl;
            }
    
            }
            if(aux2==2) {
                if( A1.quantidade<MAX){
                cin.sync();
                int i;
                i=verifica_pos(A2);
                cout<<"\tNOME DA EMPRESA: ";
                getline(cin, A1.itens[i].nome);
                cin.sync();
                while(!geraID(A2,i)) {
                    cout<<"\tID invalido"<<endl;
                }
                while(!geraCNPJ(A2,i)) {
                    cout<<"\tCNPJ invalido"<<endl;
                }
                while(!geraEmpresa(A2,i)) {
                    cout<<"\tNUMERO EMPRESARIAl invalido"<<endl;
                }
                A1.quantidade+=1;
    
    
            }}
            getch();
            system("cls");
        }
    
        if(aux==2){
                tipos();
            cin>>aux2;
                if(aux2==1){
                        pesquisar(A1);
    
    
    
    
                }
    
    
        }
        if(aux==3){
            int id;
        cout<<"DIGITE O ID QUE DESEJA EXCLUIR: ";
        cin>>id;
    //    remover(A1,id);
      //   remover(A2,id);
    
    
    
    
    
        }
    
    
        if(aux==4){
                mostrar(A1);
                mostrar2(A2);
    
    
    
    
    
    
        }
    
    
    
    
    
    
        }while(aux!=5);
    
    
    
    
    
    
    
    
    
    
    
    
        return 0;
    }
    #ifndef BIBLIOTECA_H_INCLUDED
    #define BIBLIOTECA_H_INCLUDED
    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <conio.h>
    
    
    template <typename TIPO, int MAX>
    struct Agenda {
        TIPO itens[MAX];
        int quantidade;
    };
    
    template <typename TIPO,int MAX>
    bool inicializa_agenda(Agenda <TIPO,MAX> &ag)
    {
        ag.quantidade = 0;
        return true;
    }
    template <typename TIPO,int MAX>
    int verifica_pos(Agenda <TIPO,MAX> &ag) {
    
        for(int i=0; i<MAX; i++) {
    
            if(ag.itens[i].ID==0)
                return i;
        }
        return false;
    }
    
    
    
    
    template <typename TIPO,int MAX>
    bool geraID(Agenda <TIPO,MAX> &ag,int a) {
        int ID;
        cout<<"\tID: ";
        cin>>ID;
        for(int i=0; i<MAX; i++) {
            if(ID==ag.itens[i].ID)
                return false;
        }
        ag.itens[a].ID=ID;
        return true;
    }
    
    
    
    template <typename TIPO,int MAX>
    bool geraCPF(Agenda <TIPO,MAX> &ag,int a) {
        int CPF;
        cout<<"\tCPF: ";
        cin>>CPF;
        for(int i=0; i<MAX; i++) {
            if(CPF==ag.itens[i].CPF)
                return false;
        }
        ag.itens[a].CPF=CPF;
        return true;
    }
    
    template <typename TIPO,int MAX>
    bool geraCel(Agenda <TIPO,MAX> &ag,int a) {
        int Cel;
        cout<<"\tCELULAR: ";
        cin>>Cel;
        for(int i=0; i<MAX; i++) {
            if(Cel==ag.itens[i].Cel)
                return false;
        }
        ag.itens[a].Cel=Cel;
        return true;
    }
    
    template <typename TIPO,int MAX>
    bool geraCNPJ(Agenda <TIPO,MAX> &ag,int a) {
        int CNPJ;
        cout<<"\tCNPJ: ";
        cin>>CNPJ;
        for(int i=0; i<MAX; i++) {
            if(CNPJ==ag.itens[i].CNPJ)
                return false;
        }
        ag.itens[a].CNPJ=CNPJ;
        return true;
    }
    template <typename TIPO,int MAX>
    bool geraEmpresa(Agenda <TIPO,MAX> &ag,int a) {
        int Empresa;
        cout<<"\tNUMERO EMPRESARIAL: ";
        cin>>Empresa;
        for(int i=0; i<MAX; i++) {
            if(Empresa==ag.itens[i].Empresa)
                return false;
        }
        ag.itens[a].Empresa=Empresa;
        return true;
    }
    
    template <typename TIPO,int MAX>
    int pesquisar(Agenda <TIPO,MAX> &ag) {
    
        int id;
        string name;
        int aux=0;
        cout<<"pesquisar pelo id digite 1"<<endl<<"pesquisar pelo nome digite 2"<<endl;
        cin>>aux;
        if(aux==1) {
    
            cout<<"Digite o id: ";
            cin>>id;
            for(int i=0; i<MAX; i++) {
                if(id==ag.itens[i].ID) {
                    cout<<"NOME: "<<ag.itens[i].nome<<endl<<"CPF: "<<ag.itens[i].CPF<<endl<<"ID: "<<ag.itens[i].ID<<endl<<"Celular: "<<ag.itens[i].Cel<<endl;
                    return 1;
                }
            }
        } else if(aux==2) {
            cout<<"Digite o nome: ";
            cin>>name;
            /* for(int i=0; i<MAX; i++) {
                 if(name==ag.nome[i]) {
                     cout<<"NOME: "<<ag.itens[i].nome<<endl<<"CPF: "<<ag.itens[i].CPF<<endl<<"ID: "<<ag.itens[i].ID<<endl<<"Celular: "<<ag.itens[i].Cel<<endl;
                     return 1;
                 }
             }*/
    
        }
        cout<<"Codigo ou nome invalido";
        return 0;
    
    }
    
    template <typename TIPO,int MAX>
    void mostrar(Agenda <TIPO,MAX> ag) {
        for(int i=0; i<MAX; i++) {
            if(ag.itens[i].ID!=0) {
                cout<<"NOME: "<<ag.itens[i].nome<<endl;
                cout<<"CPF: "<<ag.itens[i].CPF<<endl<<"ID: "<<ag.itens[i].ID<<endl<<"Celular: "<<ag.itens[i].Cel<<endl<<endl;
            }
        }
    
    }
    template <typename TIPO,int MAX>
    void mostrar2(Agenda <TIPO,MAX> ag) {
        for(int i=0; i<MAX; i++) {
            if(ag.itens[i].ID!=0) {
                cout<<"NOME: "<<ag.itens[i].nome<<endl;
                cout<<"CNPJ: "<<ag.itens[i].CNPJ<<endl<<"ID: "<<ag.itens[i].ID<<endl<<"TELEFONE EMPRESARIAL: "<<ag.itens[i].Empresa<<endl<<endl;
            }
        }
    }
    
    
    
    
    /*template <typename TIPO,int MAX>
    bool remover(Agenda <TIPO,MAX> &ag,int id) {
    
        for(int i=0; i<MAX; i++) {
            if(id==ag.itens[i].ID&&id!=0) {
                ag.itens[i].=0;
                ag.quantidade-=1;
                return true;
            }
        }
        return false;
    }*/
    
    
    
    
    
    
    
    
    void Infos() {                                       //abrir menu da agenda
        cout<<"\t\t**  Agenda   **"<<endl<<endl;
        cout<<"\t[1] - inserir um novo item na agenda"<<endl;
        cout<<"\t[2] - Procurar contato"<<endl;
        cout<<"\t[3] - remover um item da agenda"<<endl;
        cout<<"\t[4] - Mostrar todos os contatos"<<endl;
        cout<<"\t[5] - Sair"<<endl;
        cout<<"\t->";
    
    }
    void tipos()
    {
    
        cout<<"\t\t**  Agenda   **"<<endl<<endl;
        cout<<"\n\t [1] - PARA PESSOA FISICA\n\t [2] - PARA PESSOA JURIDICA"<<endl;
        cout<<"\t->"; // MENU NA TELA
    }
    
    
    
    
    
    #endif // BIBLIOTECA_H_INCLUDED

     

  8. @arfneto meu professor quer que eu crie 2 agendas no main, e utilize uma as funcoes do main de forma generica, por exemplo: se eu quiser inserir algo no CPF seria igual inserir no ID, entendeu?

    adicionado 2 minutos depois

    eu tenho q fazer isso,

    • inicializar a agenda

    • inserir um item na agenda

    • remover um item da agenda

    • fazer uma pesquisa na agenda

    • A estrutura de itens e funções da biblioteca devem ter uma implementação única assumindo o tipo de contato de acordo com o parâmetro utilizando templates.

    e ele passou esse exemplo como base de como fazer

    template <typename TIPO, int MAX>
    bool insere(Agenda <TIPO,MAX> &ag, TIPO dado); ...

     

    • Obrigado 1
  9. #include <iostream>
    using namespace std;
    #include "agenda.h"
    #include <windows.h>
    #include <stdlib.h>
    #include "biblioteca.h"
    
    
           //DEFINE AS STRUCS DA AGENDA
    struct pessoa_juridica
    {
        int ID[5]= {}, CNPJ[5]= {},Empresa[5]= {}, Tcomercial[5]= {};
        string nome[5];
        int quantidade;
    
    };
          //DEFINE AS STRUCS DA AGENDA
    struct pessoa_fisica
    {
        int ID[5]= {}, CNPJ[5]= {},Empresa[5]= {}, Tcomercial[5]= {};
        string nome[5];
        int quantidade;
    
    };
    
    int main()
    {
        system("color 70");
    
       Agenda <pessoa_juridica,5> A2;
        Agenda<pessoa_fisica,5> A1;
    
        inicializa_agenda(A1);
     insere(A1.itens,1);
    
        cout<<A1.ID;
    
    
    
    
    
    
    
    
    
        return 0;
    }
    #ifndef BIBLIOTECA_H_INCLUDED
    #define BIBLIOTECA_H_INCLUDED
    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <conio.h>
    
    
    template <typename TIPO, int MAX>
    struct Agenda {
     TIPO itens[MAX];
     int quantidade;
    };
    
    template <typename TIPO,int MAX>
    bool inicializa_agenda(Agenda <TIPO,MAX> &ag)
    {
        ag.quantidade = 0;
        return true;
    }
    
    
    
    
    
    template <typename TIPO,int MAX>
    bool insere(Agenda <TIPO,MAX> &ag,int a)
    {
        int ID;
        cout<<"\tID: ";
        cin>>ID;
        for(int i=0; i<MAX; i++)
        {
            if(ID==ag.ID[i])
                return false;
        }
        ag.ID[a]=ID;
        return true;
    }
    
    
    
    #endif // BIBLIOTECA_H_INCLUDED

     

  10. estou fazendo um trabalho para a faculdade e preciso utilizar 1 struct generica na bibloteca e 2 "originais" no main, como eu utilizo?

    #include <iostream>
    using namespace std;
    #include "agenda.h"
    #include <windows.h>
    #include <stdlib.h>
    #include "biblioteca.h"
    
    template <typename TIPO, int MAX>       //DEFINE AS STRUCS DA AGENDA
    struct pessoa_fisica
    {
        TIPO ID[MAX]= {}, CPF[MAX]= {}, Cel[MAX]= {}, CNPJ[MAX]= {},Empresa[MAX]= {}, Tcomercial[MAX]= {};
        string nome[MAX];
        int quantidade;
    
    };
    template <typename TIPO, int MAX>       //DEFINE AS STRUCS DA AGENDA
    struct pessoa_juridica
    {
        TIPO ID[MAX]= {}, CPF[MAX]= {}, Cel[MAX]= {}, CNPJ[MAX]= {},Empresa[MAX]= {}, Tcomercial[MAX]= {};
        string nome[MAX];
        int quantidade;
    
    };
    
    int main()
    {
       
        return 0;
    }
    #ifndef BIBLIOTECA_H_INCLUDED
    #define BIBLIOTECA_H_INCLUDED
    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <conio.h>
    
    
    template <typename TIPO, int MAX>
    struct Agenda {
     TIPO itens[MAX];
     int quantidade;
    };
    
    template <typename TIPO,int MAX>        //ZERA A AGENDA
    bool inicializa_agenda(Agenda <TIPO,MAX> &ag)
    {
        ag.quantidade = 0;
        return true;
    }
    
    
    }
    
    
    template <typename TIPO,int MAX>
    bool insere(Agenda <TIPO,MAX> &ag,int a)
    {
        TIPO ID;
        cout<<"\tID: ";
        cin>>ID;
        for(int i=0; i<MAX; i++)
        {
            if(ID==ag.ID[i])
                return false;
        }
        ag.ID[a]=ID;
        return true;
    }
    
    
    
    #endif // BIBLIOTECA_H_INCLUDED

     

    • Curtir 1

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!