Ir para conteúdo
Fórum Script Brasil
  • 0

programa para controle de bordel


Paulo Jardim

Pergunta

Galera,

para fins didáticos estou disponibilizando esse programa para controle de bordel.

A idéia é cadastrar as garotas no sistema informando suas carecterisiticas fisicas e o valor cobrado por hora.

Essas informações serão armazenadas em arquivos de texto.

O sistema também permite dar "saida" nas garotas mudando seu estatus para "S" de saida.

Os relatórios também permitem escolher as garotas por nome, caracteristicas fisicas etc.

Além de mostrar todas as garotas que estão na rua e por quantas horas.

PS.: Código bem comentado ( até demais )

/*
  Name: PEIXE XOTA V.1.0
  Copyright: Epic Solutions
  Desenvolvedor   : Paulo E.P. Jardim.
  E-mail : inf-paulo@bol.com.br
  Projeto Finalizado em  03/12/10 23:22    
  Description:
              
              
                      Controle e Gerenciamento de Garotas
              
               Trabalho em C,  1 Semestre Faculdade FTC, Professor: Lúcio
*/



#include <stdio.h>
#include <ctype.h>      //Para usar o toupper()
#include <string.h>  
#include <conio.h>      //Para usar o getch()
#include <stdlib.h>  
#include <windows.h>    //Para poder mover o cursor com a função gotoxy()

void gotoxy(int x, int y) {    //Função para reposicionar o cursor
  COORD c;
  c.X = x - 1;
  c.Y = y - 1;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}


int main ()

{
    typedef struct //Criado typedef Struct ao invez de Struct para facilitar o código
    {              
    char nome[26]; // Variavel para o nome da Garota
    char status;   // estatus da garota
    char corcabelo[15]; // cor do cabelo da garota
    char cor_olho[15];  // cor do olho da garota
    float valor_hora;  // valor por hora que a garota cobra
    }dados;            //nome dado a minha estrutura
    
    typedef struct
    {
    char nome2[26];
    char status2;
    char cliente2[13];
    int horas2;
    float valorhora2;
    }dados2;
    
    dados banco;  
    dados2 banco2;
    
    system("color 2F"); // mudança de cor do dos para verde
    FILE *garotas;      // aponta para o arquivo garotas
    FILE *saida;
    fpos_t position;   // variavel necessária para uso de algumas funções stdio.h
    //Variaveis
    int op=0, op2=0, op4=0, op5=0, op6=0;
    char op3, letra;
              // Dado o nome de banco a minha estrutura dados
    int n_garotas =0;       // contador de garotas
    int i;                  // Usado como contador
    int qtd_letras;         //Contador de Letras
    char cabelo, olho;      
    char deletar;
    int tamfile, tamfile2;            //Usado para mostrar o tamanho do arquivo
    char del[30];  
    char status;
    char cliente[13];
    char nomegarota[26];
    int achou=0;
    int horas=0;          
    int total=0;
    float valorhora;
    int total_horas;
    float total_grana;
    int achou2;
    int horas2;
    
    
    do //Laço para teste condicional do MENU Principal
    {
    //Menu
    system("color 2F"); // Cor Verde do Menu Principal
    system("cls");
    printf("\n\t\t\t    PEIXE XOTA   v.1.0\n\n\n\n");
    printf("\n[1] Pesquisa e Relatorios");
    printf("\n[2] Cadastro de Garotas");
    printf("\n[3] Limpar Lista de Contatos");
    printf("\n[4] DELETAR Lista  de Contatos");
    printf("\n[5] Alterar Status ");
    printf("\n[6] Entrada de Garotas");
    printf("\n[7] Saida de Garotas");
    printf("\n[0] Sair\n");
    printf("\n\nDigite a opcao desejada -> "); //local para onde reposiciono o cursor
    printf("\n\n\n\n\n\t\t\t\t\t\t\t   By Paulo Jardim");
    fflush(stdin);
    gotoxy(28,17);  //Reposicionar o Cursor no local certo
    scanf("%d", &op);
    }while(op != 1 && op != 2 && op != 3 && op != 4 && op != 5 &&  op != 6 && op!=7 && op !=0);
    //FIM LAÇO MENU
    
              
    switch (op) // Switch do MENU PRINCIPAL
    {
    case 1:
         do{
         system("cls");
         printf("\n\t\t\t   Pesquisa e Relatorios\n\n\n");
         printf("\n[1] Pesquisa Personalizada");
         printf("\n[2] Listar todas as Meninas");
         printf("\n[3] Listar Por Nome");
         printf("\n[4] Garotas na Rua  -> ");
         fflush(stdin);
         scanf("%d", &op4);
         }while (op4 != 1 && op4 !=2 && op4 !=3 && op4 !=4);
         switch (op4)
                {
                case 1 :    garotas = fopen("garotas.txt", "a+"); //a+ cria o arquivo caso ele não exista, e adiciona a partir do final do arquivo.
                system("color 1F");                      //Muda a cor pra azul
                system("cls");                           //Limpa a tela
        
                fseek (garotas , 0 , SEEK_END);          //Le o arquivo do 0 até o final
                tamfile = ftell (garotas);               //armazena em tamfile o tamanho em bytes do arquivo.
                rewind (garotas);                        //volta pro começo do arquivo.
                if (tamfile == 0)                       //se o arquivo estiver vazio, ou seja, com 0 bits..
                {
                   printf ("\n\n\n\t\t\tVc não tem Garotas, favor cadastrar");
                   getche();
                   fclose(garotas);
                   main();
                }
         else                                     //se tiver arquivos, ou seja, diferente de 0 bytes ele continua.
         {
          do{                                      //Teste condicional para cor de cabelo
          printf("Digite a cor do cabelo da mulher desejada\n\n");
          printf("[1] Morena \n");
          printf("[2] Loira \n");
          printf("[3] Ruiva    -> ");
          fflush(stdin);                           //Limpa o buffer para limpar a lixeira, uso para diminuir o risco de erros.
          scanf("%d", &op3);
                      }while (op3 != 1 && op3 != 2 && op3 != 3); //se ele digitar algo diferente de 1 2 ou 3 irá repetir a msg
        
         switch (op3){                          //Swtich para cabelo
              case 1 :  cabelo = 'M';          
                     break;
              case 2 : cabelo = 'L';            //caso ele digite opção 2 'loira' armazenará na variavel loira o caracter 'L'
                     break;      
              case 3 : cabelo = 'R';
                     break;
                           }
         do {                                   //Teste condicional para COr Olho
              printf("\nCordo Olho\n[1] CLaro [2] Escuro -> ");
              scanf("%d", &op5);
              }while (op5 != 1 && op5 != 2 && op5 != 3);
              
              switch (op5) {
              case 1 :  olho = 'C';  
                        break;
              case 2 :  olho = 'E';
                        break;
                           }
             op6=0;                           //Zerando váriavel já que vou utiliza-la
             do{                              //Teste condicional do Status do Cliente
              printf("\n\nDigite o Status do Cliente");
              printf("\n[1] Ativo");
              printf("\n[2] Dasabilitado");
              printf("\n[3] Saida     ->  ");
              fflush(stdin);
              scanf("%d", &op6);
                 }while (op6 != 1 && op6 !=2 && op6 != 3);
              
              switch (op6){
              case 1 :  status = 'A';
                     break;
              case 2 :  status = 'D';    //Armazenar em status o caracter 'D'
                     break;      
              case 3 :  status = 'S';
                     break;
                           }      
      
         printf("\n\n\n");
          while(!feof(garotas))          //Enquanto não for final do arquivo garotas.
         {
                                fscanf(garotas, "%s", &banco.nome);  //le o txt e armazena a primeira string em banco.nome
                                for(i=0;banco.nome[i]!='\0'; i++)     //enquanto não terminar a string
                                    if(banco.nome[i]=='_')           //Verifica se a o caracter '_'
                                            banco.nome[i]=' ';       //e substitui por ' ', que é espaço.
                                
                                 fscanf(garotas, "%s", &banco.status);
                                          
                                fscanf(garotas, "%s", &banco.corcabelo);
                                for(i=0; banco.corcabelo[i]!='\0';i++)
                                    if (banco.corcabelo[i]== '_')
                                            banco.corcabelo[i]=' ';
                                
                                fscanf(garotas, "%s", &banco.cor_olho);
                                for(i=0; banco.cor_olho[i]!='\0';i++)
                                    if (banco.cor_olho[i]== '_')
                                            banco.cor_olho[i]=' ';
                                            
                                fscanf(garotas, "%f", &banco.valor_hora);
                                
                                       if (banco.corcabelo[0] == cabelo) //Lembrem-se que a variavel cabelo, olho e status
                                       if (banco.cor_olho[6] == olho)    //são caracteres e tem apenas uma letra cada
                                       if (banco.status == status)       //então comparo apenas a primeira letra de cada
                                    {                                    //e verifico se são iguais.
                                                                         //no caso do olho comparo a 6 string que pode ser 'C' = claro
                                                                         //ou pode ser 'E' = escuro
                                    printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                                    n_garotas++; //contador de registros
                                    }
      //Esse processo será repitido até o final do arquivo, graças ao laço  while(!feof(garotas))
                                    
         }
    
        
    printf("\n\n\nO numero de Garotas com essa caracteristica e de -> %d    ", n_garotas);
    getch();
    fclose(garotas); //Fechando arquivo. (Sempre que abrir feche) Não feche 2 vezes ou abra 2 vezes nunca.)
  
    main();         //Uma simples Recursividade, onde chamo a função main dentro da main.
    break;
    
     }  // FIM CASE 1 (Procura Perssonalizada).
    
      case 2: garotas = fopen("garotas.txt", "a+"); //Abre o arquivo      
                  
                  system("color 5F"); // Muda cor para roxo
                  n_garotas=0;        //zera contador de garotas
        
                  system("cls");
                  printf("\n\t\t\tGarotas Cadastradas\n\n\n");
                  fseek (garotas , 0 , SEEK_END);
                  tamfile = ftell (garotas);    
                  rewind (garotas);
                  if (tamfile == 0)     //Verifica se o arquivo esta vazio
                     printf ("\n\n\t\tVc não tem Garotas Cadastradas, favor cadastrar");
                  else                   //se Não estiver vazio...
                      while(!feof(garotas)) //Enquanto não for final de arquivo....
                            {
                                
                                fscanf(garotas, "%s", &banco.nome); //leio do texto e armazeno na struct
                                for(i=0;banco.nome[i]!='\0';i++)
                                    if(banco.nome[i]=='_')
                                            banco.nome[i]=' ';
                                      
                                fscanf(garotas, "%s", &banco.status);
                                
                                
                                fscanf(garotas, "%s", &banco.corcabelo);
                                for(i=0; banco.corcabelo[i]!='\0';i++)
                                    if (banco.corcabelo[i]== '_')
                                            banco.corcabelo[i]=' ';
                                
                              
                                
                                fscanf(garotas, "%s", &banco.cor_olho);
                                for(i=0; banco.cor_olho[i]!='\0';i++)
                                    if (banco.cor_olho[i]== '_')
                                            banco.cor_olho[i]=' ';
                                
                                
                                            
                                fscanf(garotas, "%f", &banco.valor_hora);
                                
                              
                                
                                
                                printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                                n_garotas++;    //Cada vez que acha um nome e imprime ele conta
                            }
                            
                            printf("\n\n\n\t\ttotal de: %d Garotas Cadastradas", n_garotas); // Imprime o total de garotas
                            fclose(garotas);        //fecha o arquivo
                            getch();                //espera ser digitado algo
                            main();                 //chama o main
              break;                                //fim CASE 3 (listar todas as garotas)
              
              
              
      case 3 : garotas = fopen("garotas.txt", "a+"); //SUBMENU //Listar Meninas por Nome.
        
              system("color 6F");                       //muda cor
              n_garotas=0;                              //zera variavel...
              system("cls");
              fseek (garotas , 0 , SEEK_END);
              tamfile = ftell (garotas);
              rewind (garotas);
        
              if (tamfile == 0)                         //verifica se está vazio o arquivo.
              printf ("\n\n\n\t\tVc não tem Garotas, favor cadastrar");
              else                                    //caso não esteja vazio...
              {
               do{                                       //Laço para repetir se o usuário digitar enter
               system("cls");
               printf("\n\nDigite a letra inicial do nome e aperte <ENTER>  -> ");
               fflush(stdin);
               scanf("%c", &letra);
               }
              
               while ( letra == '\n'); //caso seja apertado enter repete a instrução
               printf("\n\n\n");
              
               while(!feof(garotas))
               {
            
        
                                fscanf(garotas, "%s", &banco.nome);
                                for(i=0;banco.nome[i]!='\0';i++)
                                    if(banco.nome[i]=='_')
                                            banco.nome[i]=' ';
                                
                                
                                fscanf(garotas, "%s", &banco.status);
                                          
                                
                                fscanf(garotas, "%s", &banco.corcabelo);
                                for(i=0; banco.corcabelo[i]!='\0';i++)
                                    if (banco.corcabelo[i]== '_')
                                            banco.corcabelo[i]=' ';
                                
                                
                                
                                fscanf(garotas, "%s", &banco.cor_olho);
                                for(i=0; banco.cor_olho[i]!='\0';i++)
                                    if (banco.cor_olho[i]== '_')
                                            banco.cor_olho[i]=' ';
                                            
                                fscanf(garotas, "%f", &banco.valor_hora);
                                
                                
                                
                                if(banco.nome[0]=='\0')
                                    printf ("\n\n\tVc não tem Garotas Cadastradas.\n");
                                else
                                    if(toupper(banco.nome[0]) == toupper(letra))
                                    {
                                    printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                                    n_garotas++;
                                    }
                        
         }
  
    printf("\n\n\nO numero de Garotas com a letra '%c' e %d", toupper(letra), n_garotas);
    }
    getch();
    fclose(garotas);
    main();
    
    break;
    
          
   case 4 :  saida = fopen("saida.txt", "a+"); //Pesquisa de Garotas na RUA
                  total_horas=0;
                  total_grana =0;
                  system("cls");
                  printf("\n\n\n\t\t\tPesquisa de Garotas na Rua\n\n\n\n");
                  
                  fseek (saida , 0 , SEEK_END);          //Le o arquivo do 0 até o final
                  tamfile = ftell (saida);               //armazena em tamfile o tamanho em bytes do arquivo.
                  rewind (saida);                        //volta pro começo do arquivo.
                  if (tamfile == 0)                       //se o arquivo estiver vazio, ou seja, com 0 bits..
                     {
                       printf ("\n\n\n\t\t\tVc não tem Garotas na Rua");
                       getche();
                       fclose(saida);
                       main();
                     }
          
           while(!feof(saida))
           {
                                
                    fscanf(saida, "%s", &banco.nome);
                    for(i=0;banco.nome[i]!='\0';i++)     //enquanto não terminar a string
                                    if(banco.nome[i]=='_')           //Verifica se a o caracter '_'
                                            banco.nome[i]=' ';

                    fscanf(saida, "%s", &banco.status);                        
                                            
                    fscanf(saida, "%s", &cliente);
                    for(i=0;cliente[i]!='\0';i++)     //enquanto não terminar a string
                                    if(cliente[i]=='_')           //Verifica se a o caracter '_'
                                            cliente[i]=' ';
                        
                    fscanf(saida, "%d", &horas);
                    
                    
                    fscanf(saida, "%f", &valorhora);
                    
                                
          
                        if (banco.status == 'S')
                        {
                                        
                        
                        printf("%s | %c | %s | %d | %.2f \n", banco.nome, banco.status, cliente, horas, valorhora);
                        n_garotas++;
                        total_grana += valorhora;
                        total_horas += horas;
                        }
                    
           }      
          
             printf("\n\n\n você tem %d garotas na rua", n_garotas);
            
             printf("\n\n\n\t Total de Horas da garotas e : %d", total_horas);
             printf("\n\n\n\t\t\t Total de arrecadacao e de : %.2f", total_grana);
                  
                
              getch();
              fclose(saida);
              main();
              break;
              
    }// FIM SUBMENU RELATÒRIOS      
        
    
    case 2:   garotas = fopen("garotas.txt", "a+"); // Abrindo arquivo garotas novamente
              system("color 3F");                   //Mudando cor para Roxa
              system("cls");                                
              
              do //Laco usado para se o usuário quiser cadastrar mais de uma garota
              {
              qtd_letras = 0;                       //Zerando contador de letras
              system("cls");        
              printf("\n\t\t\tCadastro de Garotas\n");
              printf("\n\nDigite o Nome da Garota ou Aperte <ENTER> pra voltar: -> ");
              fflush(stdin);                       //sempre limpando o buffer antes de pegar algo da memória
              gets(banco.nome);
              if (banco.nome[0] == ' ' || banco.nome[0] =='\0' || banco.nome[0] == '\n') // Verifica s digitou alguma coisa
                 {
                 fclose(garotas);
                 main();
                 }        //caso deixe o nome em  branco,
              else
              qtd_letras = (strlen(banco.nome)); //conta quantas letras tem no nome digitado
              
              for(qtd_letras+1; qtd_letras < 25; qtd_letras++) // laço para adicionar '_',
              banco.nome[qtd_letras] = ('_');                  //a partir do fim do nome até a 24 posição
              banco.nome[25] ='\0';                           //Determinar que o fim do nome é na 25 posição
                  
                   for(i=0; banco.nome[i] !='\0'; i++)       //Enquanto for diferente de fim de string
                       if (banco.nome[i] == ' ')               //preencho com '_' o espaço vazio.
                           banco.nome[i] = '_';
              
              banco.status = 'A';                              //Toda garota cadastrada entrará como Ativa
              
              do {                                             //Teste condição do Cor cabelo
              op3=0;                              
              printf("\n\nDigite a Cor do cabelolo: \n");
              printf("[1] Morena \n");
              printf("[2] Loira \n");
              printf("[3] Ruiva    -> ");
              fflush(stdin);
              scanf("%d", &op3);
                 }while (op3 != 1 && op3 !=2 && op3 != 3);
              
              // transformar o inteiro na String Respectiva.
              switch (op3){
              case 1 :  strcpy(banco.corcabelo, "Morena"); //
                     break;
              case 2 : strcpy(banco.corcabelo,  "Loira_");
                     break;      
              case 3 : strcpy(banco.corcabelo,  "Ruiva_");
                     break;
                           }
                          
              op5 = 0;                        
              do {                              //teste condição de cor de olho
              printf("\n\nCor do Olho\n[1] Claro [2] Escuro -> ");
              fflush(stdin);
              scanf("%d", &op5);
              switch (op5) {
              case 1 :  strcpy(banco.cor_olho, "Olhos_Claros_");  
                        break;
              case 2 :  strcpy(banco.cor_olho, "Olhos_Escuros");
                        break;
                           }
              }while (op5 != 1 && op5 !=2);        
              
              printf("\n\nValor Cobrado por Hora (em reais) -> ");
              fflush(stdin);
              scanf("%f", &banco.valor_hora);
              
              //A LINHA SEGUINTE INSERE DADOS NO TXT
              fprintf(garotas, "\n%s %c %s %s %.2f", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
              
              printf("\nDeseja Cadastrar outra Garota? [1] Sim e [2] não\n");
              fflush(stdin);
              scanf("%d", &op2);
              
              }while (op2 == 1); // fim do laço para continuar cadastrando.
                fclose(garotas); //Fechando arquivo
                main();          //chama a função main
                break;           // fim do case 2 (cadastro de garotas)
    
    
    
    
    case 3 : //Deletar Cadastros
           printf("\n\n\n\n\n\nTem certeza que deseja limpar sua lista de Garotas? (S/N) -> ");
           system("color 4F");
           fflush(stdin);
           scanf("%c", &deletar);
           if(toupper(deletar)=='S')   //Toupper transforma a variavel deletar em maiscula
                        {              //ou seja, caso digite 'S' ou 's' faça...
                            
                            garotas = fopen("garotas.txt", "w");  //abre o arquivo em modo gravação
                            banco.nome[0]='\0';                  //zera o conteudo
                            banco.corcabelo[0] ='\0';
                            banco.cor_olho[0] ='\0';
                            banco.valor_hora ='\0';
                            fclose(garotas);
                            
                            saida = fopen("saida.txt", "w");
                            banco.nome[0] ='\0';
                            cliente[0] ='\0';
                            horas         ='\0';
                            banco.valor_hora ='\0';
                            fclose(saida);
                            
                            puts("\n\nPronto, Sua garotas foram removidos!");
                            getch();
                            
                        }
                        main();     // Fim case 5 ( deletar cadastros )
                        break;
                        
           case 4 :     //Deletar o arquivo.
           system("color 4f");
           printf("\b\n\n\n\n\n\nTem Certeza que deseja deletar o arquivo Garotas.txt? (S/N) -> ");
           fflush(stdin);
           scanf("%c", &deletar);
           if(toupper(deletar)=='S')
                        {
                            
                            if( remove( "garotas.txt" ) != 0 ) //Caso seja possivel deleta o arquivo.
                            perror( "\n\n\nErro ao deletar Arquivo" );//caso não informa o motivo.
                            else
                            puts( "\n\nArquivo deletado com Sucesso" );
                            getch();
                            
                             if( remove( "saida.txt" ) != 0 ) //Caso seja possivel deleta o arquivo.
                            perror( "\n\n\nErro ao deletar Arquivo" );//caso não informa o motivo.
                            else
                            puts( "\n\nArquivo deletado com Sucesso" );
                            getch();
                            
                            
                        }
                        
                        main();     //Fim menu 6 ( Deletar arquivo )
                        break;
                        
    case 5 : garotas = fopen("garotas.txt", "r+");   //r+ abre o arquivo em modo edição
         op6=0;                                      //permitindo o uso de funções para localização
         tamfile=0;  //Zerando variaveis
         system("color 0F");
         n_garotas=0;
         achou=0;
         system("cls");
         printf("\n\t\t\tAlterar Status  das Garotas\n\n\n");
         fseek (garotas , 0 , SEEK_END);
         tamfile = ftell (garotas);
         rewind (garotas);
                if (tamfile == 0)
                     printf ("\n\n\t\tNão existem cadastros, favor cadastrar");
                else
                {
                    printf("\nDigite o nome da Garota que desja alterar o status -> ");
                    fflush(stdin);
                    gets(nomegarota);
                    qtd_letras = (strlen(nomegarota));    //conta quantos caracteres tem a palavra digitada
                    for(qtd_letras+1; qtd_letras < 25; qtd_letras++) //adiciona '_" ao final da palavra
                    nomegarota[qtd_letras] = ('_');                  //até a 24 posção
                    nomegarota[25] ='\0';                           //fecha a string na 25 posição
                                                                     //Nada bom caso deixe aberto
                      for(i=0; nomegarota[i] !='\0'; i++)
                       if (nomegarota[i] == ' ')
                           nomegarota[i] = '_';
                      
                      for(i=0; nomegarota[i] !='\0'; i++)
                        if (nomegarota[i] == '_')
                           nomegarota[i] = ' ';
                      
                      printf("\n\n\n");
                      achou=0;
                  
                      while( !feof(garotas) && achou ==0) //repete até achar o nome digitado ou o final do arquivo
                      {
                                
                            fscanf(garotas, "%s", &banco.nome);
                            for(i=0;banco.nome[i]!='\0';i++)
                               if(banco.nome[i]=='_')
                                  banco.nome[i]=' ';
                            
                            fscanf(garotas, "%s", &banco.status);
                            fseek (garotas, 0, SEEK_CUR);
                            
                            tamfile=ftell (garotas); //ESSE COMANDO LOCALIZA A POSIÇÃO EM BYTS DO TEXTO
                                                     //ASSIM É POSSÍVEL SABER ONDE ESTA LOCALIZADO O BANCO.STATUS
                            fscanf(garotas, "%s", &banco.corcabelo);
                                for(i=0; banco.corcabelo[i]!='\0';i++)
                                    if (banco.corcabelo[i]== '_')
                                            banco.corcabelo[i]=' ';

                            fscanf(garotas, "%s", &banco.cor_olho);
                                for(i=0; banco.cor_olho[i]!='\0';i++)
                                    if (banco.cor_olho[i]== '_')
                                            banco.cor_olho[i]=' ';
                                
                            fscanf(garotas, "%f", &banco.valor_hora);
                            
                          
                            if (strcmpi (banco.nome, nomegarota) == 0 ) //compara o nome digtado com o nome no txt
                            {
                               achou=1;    
                               printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                            }
                    }// fim while  
                                    
                               if (achou ==1)
                               do
                               {          
                                      printf("\n\nDigite o novo Status da Garota");
                                      printf("\n[1] Ativo");
                                      printf("\n[2] Dasabilitado");
                                      printf("\n[3] Saida     ->  ");
                                      fflush(stdin);
                                      scanf("%d", &op6);
                               }while (op6 != 1 && op6 !=2 && op6 != 3);  //teste de condição 1 2 ou 3
                              
                              
                               fseek ( garotas , tamfile-1 , SEEK_SET ); // TAMFILE ARMAZENOU A POSIÇÃO DO STATUS NO TXT
                                  if (op6 == 1)                          //'TAMLIFE-1' É A POSIÇÃO EXATA ONDE FICA O STATUS
                               fputs ( "A" , garotas );                  //ASSIM POSSO SUBSTITUIR O STATUS.
                                  if (op6 == 2)
                               fputs ( "D" , garotas );
                                  if (op6 == 3)
                               fputs ( "S" , garotas );
                                
                            }// FIM IF GAROTAS
                            fclose(garotas);
                            //INICIO PROCEDIMENTO PARA ALTERAR NO SAIDA
                      
                          
              
               for(i=0;banco.nome[i]!='\0';i++)
                                    if(banco.nome[i]==' ')
                                            banco.nome[i]='_';
                                            
                for(i=0;nomegarota[i]!='\0';i++)
                                    if(nomegarota[i]==' ')
                                            nomegarota[i]='_';
                                            
            
            saida = fopen("saida.txt", "r+");
            achou2=5;                          
            while ( !feof(saida) && achou2 ==5) // mudar o status do arquivo saida
              
            {
              
               fscanf(saida, "%s", &banco2.nome2);
              
               fscanf(saida, "%s", &banco2.status2);
               fseek (saida, 0, SEEK_CUR);
               tamfile2=ftell (saida);
              
               fscanf(saida, "%s", &banco2.cliente2);
              
               fscanf(saida, "%d", &banco2.horas2);
                
               fscanf(saida, "%f", &banco2.valorhora2);
              

               if (strcmpi (nomegarota, banco2.nome2) == 0 ) // Caso já tenha no arquivo saida.txt o nome só mudar o status para A
               {    
                    fseek ( saida , tamfile2-1 , SEEK_SET ); // TAMFILE ARMAZENOU A POSIÇÃO DO STATUS NO TXT
                                  if (op6 == 1)                          //'TAMLIFE-1' É A POSIÇÃO EXATA ONDE FICA O STATUS
                               fputs ( "A" , saida );                  //ASSIM POSSO SUBSTITUIR O STATUS.
                                  if (op6 == 2)
                               fputs ( "D" , saida );
                                  if (op6 == 3)
                               fputs ( "S" , saida );
                               achou2=3;
                              
                               fclose(saida);
               }
              
           }// fim  while  
                            
                            
                            
                                
                                if (achou == 1 || achou2 ==3)
                               printf("\n\n\nStatus Alterado com Sucesso");
                            
    
                        
                            
                            if (achou == 0 && achou2 ==5)
                            printf("Nennhuma garota encontrada com este nome");
                    
                            
                          
                            getch();
                            main();
         break;                     //Fim do MENU 7 ( ALteração de Status)
    
    
    case 6 : garotas = fopen("garotas.txt", "r+"); //abrindo arquivo em modo de adição      
                  op2=0;
                  tamfile=0;
                  system("color 3F");
                  n_garotas=0;
        
                  system("cls");
                  printf("\n\t\t\tEntrada De Garotas\n\n\n");
                  fseek (garotas , 0 , SEEK_END);
                  tamfile = ftell (garotas);
                  rewind (garotas);
                  if (tamfile == 0)
                     printf ("\n\n\t\tVc não tem Garotas na rua");
                  else
                      {
                      printf("\nDigite o nome da Garota para dar entrada -> ");
                      fflush(stdin);
                      gets(nomegarota);
                      
                      qtd_letras = (strlen(nomegarota));
                      for(qtd_letras+1; qtd_letras < 25; qtd_letras++)
                      nomegarota[qtd_letras] = ('_');
                      nomegarota[25] ='\0';
                  
                      for(i=0; nomegarota[i] !='\0'; i++)
                       if (nomegarota[i] == ' ')
                           nomegarota[i] = '_';
                          
                      for(i=0; nomegarota[i] !='\0'; i++)
                       if (nomegarota[i] == '_')
                           nomegarota[i] = ' ';
                      
                      printf("\n\n\n");
                      achou=0;
                            while(!feof(garotas) && achou ==0)
                            {
                                
                                fscanf(garotas, "%s", &banco.nome);
                                for(i=0;banco.nome[i]!='\0';i++)
                                    if(banco.nome[i]=='_')
                                            banco.nome[i]=' ';
                                
                                
                                      
                                fscanf(garotas, "%s", &banco.status);
                                fseek (garotas, 0, SEEK_CUR);
                                tamfile=ftell (garotas);
                                
                                fscanf(garotas, "%s", &banco.corcabelo);
                                for(i=0; banco.corcabelo[i]!='\0';i++)
                                    if (banco.corcabelo[i]== '_')
                                            banco.corcabelo[i]=' ';
                                
                              
                                
                                fscanf(garotas, "%s", &banco.cor_olho);
                                for(i=0; banco.cor_olho[i]!='\0';i++)
                                    if (banco.cor_olho[i]== '_')
                                            banco.cor_olho[i]=' ';
                                
                                fscanf(garotas, "%f", &banco.valor_hora);
                                
                              
                                 if (strcmpi(banco.nome, nomegarota) == 0 )
                                    {
                                    printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                                     if (banco.status == 'S')
                                        {
                                        achou=1;          
                                        
                                        
                                        do
                                           {
                                           printf("\n\n\nDeseja Confirmar a Entrada de %s", banco.nome);
                                           printf("\n[1] SIM");
                                           printf("\n[2] não   -> ");
                                           fflush(stdin);
                                           scanf("%d", &op2);
                                           }while (op2 !=1 && op2 !=2);
                                                  if (op2 == 1)
                                                  {
                                                          garotas = fopen ("garotas.txt" , "r+");
                                                          fseek ( garotas , tamfile-1 , SEEK_SET );
                                                          fputs ( "A" , garotas );
                                                          fclose(garotas);
                                                          
                                                          
                  //Fazer o mesmo com o arquivo txt saida
                                                          
                
    
              
               achou=0;
              
               for(i=0;banco.nome[i]!='\0';i++)
                                    if(banco.nome[i]==' ')
                                            banco.nome[i]='_';
            
            saida = fopen("saida.txt", "r+");                            
            while (!feof(saida) && achou ==0) // mudar o status do arquivo saida
              
            {
              
               fscanf(saida, "%s", &banco2.nome2);
              
               fscanf(saida, "%s", &banco2.status2);
               fseek (saida, 0, SEEK_CUR);
               tamfile2=ftell (saida);
              
               fscanf(saida, "%s", &banco2.cliente2);
              
               fscanf(saida, "%d", &banco2.horas2);
                
               fscanf(saida, "%f", &banco2.valorhora2);
              
               if (strcmpi (banco.nome, banco2.nome2) == 0 ) // Caso já tenha no arquivo saida.txt o nome só mudar o status para A
               {    
                    fseek ( saida , tamfile2-1 , SEEK_SET );
                    fputs ( "A" , saida );
                    achou =1;
                    fclose(saida);
               }
           }// fim  while  
                                                          
                                                          
                                                          
                                                          
                                                          
              printf("\n\n Entrada efetuada com sucesso");
           }
            
            }else
                 {
                      printf("\n\n\nEsta garota já esta Aativa ou se encontra Desligada");
                      achou=2;
                                          
                 }
           }
  }
                            
                            if (achou == 0)
                            printf("\n\n\nNennhuma Garota Encontrada com este nome");
                      }    
                            
                            
                            getch();
                            main();
         break;
            
            
    
    case 7 : saida = fopen("saida.txt", "a+"); // apenas para criar o arquivo caso não exista
             fclose(saida);
        
             garotas = fopen("garotas.txt", "r+"); // Saida de Garotaas      
            
              
    op2=0;
    tamfile=0;
    system("color 0F");
    n_garotas=0;
        
    system("cls");
    printf("\n\t\t\tSaida De Garotas\n\n\n");
    fseek (garotas , 0 , SEEK_END);
    tamfile = ftell (garotas);
    rewind (garotas);
    if (tamfile == 0)
       {
       printf ("\n\n\t\tVc não tem Garotas Cadastradas");
       getch();
       main();
       }      
              
              printf("\n\nDigite o Nome do Cliente -> ");
              fflush(stdin);
              gets(cliente);
              if (cliente[0] == ' ' || cliente[0] == '\n' || cliente[0] =='\0')
                 {
                 fclose(garotas);
                 main();
                 }
                        
                     qtd_letras = strlen(cliente);
                     for(qtd_letras+1; qtd_letras < 13; qtd_letras++) // laço para adicionar '_',
                     cliente[qtd_letras] = ('_');                  //a partir do fim do nome até a 24 posição
                     cliente[13] ='\0';                           //Determinar que o fim do nome é na 25 posição
                  
                   for(i=0; cliente[i] !='\0'; i++)       //Enquanto for diferente de fim de string
                       if (cliente[i] == ' ')               //preencho com '_' o espaço vazio.
                           cliente[i] = '_';
                    


                  
                  
                    
                  printf("\nDigite o nome da Garota desejada -> ");
                  fflush(stdin);
                  gets(nomegarota);
                  qtd_letras = (strlen(nomegarota));
                  
                  for(qtd_letras+1; qtd_letras < 25; qtd_letras++)
                  nomegarota[qtd_letras] = ('_');
                  nomegarota[25] ='\0';
                  
                   for(i=0; nomegarota[i] !='\0'; i++)
                       if (nomegarota[i] == ' ')
                           nomegarota[i] = '_';    
                      
                      printf("\n\n\n");
                      achou=0;
                  while(!feof(garotas) && achou ==0)
                      
                  {
                                
                      fscanf(garotas, "%s", &banco.nome);
                      for(i=0;banco.nome[i]!='\0';i++)
                          if(banco.nome[i]==' ')
                               banco.nome[i]='_';
                                
                      fscanf(garotas, "%s", &banco.status);
                      fseek (garotas, 0, SEEK_CUR);
                      tamfile=ftell (garotas);
                                
                      fscanf(garotas, "%s", &banco.corcabelo);
                      for(i=0; banco.corcabelo[i]!='\0';i++)
                           if (banco.corcabelo[i]== '_')
                               banco.corcabelo[i]=' ';
                                
                      fscanf(garotas, "%s", &banco.cor_olho);
                          for(i=0; banco.cor_olho[i]!='\0';i++)
                               if (banco.cor_olho[i]== '_')
                                    banco.cor_olho[i]=' ';
                                
                      fscanf(garotas, "%f", &banco.valor_hora);
                      
                      
                      if (strcmpi(banco.nome, nomegarota) == 0 )
                      {
                         achou= 2;
                         if (banco.status == 'A')
                         {
                            achou=1;
                         }
                      }
            }// fim while do arquivo garotas
            
            if (achou == 0)
            {                
                             printf("Nennhuma Garota Encontrada com este nome");
                             getch();
                             fclose(garotas);
                             main();
            }
            
            if (achou == 2)
                            {
                                    
                            for(i=0; cliente[i] !='\0'; i++)      
                                     if (cliente[i] == '_')              
                                          cliente[i] = ' ';
                                for(i=0; banco.nome[i] !='\0'; i++)      
                                         if (banco.nome[i] == '_')              
                                             banco.nome[i] = ' ';
                             printf("%s não se encontra disponivel  %s", banco.nome, cliente);
                             fclose(garotas);
                             getch();
                             main();
                            }
                            
    if (achou ==1)      
    {        
                    
            for(i=0; banco.nome[i] !='\0'; i++)
            if (banco.nome[i] == '_')
            banco.nome[i] = ' ';
            
            printf("%s | %c | %s | %s | %.2f \n", banco.nome, banco.status, banco.corcabelo, banco.cor_olho, banco.valor_hora);
                                  
            printf("\n\nPor quantas Horas deseja alugar %s", banco.nome);
            fflush(stdin);
            scanf("%d", &horas);

            do
            {
              printf("\n\n\nDeseja Confirmar o aluguel dessa garota  por %d horas no valor de %.2f",  horas, banco.valor_hora*horas);
              printf("\n[1] SIM");
              printf("\n[2] não   -> ");
              fflush(stdin);
              scanf("%d", &op2);
            }while (op2 != 1 && op2 != 2);
                  
                   if (op2 == 1)
                      {
                       fseek ( garotas , tamfile-1 , SEEK_SET );
                       fputs ( "S" , garotas );
                       fclose(garotas);
                                
              for(i=0;banco.nome[i]!='\0';i++)     //enquanto não terminar a string
                                    if(banco.nome[i]==' ')           //Verifica se a 0 caracter '_'
                                            banco.nome[i]='_';
              
               //Verificando se tem nome repetido no arquivo saida
               saida = fopen("saida.txt", "r+");
               valorhora= banco.valor_hora* horas;
            
               achou2=0;
            if (achou== 1)
            while (!feof(saida) && achou2 ==0)
              
            {
              
               fscanf(saida, "%s", &banco2.nome2);
              
               fscanf(saida, "%s", &banco2.status2);
               fseek (saida, 0, SEEK_CUR);
               tamfile2=ftell (saida);
              
               fscanf(saida, "%s", &banco2.cliente2);
              
               fscanf(saida, "%d", &banco2.horas2);
                
               fscanf(saida, "%f", &banco2.valorhora2);
              
              
               if (strcmpi (banco.nome, banco2.nome2) == 0 ) // Caso já tenha no arquivo saida.txt o nome só mudar o status para A
               {
               fseek ( saida , tamfile2-1 , SEEK_SET );
               fputs ( "S" , saida );
               achou2 =1;
               }
           }// fim  while  
          
                    if (achou2 ==0)
                   {
                      banco.status = 'S';
                      fprintf(saida, "\n%s %c %s %.2d %.2f", banco.nome, banco.status, cliente, horas, valorhora);
                    }
                    for(i=0; cliente[i] !='\0'; i++)       //Enquanto for diferente de fim de string
                       if (cliente[i] == '_')               //preencho com '_' o espaço vazio.
                           cliente[i] = ' ';
                    
               printf("\n\n Muito Obrigado e Volte sempre %s", cliente);
                      
                      }// Fim Opção De confirmação de saida de garota              

     }// fim if achou =1
                          
                            getch();
                            fclose(garotas);
                            main();
         break;
        
        
        
         case 0 :  exit(0); //Fecha o Programa
        
        
      
        
    
    }// FIM DO MENU
    
    printf("\n\n");
    fclose(garotas);
    getchar();
    
    return 0;
}                                   //FIM

Editado por Paulo Jardim
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...