Ir ao conteúdo
  • Cadastre-se

C++ Cadastro de Solicitante e Solicitações c/consulta e remoção.


Posts recomendados

Boa noite colegas,

 

Estou iniciando em C++, e me foi dada uma tarefa simples: Criar um programa para inicialmente Cadastrar Solicitantes com as funções Adicionar/Consultar/Remover/Listar, Cadastrar após o Solicitante, as Solicitações que o Solicitante cadastrar até no máximo 20 solicitações simultâneas. Usar o recurso de FIFO (fila), pois, os primeiros elementos a entrarem, são os primeiros a saírem da estrutura.Além destas implementações, será necessário desenvolver os métodos de criar fila, inserir item, remover item, retornar fila vazia, tamanho da fila e a sequência armazenada. Se alguém puder me orientar.

 

Fiz o seguinte:

 

#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include <iostream>
#define MAX 2

 

/* Estrutra para armazenar o cadastro do solicitante e solicitações*/

 

struct cadastro


{
     int cod; /* Código do solicitante*/ 
     char solicitante[50]; /* Nome do solicitante*/ 
     char cpf[11]; /* CPF do solicitante*/      
     char endereco[50]; /* Endereço do Solicitante*/
     char email[50]; /* Email do Solicitante*/
     char sexo[2]; /* Sexo do Solicitante (M)- Masculino e (F)- Feminino*/
     char faixaetaria[2]; /* Faixa etária do solicitante*/
     
};

struct cadastro solicitante[MAX];

    int topo;
    
    void inserir();
    void excluir();
    void listar();
    void pesquisar();
    void alterar();

    int const MAXTAM=1000;

    int Frente, Tras;
    int Fila[MAXTAM];

    void Fila_Construtor(){
    Frente=0;
    Tras=-1;
}

bool Fila_Vazia(){
    if(Frente>Tras){
        return true;
    }else{
        return false;
    }

    //return Frente>Tras;
}

bool Fila_Cheia(){
    if(Tras==MAXTAM-1){
        return true;
    }else{
        return false;
    }
}

bool Fila_Enfileirar(int valor){
    if(Fila_Cheia()){
        return false;
    }else{
        Tras++;
        Fila[Tras]=valor;
        return true;
    }
}

bool Fila_Desenfileirar(int &valor){
    if(Fila_Vazia()){
        return false;
    }else{
        valor=Fila[Frente];
        Frente++;
        return true;
    }
}

bool Fila_Get(int &valor){
    if(Fila_Vazia()){
        return false;
    }else{
        valor=Fila[Frente];
        return true;
    }
}

int Fila_Tamanho(){
    return (Tras - Frente)+1;
}


int main(){
    int opcao;
      char seguir = 's';
      
      topo = 0;
      
      while(seguir == 's')
      {
      printf("    *** Cadastro de Solicitante *** \n\n");
      printf("        1) NOVO \n");
      printf("        2) REMOVER \n");
      printf("        3) LISTAR \n");
      printf("        4) PESQUISAR \n");
      printf("        5) ALTERAR \n\n");
      printf(" Seleciona a opção desejada: ");
      scanf("%d%*c",&opcao);
      printf("\n");
      
            switch(opcao){
                case 1:
             {
               printf(" INSERINDO NOVO REGISTRO \n\n");
               if(topo < MAX)
               {
                 inserir();
                 printf(" DADO INSERIDO COM SUCESSO!\n\n");
               }
               else
               {
                 printf(" Desculpe, Sistema de Cadastro está no limite!\n\n");
               }
               break;
             }
               
        case 2:
             {
               if(topo == 0)
               {
                 printf("não há dados para serem excluidos!\n\n");
               }
               else
               {
                 excluir();
                 printf(" DADO EXCLUIDO COM SUCESSO!\n\n");
               }
               break;
             }
        case 3:
             {
               if(topo == 0)
               {
                 printf("não há dados no sistema!\n\n");
               }
               else
               {
                 printf(" Listando os solicitantes cadastrados\n\n");
                 listar();
               }
               break;
             }
        case 4:
             {
               if(topo == 0)
               {
                 printf("não há dados no sistema!\n\n");
               }
               else
               {   
                 printf(" PESQUIZANDO BASE DE DADOS\n\n");
                 pesquisar();
               }
               break;
             }
        case 5:
             {
               if(topo == 0)
               {
                 printf("não há dados no sistema!\n\n");
               }
               else
               {
                 printf(" ALTERANDO DADOS!\n\n");
                 alterar();
                 printf(" DADOS ALTERADOS COM SUCESSO!\n\n");
               }
               break;
             }
        default:
               printf(" ( OPCAO INVÁLIDA! )\n\n");
                            
         }
      printf(" CONTINUAR?(S/N) ");
      scanf("%c",&seguir);
      
      printf("\n");
      }

getch();

return 0;
            }
            
        /* Funcao para inserir registros*/
        
void inserir()
{    
     solicitante[topo].cod = topo+1;
     printf(" CODIGO : %d\n",solicitante[topo].cod);
     
     printf(" NOME: ");
     fgets(solicitante[topo].solicitante,50,stdin);
     solicitante[topo].solicitante[strlen(solicitante[topo].solicitante)-1];
    
     printf(" CPF: ");
     fgets(solicitante[topo].cpf,11,stdin);
     solicitante[topo].solicitante[strlen(solicitante[topo].cpf)-1];
          
     printf(" ENDEREÇO: ");
     fgets(solicitante[topo].solicitante,50,stdin);
     solicitante[topo].solicitante[strlen(solicitante[topo].endereco)-1];
    
     printf(" EMAIL: ");
     fgets(solicitante[topo].solicitante,50,stdin);
     solicitante[topo].solicitante[srtlen(solicitante[topo].email)-1];
          
     printf(" SEXO: ");
     fgets(solicitante[topo].solicitante,2,stdin);
     solicitante[topo].solicitante[strlen(solicitante[topo].sexo)-1];
     
     printf(" FAIXA ETÁRIA: ");
     fgets(solicitante[topo].solicitante,2,stdin);
     solicitante[topo].solicitante[strlen(solicitante[topo].faixaetaria)-1];
                 
     printf("\n");
}

     topo = topo + 1;
     
     getch();
     return 0;
}

    int Valor();
    
    Fila_Construtor;
    Fila_Enfileirar(5);
    Fila_Enfileirar(2);
    Fila_Enfileirar(7);
    printf("\n\nTamanho:%d\n\n",Fila_Tamanho());


    while( Fila_Desenfileirar(Valor) ){
        printf("\nValor:%d\n",Valor);
    }
    printf("\n\nTamanho:%d\n\n",Fila_Tamanho());

    *
    if( Fila_Desenfileirar(Valor) ){
        printf("\n\nValor:%d\n\n",Valor);
    }else{
        printf("\n\nFila Vazia\n\n");
    }*/

    system("pause");
    return 0;
}

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Renovei algumas rotinas e aparentemente está funcionando. Porém não consigo direcionar um cadastro de uma pessoa para iniciar outro cadastro de um solicitação. Ainda precisaria cadastrar essa solicitação com numero do protocolo e mostrar opção consultar pelo método da Fila e remover também. Se alguém puder me ajudar.

 

#include <iostream>
#include<string.h>
#include <stdio.h>
#define SIZE 200

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

char nome[SIZE][10];
char email[SIZE][10];
char endereco[SIZE][10];
char telefone[SIZE][10];
char solicitacao[200][10];
int cpf[SIZE];
int op;
int i;

void cadastro();
void pesquisa();
void lista();
int main(void){

    do{
        system("cls");
        printf("\n* * * Menu Principal * * * \n(1) - Cadastrar\n(2) - Listar todos\n(3) - Pesquisar\n(4) - Sair do Sistema\nDigite uma opcao ==> ");
        scanf("%d", &op);
        switch(op) {
            case 1:
                cadastro();
                break;
            case 2:
                lista();
                break;
            case 3:
                pesquisa();
                break;
            case 4:
                system("exit\n");
                break;
            default:
                printf("Opcao invalida\n");
                getchar();
                getchar();
                break;

        }

    }while(op!=4);

}
void lista(){
    int i;
    for(i=0;i<SIZE;i++){
        if(cpf>0){
            printf("\nNome: %s\nEmail: %s\nCPF: %d", nome, email, cpf);    
        }else{
            break;
        }
    }
    getchar();
    getchar();
}
void cadastro(){
    static int linha;
    do{
         
         printf("\nNome do Solicitante:");
         scanf("%s", &nome[linha]);
         printf("\nDigite email: ");
         scanf("%s", &email[linha]);
         printf("\nDigite o endereço: ");
         scanf("%s", &endereco[linha]);
         printf("\nDigite o telefone: ");
         scanf("%s", &telefone[linha]);
         printf("\nDigite seu CPF: ");
         scanf("%d", &cpf[linha]);
         printf("\nRegistre sua solicitacao: ");
         scanf("%s", &solicitacao[linha]);
         printf("\n\n* * * Pressione 0 para voltar ao menu ou 1 para novo cadastro...* * *");
          scanf("%d", &op);
         linha++;
    }while(op==1);
}    // fim da função Cadastro
    void pesquisa() {
        int cpfPesquisa;
        char emailPesquisa[50];
        int i;    
    do{
            
        printf("\nDigite 1 para pesquisar por CPF ou 2 para pesquisar por email:");
        scanf("%d", &op);
        switch(op) {
            
            case 1:
                printf("\nDigite o CPF:");
                scanf("%d", &cpfPesquisa);
                for(i=0;i<SIZE;i++) {
                    if(cpf==cpfPesquisa) {
                        printf("\nNome: %s\nEmail: %s\nCPF: %d", nome, email, cpf);
                    }
                }
                break;
            
            case 2:
                printf("\nDigite o email:");
                scanf("%s", emailPesquisa);
                for(i=0;i<SIZE;i++) {
                    if(strcmp(email, emailPesquisa)==0) {
                        printf("\nNome: %s\nEmail: %s\nCPF: %d", nome, email, cpf);
                    }
                }
                break;
                
            default:
                printf("\nOpção Inválida");
                break;
        }    
        printf("\nDigite 1 para continuar a pesquisa ou 0 para voltar ao Menu Principal\nDigite uma opcao ==> ");    
        scanf("%d", &op);
        
    }while(op==1);
}
 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Edson Andrioli      vamos testa-lo aqui , e de outras vezes que você for postar um código é melhor usar o botão  <>  que está desenhado lá na barra de ferramentas de janela de postar :

barap.jpg.13a8b0fc1cbe8a4833c75abea4364d64.jpg

pois sem ele seu código ficou faltando alguns caracteres como os   [ i ]  que sumiram do seu código e sem eles o programa não está funcionando .

Link para o comentário
Compartilhar em outros sites

20 minutos atrás, Edson Andrioli disse:

Porém não consigo direcionar um cadastro de uma pessoa para iniciar outro cadastro de um solicitação. Ainda precisaria cadastrar essa solicitação

 

o que seria isso? não entendi. "direcionar um cadastro de uma pessoa para iniciar outro? Pode explicar de outro modo?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Edson Andrioli     para remover do modo simples pode ser assim  :

#define  _WIN32_WINNT 0x501
#include <windows.h>
#define  H GetStdHandle(STD_OUTPUT_HANDLE)
#define cls system("cls");
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <conio.h>
#define  SIZE 200
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
char nome       [SIZE][30];
char email      [SIZE][30];
char endereco   [SIZE][30];
char telefone   [SIZE][20];
char solicitacao[200 ][30];
char cpf        [SIZE][30];
int i,j,op,flag,contador;//contador de cadastros
void tela(        );
void cadastro(    );
void remover(     );
void pesquisa(    );
void escreve(int w);
void listaR_todos();
void textcolor_2(int l, int f){
    SetConsoleTextAttribute(H,l+(f<<4));
}
void gotoYX(int x, int y){
    SetConsoleCursorPosition(H,(COORD){x,y});
}
int main(                                             ){
    do{
        textcolor_2(15,0                              );
        cls
        printf("\n\n"                                 );
        printf("\t\t\t* * * Menu Principal * * * \n\n");
        printf("\t\t\t(1) - Cadastrar\n"              );
        printf("\t\t\t(2) - Listar todos\n"           );
        printf("\t\t\t(3) - Pesquisar\n"              );
        printf("\t\t\t(4) - Remover Cadastro\n"       );
        printf("\t\t\t(5) - Sair do Sistema\n"        );
        printf("\t\t\t      Digite uma opcao ==> "    );
        tela(                                         );
        textcolor_2(15,0                              );
        op = getch() - 48                              ;
        cls
        switch(op) {
        case 1:
            cadastro();
            break;
        case 2:
            listaR_todos();
            break;
        case 3:
            pesquisa();
            break;
        case 4:
            remover();
            break;
        case 5:
            printf("\n\n   Saindo Do Programa . . . !   Tecle ");
            getch();
            break;
        default:
            printf(" Opcao Invalida\n");
            getch();
        }
    }while( op != 5 );
    printf("\n\n\n");
    textcolor_2(10,12);
    return 0;
}
void listaR_todos(                                            ){
    textcolor_2(15,12                                         );
    if(contador == 0                                           )
        printf("\n  Neste Momento nao Ha nenhum cadastro ! \n");
    else{
        for(i=0; i<contador; i++                              ){
            escreve(i);
        }
        printf("\n  Listagem Pronta !\n"                      );
    }
    textcolor_2(14,0                                          );
    printf("    Tecle"                                        );
    getch(                                                    );
 }
void cadastro(){
    do{
        printf("\nNome do Solicitante -------: ");
        scanf ("%s",nome       [contador]       );// apenas um nome sem sobrenome ?
        printf("Digite email --------------: "  );
        scanf ("%s",email      [contador]       );
        printf("Digite o endereço ---------: "  );
        scanf ("%s",endereco   [contador]       );
        printf("Digite o telefone ---------: "  );
        scanf ("%s",telefone   [contador]       );
        printf("Digite seu CPF ------------: "  );
        scanf ("%s",cpf        [contador]       );
        printf("Registre sua solicitacao --: "  );
        scanf ("%s",solicitacao[contador]       );
        printf("\n Novo cadastro  S/N "         );
        contador++                               ;
    }while( toupper((char)getch()) != 'N'       );
}    // fim da função Cadastro
void pesquisa() {
    char cpfPesquisa [30],
        emailPesquisa[50];
    do{
        textcolor_2(15,0                     );
        cls
        printf("\n"                          );
        printf("1 - pesquisar por CPF\n"     );
        printf("2 - para pesquisar por email");
        op = getch()-48;
        printf("\n"   );
        flag = 0       ;
        switch( op    ){
        case 1:
            printf(" Digite o CPF : ");
            scanf("%s",cpfPesquisa  );
            for(i=0; i<contador; i++){
                if(strcmp(cpf[i],cpfPesquisa)==0){
                    flag=1;
                    escreve(i);
                }
            }
            if( flag )
                printf(" Pesqisada Pronta !\n");
            else
                printf(" Cpf Nao Cadastrado !\n");
            printf("    Tecle !");
            getch();
            break;
        case 2:
            printf(" Digite o email:");
            scanf("%s",emailPesquisa );
            for(i=0; i<contador; i++){
                if(strcmp(email[i],emailPesquisa)==0){
                    flag = 1  ;
                    escreve(i);
                }
            }
            textcolor_2(15,12);
            if( flag )
                printf(" Pesqisada Pronta !\n\n");
            else
                printf(" Email Nao Cadastrado !\n\n");
            printf("    Tecle !");
            getch();
            break;
        default:
            textcolor_2(15,9);
            printf("\n  Opção Inválida  ");
        }
        textcolor_2(14,0);
        printf("\n\n  Pesquisar Outro  S/N ");
    }while( toupper((char)getch()) != 'N' );
}
void remover(){
    char nom[30];
    printf(" O Nome Para Remover ");
    scanf("%s",nom);
    flag = 0;
    for(i=0; i<contador; i++)
        if(strcmp(nom,nome[i]) == 0 ){
            flag = 1;
            for(i; i<contador; i++){
                strcpy(nome       [i], nome       [i+1]);
                strcpy(email      [i], email      [i+1]);
                strcpy(endereco   [i], endereco   [i+1]);
                strcpy(telefone   [i], telefone   [i+1]);
                strcpy(cpf        [i], cpf        [i+1]);
                strcpy(solicitacao[i], solicitacao[i+1]);
            }
            contador--;  //  decrementa a qtd de cadastros pois deletou hum .
        }
    textcolor_2(15,12);
    if( flag )
        printf("\n  Remocao ReaLizada Com Sucesso  !\n\n");
    else
        printf("\n  Esse Nome -> %s , Nao esta Cadastrado . . . !\n\n",nom);
    printf("    Tecle");
    getch();
}
void escreve(int w                               ){
    textcolor_2(15,12                            );
    printf(" Cadastro  %d  \n",w+1               );
    textcolor_2(14,00                            );
    printf("Nome --------: %s\n" , nome       [w]);
    printf("Email -------: %s\n" , email      [w]);
    printf("Endereco ----: %s\n" , endereco   [w]);
    printf("TeleFone ----: %s\n" , telefone   [w]);
    printf("CPF ---------: %d\n" , cpf        [w]);
    printf("SoLicitacaO -: %s\n" , solicitacao[w]);
    printf("                 \n"                 );
}
void tela(                                  ){
    for(j=15; j<60; j++                     ){
        gotoYX(j,00);printf("%c",205        );
        gotoYX(j,03);printf("%c",205        );
        gotoYX(j,12);printf("%c",205        );
        if( j<27                            ){
            gotoYX(15,j-15);printf("%c",186 );
            gotoYX(60,j-15);printf("%c",186 );
        }
        if( j>20 && j<26                    ){
            textcolor_2(11,0                );
            gotoYX(25,j-17);printf("%d",j-20);
        }
    }
    gotoYX(15,00);printf("%c",201           );
    gotoYX(60,00);printf("%c",187           );
    gotoYX(60,12);printf("%c",188           );
    gotoYX(15,12);printf("%c",200           );
    gotoYX(60,03);printf("%c",185           );
    gotoYX(15,03);printf("%c",204           );
    gotoYX(52,09                            );
}

esse FIFO ,  não tenho ideia .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 14/05/2020 às 21:31, Edson Andrioli disse:

Criar um programa para inicialmente Cadastrar Solicitantes com as funções Adicionar/Consultar/Remover/Listar, Cadastrar após o Solicitante, as Solicitações que o Solicitante cadastrar até no máximo 20 solicitações simultâneas. Usar o recurso de FIFO (fila), pois, os primeiros elementos a entrarem, são os primeiros a saírem da estrutura

 

Ainda não entendi aquela parte, mas vendo seu programa tem algo que talvez você não tenha entendido mesmo nisso...

 

Você vai criar uma classe cadastro. Ou uma struct como fez... mas..

struct cadastro


{
     int cod; /* Código do solicitante*/ 
     char solicitante[50]; /* Nome do solicitante*/ 
     char cpf[11]; /* CPF do solicitante*/      
     char endereco[50]; /* Endereço do Solicitante*/
     char email[50]; /* Email do Solicitante*/
     char sexo[2]; /* Sexo do Solicitante (M)- Masculino e (F)- Feminino*/
     char faixaetaria[2]; /* Faixa etária do solicitante*/
     
};

struct cadastro solicitante[MAX];

    int topo;
    
    void inserir();
    void excluir();
    void listar();
    void pesquisar();
    void alterar();

    int const MAXTAM=1000;

    int Frente, Tras;
    int Fila[MAXTAM];

    void Fila_Construtor(){
    Frente=0;
    Tras=-1;
}

 

Uma grande vantagem --- e a razão na verdade dessa linguagem ter sido criada --- é a facilidade de abstração. Isso quer dizer a simplicidade com que você cria um modelo no programa para representar a sua realidade.

 

Você não fez nada. É como se estivesse programando em C ou FORTRAN. Essas funções que declarou depois são todas vinculadas ao cadastro. Está errado como escreveu.

 

Em 14/05/2020 às 21:31, Edson Andrioli disse:

Além destas implementações, será necessário desenvolver os métodos de criar fila, inserir item, remover item, retornar fila vazia, tamanho da fila e a sequência armazenada

 

Pois é. C++ tem implementações de fila com todas essas funções já na biblioteca padrão. Imagino que não possa usar porque faz parte de seu enunciado escrever isso, mas é claro que pode escrever o programa usando isso e depois trocar pelas suas versões. Isso seria um caso simples de uma das propriedades mais importantes desse tipo de linguagem: o tal do encapsulamento.

 

Isso quer dizer que de qualquer forma fila é uma outra classe de seu programa. E você deve usar isso. Toda uma geração de linguagens existe em torno desses conceitos, esse lance de programação orientada a objetos. Seu curso nunca teve uma introdução ao menos a respeito?

 

Tem um enunciado mais preciso? Não está praticamente nada definido sobre as solicitações.

 

De todo modo, considere esse exemplo e veja se entende a diferença entre o programa que fez, que é basicmente um programa em C,  e esse:

 

Um exemplo de cadastro:

#include <iomanip>
#include <iostream>

using namespace std;

class Cadastro
{
public:
    string      nome;
    
    class Item
    {
    public:
        int     cod;
        char    solicitante[50];
        char    cpf[15];
        char    endereco[50];
        char    email[50];
        char    sexo[2]; // M F
        char    faixaetaria[2];
    };

    int     tamanho;
    int     capacidade;
    Item**  item;

    Cadastro();
    Cadastro(int);
    ~Cadastro();

    int     Adicionar(const Item*);
    int     Capacidade();
    Item*   Consultar(const int);
    Item*   Consultar(const char* CPF);
    void    define_nome(string);
    int     Remover(const int cod);
    int     Remover(const char* CPF);
    int     Listar();
    int     Tamanho();
};

Um exemplo de fila:

#pragma once

#include <iomanip>
#include <iostream>

class Fila
{
public:
    class Solicitacao
    {
    public:
        int     cod;
        int     cod_solicitante;
        char    descricao[50];
    };

    int             capacidade;
    int             tamanho;
    Solicitacao**   sol;

public:
    Fila();
    Fila(int);
    ~Fila();

    int     Inserir(Solicitacao*);
    int     Listar();
    int     Remover(Solicitacao*);
    int     Tamanho();
    bool    Vazia();
};

Esse é um exemplo bem trivial, nem é muito certo. Mas imagino que dê pra entender as diferenças mais básicas:

  • Um Cadastro tem itens 
  • As funções do cadastro se aplicam ao cadastro e ficam dentro dele
  • Você pode pesquisar por nome ou CPF com rotinas iguais
  • Uma fila tem solicitações
  • As solicitações remetem a um cadastro
  • As funções da fila fazem parte de cada fila

 

Como escrever com isso

int main(int argc, char** argv)
{
	int res = 0;
	Fila fila(50);			// solicitacoes
	Cadastro cadastro(10);  // solicitantes
	Cadastro outros[2];     // exemplo
	cadastro.define_nome("oficial");
	outros[0].define_nome("um outro");
	outros[1].define_nome("mais um");

	do
	{	Alguem* um = cria_alguem(1);
		res = cadastro.Adicionar(um);
		delete um;
		cout << "Cadastro reporta " <<
			cadastro.Tamanho() << " de " <<
			cadastro.Capacidade() << " possiveis solicitantes" <<
			endl;
	} while (res == 0);

	cadastro.Listar();
	outros[0].Listar();
	outros[1].Listar();
	return 0;
}

Escrevi isso copiando do seu programa.

 

Esse programa funciona e usa uma função cria_alguem() que devolve um item de cadastro novinho e com código crescente. E cria uma fila com tamanho e 3 cadastros e preenche um deles até lotar. Depois lista os 3 e encerra. E sabe que lotou porque Adicionar() retorna erro e aí sai do loop. E já é boa parte do seu programa num instante, porque em C++ é mais fácil criar modelos.

 

Citando o criador da linguagem, um dos objetivos ao criar C++ era escrever uma linguagem com "abstrações de custo zero".

 

Rodando esse programa:

Criando Fila com capacidade para   50 solicitacoes
Cadastro reporta 1 de 10 possiveis solicitantes
Cadastro reporta 2 de 10 possiveis solicitantes
Cadastro reporta 3 de 10 possiveis solicitantes
Cadastro reporta 4 de 10 possiveis solicitantes
Cadastro reporta 5 de 10 possiveis solicitantes
Cadastro reporta 6 de 10 possiveis solicitantes
Cadastro reporta 7 de 10 possiveis solicitantes
Cadastro reporta 8 de 10 possiveis solicitantes
Cadastro reporta 9 de 10 possiveis solicitantes
Cadastro reporta 10 de 10 possiveis solicitantes
Cadastro reporta 10 de 10 possiveis solicitantes

cadastro 'oficial' com 10 de 10 possiveis solicitantes

#001/010:
  Nome: Nome1001 SobreNome1001
   CPF: 123.001.001-02
   End: Rua R1001 01 Ap 2

#002/010:
  Nome: Nome1002 SobreNome1002
   CPF: 123.002.002-03
   End: Rua R1002 02 Ap 3

#003/010:
  Nome: Nome1003 SobreNome1003
   CPF: 123.003.003-04
   End: Rua R1003 03 Ap 4

#004/010:
  Nome: Nome1004 SobreNome1004
   CPF: 123.004.004-05
   End: Rua R1004 04 Ap 5

#005/010:
  Nome: Nome1005 SobreNome1005
   CPF: 123.005.005-06
   End: Rua R1005 05 Ap 6

#006/010:
  Nome: Nome1006 SobreNome1006
   CPF: 123.006.006-07
   End: Rua R1006 06 Ap 7

#007/010:
  Nome: Nome1007 SobreNome1007
   CPF: 123.007.007-08
   End: Rua R1007 07 Ap 8

#008/010:
  Nome: Nome1008 SobreNome1008
   CPF: 123.008.008-09
   End: Rua R1008 08 Ap 9

#009/010:
  Nome: Nome1009 SobreNome1009
   CPF: 123.009.009-10
   End: Rua R1009 09 Ap 10

#010/010:
  Nome: Nome1010 SobreNome1010
   CPF: 123.010.010-01
   End: Rua R1010 10 Ap 1


cadastro 'um outro' vazio


cadastro 'mais um' vazio

Apagando Cadastro com  0/  10 solicitantes
Apagando Cadastro com  0/  10 solicitantes
Apagando Cadastro com 10/  10 solicitantes
Apagando solicitante #1001
Apagando solicitante #1002
Apagando solicitante #1003
Apagando solicitante #1004
Apagando solicitante #1005
Apagando solicitante #1006
Apagando solicitante #1007
Apagando solicitante #1008
Apagando solicitante #1009
Apagando solicitante #1010
Apagando Fila com  0/  50 solicitacoes

 

E você vê que tudo acontece como previsto. E é muito mais simples que em C. OK, talvez em COBOL fosse bem mais simples escrever os relatórios ;) 

Mas criou a fila os cadastros, preencheu um,  e listou os 3 e apagou tudo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!