segunda-feira, 1 de junho de 2015

(Structs) Estrutura ou Registros.




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DIM 10

int p=0;
struct Aluno
{
    int ra;
    char nome[50];
    float renda;
}regAluno[DIM];

void cadastrar()
{
    if(p==DIM)
    {
        printf("Nao Ha Espaco para Novo Cadastro");
        system("pause");
        return;
    }
    printf("Digiete o RA do Aluno: ");
    scanf("%d",&regAluno[p].ra);
    fflush(stdin);
    printf("Digite o Nome do Aluno: ");
    gets(regAluno[p].nome);
    printf("Digite a Renda em R$: ");
    scanf("%f",&regAluno[p].renda);
    printf("Cadastro Efetuado Com Sucesso\t");
    p++;
    system("pause");
}
void listar()
{
    int i;
    for(i=0;i<p;i++)
    {
        printf("Dados do Aluno\n");
        printf("RA: %d\n",regAluno[i].ra);
        printf("Nome: %d\n",regAluno[i].nome);
        printf("Renda: %d\n",regAluno[i].renda);
    }
    system("pause");
}
int mostrarQuantidade()
{
    return p;
}
void buscar()
{
    int ra_procurado;
    printf(" Digite o RA Procurado: ");
    scanf("%d",&ra_procurado);
    int i;
    for(i=0;i<p;i++)
    {
        if(ra_procurado == regAluno[i].ra)
        {
            printf("Aluno Encontrado, dados Abaixo: \n\n");
            printf("RA: %d\n",regAluno[i].ra);
            printf("Nome: %s\n",regAluno[i].nome);
            printf("Rend: %6.2f\n",regAluno[i].renda);
            system("pause");
            return;
        }
    }
    printf("Registro nao Encontrado\n");
    system("pause");
}

void alterar()
{
    int ra_procurado;
    printf("Digite o RA do Aluno a ser Alterado: ");
    scanf("%d",&ra_procurado);
    int i;
    for(i=0;i<p;i++)
    {
        if(ra_procurado == regAluno[i].ra)
        {
            printf("Aluno Encontrado, dados Abaixo \n\n");
            printf("RA: %d\n",regAluno[i].ra);
            printf("Nome: %s\n", regAluno[i].nome);
            printf("Renda R$%6.2f\n",regAluno[i].renda);
            printf("Digite os Novos Dados: \n");
            printf("RA: \n");
            scanf("%d",&regAluno[i].ra);
            fflush(stdin);
            printf(" Nome: \n");
            gets(regAluno[i].nome);
            printf("Renda: R$\n");
            scanf("%6.2f",&regAluno[i].renda);
            printf("Dados Alterado Com Sucesso \n");
            system("pause");
            return;
        }
    }
    printf("Aluno Nao Encontrado\n");
    system("pause");
}

void excluir()
{
    int ra_procurado;
    printf("Digite o RA do Aluno a Excluir: ");
    scanf("%d",&ra_procurado);
    int i;
    for(i=0;i<p;i++)
    {
        if(ra_procurado==regAluno[i].ra)
        {
            printf("Aluno Encontrado, Dados Abaixo:\n\n");
            printf("RA: %d\n",regAluno[i].ra);
            printf(" Nome: %s\n",regAluno[i].nome);
            printf(" Renda: R$%6.2f\n\n",regAluno[i].renda);
            int r;
            printf("Digite 1 para confirmar a Exclusão, ou 2 para Sair\n");
            scanf("%d",&r);
            if(r==1)
            {
                int troca = p - 1;
                regAluno[i].ra = regAluno[troca].ra;
                regAluno[i].renda = regAluno[troca].renda;
                strcpy(regAluno[i].nome, regAluno[troca].nome);
                p--;
                printf("Registro excluido com sucesso\n");
                system("pause");
                return;
            } else{
                printf("Operacao cancelada \n");
                system("pause");
                return;
            }
        }
    }
    printf("Aluno nao encontrado  \n");
    system("pause");
}


int main()
{
    printf("Cadastro de Alunos do Curso !\n");
    int opc = 9;
    while(opc!=8){
        system("cls");
        printf("Escolha sua opcao \n\n");
        printf("1) Cadastrar\n");
        printf("2) Listar Dados\n");
        printf("3) Mostrar Quantidade Cadastrada \n");
        printf("4) Buscar Aluno\n");
        printf("5) Alterar Dados \n");
        printf("6) Excluir Dados \n");
        printf("8) Sair \n\n");
        printf("Digite: ");
        scanf("%d", &opc);
        switch(opc){
        case 1:
            system("cls");
            cadastrar();
            break;
        case 2:
            system("cls");
            listar();
            break;
        case 3:
            system("cls");
            printf("Quantidade cadastrada: %d\n", mostrarQuantidade());
            system("pause");
            break;
        case 4:
            system("cls");
            buscar();
            break;
        case 5:
            system("cls");
            alterar();
            break;
        case 6:
            system("cls");
            excluir();
            break;
        case 8:
            system("cls");
            printf("Bye bye\n");
        }
    }
}