Translate

quarta-feira, 4 de dezembro de 2013

Programa completo agenda usando arquivos em C++ cria, lê, busca, exclui

#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <conio.h>

using namespace std;

void busca(){
    char nome[100];
    char nom_concat[100] = "Nome: ";
    char nom_busca[205];
    char *result; 
    int i;
    char Linha[100];
    FILE *agenda;
   
   
    // Abre um arquivo TEXTO para LEITURA 
    agenda = fopen("j:\\Agenda.txt", "r+");
    if (agenda == NULL)  // Se houve erro na abertura 
    {    printf("Problemas na abertura do  arquivo\n");    
        
    }
   
    cout << "Digite o nome p/ buscar: ";
    cin >> nome;
   
    strcat( nome, "\n");
    strcat( nom_concat, nome );
   
    while (!feof(agenda))
    {
        // Lê uma linha (inclusive com o '\n')     
        result = fgets(Linha, 100, agenda); 
   
        // o 'fgets'  lê até 99 caracteres ou até o '\n'     
        if(strcmp(Linha,nom_concat)==0){
          printf("Usuário encontrado \n");
          printf("Linha %d : %s",i,Linha);
          getch();
        }
    }
       
    fclose(agenda);
    getch();   
}


#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <conio.h>

using namespace std;

void exclui(){
    int r;
    char sim[2];
    FILE *agenda;
    cout << "Deseja realmente excluir o arquivo? (s - n): ";
    cin >> sim;

    if(stricmp(sim,"s") == 0){
        remove("j:\\Agenda.txt");
    }
}


#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <conio.h>

using namespace std;

void le(){
    FILE *agenda;
    char ch;
    ifstream fin("j:\\Agenda.txt"); // Abre arquivo para leitura
    // Enquanto não for fim de arquivo:
    while(fin.get(ch)){ // lê um caracter do arquivo
    cout << ch;}
}


#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <stdlib.h>

using namespace std;

struct contato{
    char nome[40];
    char end[100];
    char tel[15];
};

void busca();
void le();
void exclui();

int main(int, char **) {
   
    int opcao;
    FILE *agenda;
   
    do{
   
        cout <<"\n\n|------------Menu de opções------------|\n\n";
        cout <<"1 - Criar nova agenda\n";
        cout <<"2 - Cadastrar um contato\n";
        cout <<"3 - Excluir a agenda\n";
        cout <<"4 - Buscar um contato pelo nome\n";
        cout <<"5 - Imprimir a agenda\n";
        cout <<"6 - Encerrar o programa\n\n";
        cout <<"\n|--------------------------------------|\n\n\n";
        cout <<"Informe uma opção:  ";
        cin >> opcao;
      
            switch(opcao){
              
                case 1:
                    agenda = fopen ("i:\\Agenda.txt", "w");
                                     
                    if (agenda == NULL) {
                       printf ("Houve um erro ao abrir o arquivo.\n");
                       return 1;
                    }
                  
                    printf ("\n\nAgenda criada com sucesso!\n\n");
                    fclose(agenda);
                    break;
                  
                case 2:
                    int x;
                    agenda = fopen ("j:\\Agenda.txt", "a");
                  
                    if (agenda == NULL) {
                       printf ("Houve um erro ao abrir o arquivo.\n");
                       return 1;
                    }
                  
                    cout << "\nInforme a quantidade que deseja cadastrar: ";
                    cin >> x;
                  
                    for(int i=0; i<x; i++){
                        contato cont[x];
                        cout<<"\nInforme o nome: ";
                        cin>> cont[i].nome;
                        cout<<"Informe o endereço: ";
                        cin>> cont[i].end;
                        cout<<"Informe o telefone: ";
                        cin>> cont[i].tel;
                        fprintf(agenda,"\nNome: %s\n",cont[i].nome);
                        fprintf(agenda,"Endereço: %s\n",cont[i].end);
                        fprintf(agenda,"Telefone: %s\n",cont[i].tel);
                    }
                    fclose (agenda);
                    break;
                  
              
                case 3:
                    exclui();
                    break;
                  
                      
                case 4:  
                    busca();
                      break;
              
                  
                case 5:
                    le();
                    break;  
      
            }  
    }    while(opcao != 6);
        cout << "\n\n\n\ Programa encerrado!";          
}



Programa em C++ usando arquivos que cria e lê um arquivo

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

using namespace std;

struct contato{
    char nome[40];
    char end[100];
    char tel[15];
};

void busca();
void le();
void exclui();

int main(int, char **) {
   
    int opcao;
    FILE *arquivo;
   
    do{
   
        cout <<"\n\n|------------Menu de opções------------|\n\n";
        cout <<"1 - Criar um arquivo\n";
        cout <<"2 - Ler um arquivo\n";
        cout <<"3 - Encerrar o programa\n\n";
        cout <<"\n|--------------------------------------|\n\n\n";
        cout <<"Informe uma opção:  ";
        cin >> opcao;
       
            switch(opcao){
               
                case 1:
               
                    arquivo = fopen ("D:\\Arquivo.txt", "w");
                    if (arquivo == NULL) {
                       printf ("Houve um erro ao abrir o arquivo.\n");
                       return 1;
                    }
                    printf ("Arquivo criado com sucesso.\n");
                    fprintf(arquivo,"Teste gravação");
                    fclose (arquivo);
                    break;
                   
                case 2:
                    int c;

                    if((arquivo = fopen("D:\\arquivo.txt", "r")) == NULL)
                    {
                        perror("Erro: fopen");
                        exit(EXIT_FAILURE);
                    }
               
                    while((c = fgetc(arquivo)) != EOF)
                        printf("Caractere lido: %c\n", c);
               
                   
                    fclose(arquivo);
                    break;
                       
       
            }   
    }    while(opcao != 3);
        cout << "\n\n\n\Programa encerrado!";           
}

Metodo bolha de busca em c++ completo com menude opções

// Busca simples usando método da bolha

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define qtde 8

using namespace std;

main()
{
          int vetor[qtde], x = 0,
      y = 0,
      aux = 0;
   
      int opcao;
    FILE *agenda;
   
    do{
   
        cout <<"\n\n|------------Menu de opções------------|\n\n";
        cout <<"1 - Criar o vetor\n";
        cout <<"2 - Ordenar de forma cresceste\n";
        cout <<"3 - Ordenar de forma decrescente\n";
        cout <<"4 - Encerrar o programa\n\n";
        cout <<"\n|--------------------------------------|\n\n\n";
        cout <<"Informe uma opção:  ";
        cin >> opcao;
       
            switch(opcao){
               
                case 1:
                    for( x = 0; x < qtde; x++ )
                      {
                        printf("\nEntre com um inteiro para vetor[%d]: ",x);
                        scanf("%d",&aux);
                        vetor[x] = aux;
                      }
                    break;
                   
                case 2:
                      // coloca em ordem crescente (1,2,3,4,5...) 
                      for( x = 0; x < qtde; x++ )
                      {
                        for( y = x + 1; y < qtde; y++ )
                        // sempre 1 elemento à frente
                        {
                          // se o (x > (x+1)) então o
                          //x passa pra frente (ordem crescente)
                          if ( vetor[x] > vetor[y] )
                          {
                             aux = vetor[x];
                             vetor[x] = vetor[y];
                             vetor[y] = aux;
                          }
                        }
                      } // fim da ordenação
                     
                       // exibe elementos ordenados  
                      printf("\n\n Elementos ordenados (Crescente):");
                     
                      for( x = 0; x < qtde; x++ )
                      {
                        printf("\n vetor[%d] = %d",x,vetor[x]);
                        // exibe o vetor ordenado
                      } 
                    break;
                   
               
                case 3:
                    // coloca em ordem decrescente (10,9,8,7...)
                  for( x = 0; x < qtde; x++ )
                  {
                    for( y = x + 1; y < qtde; y++ )
                    // sempre 1 elemento à frente
                    {
                      if ( vetor[y] > vetor[x] )
                      {
                         aux = vetor[y];
                         vetor[y] = vetor[x];
                         vetor[x] = aux;
                      }
                    }
                  } // fim da ordenação
                 
                  // exibe elementos ordenados
                  printf("\n\n Elementos ordenados (Decrescente):");
                 
                  for( x = 0; x < qtde; x++ )
                  {
                    printf("\n vetor[%d] = %d",x,vetor[x]);
                    // exibe o vetor ordenado
                  }
                    break;
                   
            }   
    }    while(opcao != 4);
        cout << "\n\n\n\ Programa encerrado!";       
}

Programa quicksort c++ que gera o vetor aleatório ou definido e imprime completo com o main/separa/quicksort



QUICKSORT


#include <stdio.h>
#include <stdlib.h>

int separa( int v[], int p, int r)
{
   int c = v[p], i = p+1, j = r, t;
   while (/*A*/ i <= j) {
      if (v[i] <= c) ++i;
      else if (c < v[j]) --j;
      else {
         t = v[i], v[i] = v[j], v[j] = t;
         ++i; --j;
      }
   }
   // agora i == j+1                
   v[p] = v[j], v[j] = c;
   return j;
}
-------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int separa( int v[], int p, int r);
void quicksort( int v[], int p, int r)
{
   int j;                         // 1
   if (p < r) {                   // 2
      j = separa( v, p, r);       // 3
      quicksort( v, p, j-1);      // 4
      quicksort( v, j+1, r);      // 5
   }
}
-------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
#define MAX 10
using namespace std;
int separa( int v[], int p, int r);
void quicksort( int v[], int p, int r);

int main(){
            int opcao;
            int vetor[MAX];
            do{
                        cout<<"\n\n\n---------------Menu de opções----------------\n";
                        cout<<"1 - Gerar vetor de numeros aleatórios\n";
                        cout<<"2 - Gerar vetor de valores definidos\n";
                        cout<<"3 - Imprimir\n";
                        cout<<"4 - Encerrar o programa\n";
                        cout<<"---------------------------------------------\n\n";
                        cout<<"Informe uma opção";
                        cin>>opcao;
                       
                        switch(opcao){
                                   case 1:
                                               int e;
                                               int ate;
                                               cout<<"Informe o final do intervalo do vetor\n";
                                               cout<<"De: 0 até : ";
                                               cin>>ate;
                                       /* inicializar o gerador de números aleatórios */
                                       srand(time(NULL));
                                       for (e=0; e<MAX; e++)
                                    {
                                /* para gerar números aleatórios de 0 a ate */
                                vetor[e] = rand() % ate;
                                    }
                                               break;
                                              
                                   case 2:
                                              
                                               for(int j = 0; j < MAX; j++)
                                                {
                                                 printf("Digite um valor: ");
                                                 scanf("%d", &vetor[j]);
                                                }
                                               break;
                                                          
                                   case 3:
                                               int i;  
                                               printf("Vetor desordenado:\n");
                                               for(i = 0; i < MAX; i++){
                                                 printf("%d ", vetor[i]);
                                               }
                                               printf("\n");  
                                              
                                               quicksort(vetor, 0, 9);
                                              
                                               printf("Vetor ordenado:\n");
                                               for(i = 0; i < MAX; i++){
                                                 printf("%d ", vetor[i]);
                                               }
                                               printf("\n");
                                               break;
                        }
           
            }while(opcao != 4);
           
            cout << "\n\n\n\ Programa encerrado!";

}