Ir ao conteúdo

Posts recomendados

Postado

Elabore em C um programa para simular um Sistema de Apostas. Os clientes poderão fazer um jogo de 6 números entre 1 a 24, não podendo ter números repetidos. O sistema deverá manter um cadastro de clientes usando struct (cpf, nome e endereço) e também o de cadastro de apostas (cpf, um vetor de números inteiros tamanho 6, status - ganhador ou perdedor). A interação com o sistema deve ser feita pelo teclado através de um menu, com as seguintes opções: (1) - Cadastrar Cliente (2) - Fazer uma Aposta (3) - Realizar o sorteio dos 6 números - o sistema irá realizar aleatoriamente (4) - Exibir as estatísticas dos clientes que acertaram apenas 1 número (5) - Exibir as estatísticas dos clientes que acertaram apenas 2 números (6) - Exibir as estatísticas dos clientes que acertaram apenas 3 números (7) - Exibir as estatísticas dos clientes que acertaram apenas 4 números (8) - Exibir as informações dos clientes que acertaram 5 ou 6 números (9) – Sair     Todo o programa deve ser estruturado usando funções

  • Curtir 1
Postado

@Ninja Teleporte Sim, com certeza alguém consegue fazer esse código completo 🤪

Veja, a atividade é sua... Tentou começar?

Comece definindo as estruturas, veja como será o protótipo das funções, acredito que deverá criar uma para cada funcionalidade. Ao final, pode criar o menu.

Que dúvidas tem?

  • Obrigado 1
Postado

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

typedef struct aposta{
char cpf[50];
int EstadoDasApostas;
int nApostas[6];

}Aposta;

typedef struct cliente{
char cpf[50];
  char nome[50];
  char endereco[100];
}Cliente;

Aposta aposta[50];
Cliente cliente[100];

void cadastrar_cliente(){
int menu;
int i;
char nome[50];
printf("---CADASTRO DE CLIENTES---\n");
printf("\n(1)-inserir pessoa");
scanf("%d",&menu);
printf("inserir pessoa\n");
fgets(cliente[i].nome, 50, stdin);
printf("\ncoloque o nome\n");
scanf(" ");
fgets(cliente[i].cpf, 50, stdin);
printf ("\tcoloque o cpf:\n");
scanf(" ");
fgets(cliente[i].endereco, 100, stdin);
printf ("\tcoloque o  endereco:\n");
scanf(" ");
i++;
printf ("Cliente inserido no sistema!\n");


}
void inserir_aposta(){
int menu;
int i;
char cpf[50];
system("cls");
printf("==INSERIR UMA APOSTA==\n");
printf("\n(1)-faca uma aposta");
printf("\n(2)-sair");
scanf("%d",&menu);
switch(menu){
case 1:
printf("Coloque o cpf em que deseja apostar:\n");
        scanf(" ");
        fgets(cpf, 50, stdin);
        for (int i = 0; i < 10; i++){
        if (strcmp(cpf, cliente[i].cpf) == 0) {
        printf("\t\tdigite o numeros de 1 ate' 24\n");
        printf("Coloque a primeira aposta\n");
        scanf ("%i", &aposta[i].nApostas[0]);
        printf("Coloque a segunda aposta\n");
        scanf ("%i", &aposta[i].nApostas[1]);
        if (aposta[i].nApostas[1]!=aposta[i].nApostas[0]){
        printf("Coloque a terceira aposta\n");
        scanf ("%i", &aposta[i].nApostas[2]);
        if (aposta[i].nApostas[2]!=aposta[i].nApostas[0] && aposta[i].nApostas[2]!=aposta[i].nApostas[1]){
            printf("Coloque a quarta aposta\n");
            scanf ("%i", &aposta[i].nApostas[3]);
            if(aposta[i].nApostas[3]!=aposta[i].nApostas[0] &&aposta[i].nApostas[3]!=aposta[i].nApostas[1] &&aposta[i].nApostas[3]!=aposta[i].nApostas[2]){
            printf("Coloque a quinta aposta\n");
            scanf ("%i", &aposta[i].nApostas[4]);
            if (aposta[i].nApostas[4]!=aposta[i].nApostas[0] &&aposta[i].nApostas[4]!=aposta[i].nApostas[1] &&aposta[i].nApostas[4]!=aposta[i].nApostas[2] &&aposta[i].nApostas[4]!=aposta[i].nApostas[3]){
            printf("Coloque a sexta aposta\n");
            scanf ("%i", &aposta[i].nApostas[5]);
            if (aposta[i].nApostas[5]!=aposta[i].nApostas[0] &&aposta[i].nApostas[5]!=aposta[i].nApostas[1] &&aposta[i].nApostas[5]!=aposta[i].nApostas[2] &&aposta[i].nApostas[5]!=aposta[i].nApostas[3] && aposta[i].nApostas[5]!=aposta[i].nApostas[4]){
            printf ("Aposta inserida no sistema!\n");
                                            }
                    else{
                    printf ("não pode repeticao de numeros\n");
                    system ("pause");
                    inserir_aposta ();
                                            }
                                            }
                    else {
                    printf ("não pode repeticao de numeros\n");
                    system ("pause");
                    inserir_aposta ();
                                            }
                                                }
                    else{
                    printf ("não pode repeticao de numeros\n");
                    system ("pause");
                    inserir_aposta ();
                                                }
        }
        else {
        printf ("não pode numeros iguais\n");
        system ("pause");
        inserir_aposta ();
        }

        printf ("aposta cadastrada no sistema!\n");
        system ("pause");
        }
        else {
            printf ("cpf não encontrado!\n");
            system ("pause");
        }
        inserir_aposta ();
        break;

     case 2:
        break;
default:
printf("opcao invalida");
break;
    }
  }
}
}

int main()
{
    int menu;
    int saida=1;
    int i, j;
    do{
printf("=====================================================================\n");
printf("   ###    ########   #######   ######  ########    ###    \n");
printf("  ## ##   ##     ## ##     ## ##    ##    ##      ## ##   \n");
printf(" ##   ##  ##     ## ##     ## ##          ##     ##   ##  \n");
printf("##     ## ########  ##     ##  ######     ##    ##     ## \n");
printf("######### ##        ##     ##       ##    ##    ######### \n");
printf("##     ## ##        ##     ## ##    ##    ##    ##     ## \n");
printf("##     ## ##         #######   ######     ##    ##     ## \n");
printf("\n(0)-SAIR                                                               ");
printf("\n(1)-CADASTRAR CLIENTE                                                  ");
printf("\n(2)FAZER UMA APOSTA                                                   ");
printf("\n(3)-REALIZAR O SORTEIO DOS 6 NUMEROS                                   ");
printf("\n(4)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE ACERTARAM APENAS 1 NUMERO  ");
printf("\n(5)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE ACERTARAM APENAS  2 NUMEROS");
printf("\n(6)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE ACERTARAM APENAS 3 NUMEROS ");
printf("\n(7)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE ACERTARAM APENAS 4 NUMEROS ");
printf("\n(8)-EXIBIR AS informações DOS CLIENTES QUE ACERTARAM 5 ou 6 NUMEROS\n  ");
printf("=======================================================================\n");
scanf ("%d", &menu);
        switch (menu){
     case 0:
         printf ("\tdigite uma opcao valida!\n");
        system ("pause");
        break;
     case 1:
         cadastrar_cliente();
        break;
     case 2:
         inserir_aposta();
        break;
     case 3:

        break;
     case 4:

        break;
     case 5:

        break;
     case 6:

        break;
     case 7:

        break;
     case 8:

        break;
     case 9:
         saida=1;
        break;
     case 10:

        break;
        }

        }while(saida!=1);
        return 0;
}

esse é o que consegui fazer

  • Amei 1
Postado

Use o tal botao code....

 

Veja a diferença

 

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

typedef struct aposta
{
    char cpf[50];
    int  EstadoDasApostas;
    int  nApostas[6];

} Aposta;

typedef struct cliente
{
    char cpf[50];
    char nome[50];
    char endereco[100];
} Cliente;

Aposta  aposta[50];
Cliente cliente[100];

void cadastrar_cliente()
{
    int  menu;
    int  i;
    char nome[50];
    printf("---CADASTRO DE CLIENTES---\n");
    printf("\n(1)-inserir pessoa");
    scanf("%d", &menu);
    printf("inserir pessoa\n");
    fgets(cliente[i].nome, 50, stdin);
    printf("\ncoloque o nome\n");
    scanf(" ");
    fgets(cliente[i].cpf, 50, stdin);
    printf("\tcoloque o cpf:\n");
    scanf(" ");
    fgets(cliente[i].endereco, 100, stdin);
    printf("\tcoloque o  endereco:\n");
    scanf(" ");
    i++;
    printf("Cliente inserido no sistema!\n");
}
void inserir_aposta()
{
    int  menu;
    int  i;
    char cpf[50];
    system("cls");
    printf("==INSERIR UMA APOSTA==\n");
    printf("\n(1)-faca uma aposta");
    printf("\n(2)-sair");
    scanf("%d", &menu);
    switch (menu)
    {
        case 1:
            printf(
                "Coloque o cpf em que deseja apostar:\n");
            scanf(" ");
            fgets(cpf, 50, stdin);
            for (int i = 0; i < 10; i++)
            {
                if (strcmp(cpf, cliente[i].cpf) == 0)
                {
                    printf(
                        "\t\tdigite o numeros de 1 ate' "
                        "24\n");
                    printf("Coloque a primeira aposta\n");
                    scanf("%i", &aposta[i].nApostas[0]);
                    printf("Coloque a segunda aposta\n");
                    scanf("%i", &aposta[i].nApostas[1]);
                    if (aposta[i].nApostas[1] !=
                        aposta[i].nApostas[0])
                    {
                        printf(
                            "Coloque a terceira aposta\n");
                        scanf("%i", &aposta[i].nApostas[2]);
                        if (aposta[i].nApostas[2] !=
                                aposta[i].nApostas[0] &&
                            aposta[i].nApostas[2] !=
                                aposta[i].nApostas[1])
                        {
                            printf(
                                "Coloque a quarta "
                                "aposta\n");
                            scanf(
                                "%i",
                                &aposta[i].nApostas[3]);
                            if (aposta[i].nApostas[3] !=
                                    aposta[i].nApostas[0] &&
                                aposta[i].nApostas[3] !=
                                    aposta[i].nApostas[1] &&
                                aposta[i].nApostas[3] !=
                                    aposta[i].nApostas[2])
                            {
                                printf(
                                    "Coloque a quinta "
                                    "aposta\n");
                                scanf(
                                    "%i",
                                    &aposta[i].nApostas[4]);
                                if (aposta[i].nApostas[4] !=
                                        aposta[i]
                                            .nApostas[0] &&
                                    aposta[i].nApostas[4] !=
                                        aposta[i]
                                            .nApostas[1] &&
                                    aposta[i].nApostas[4] !=
                                        aposta[i]
                                            .nApostas[2] &&
                                    aposta[i].nApostas[4] !=
                                        aposta[i]
                                            .nApostas[3])
                                {
                                    printf(
                                        "Coloque a sexta "
                                        "aposta\n");
                                    scanf(
                                        "%i",
                                        &aposta[i]
                                             .nApostas[5]);
                                    if (aposta[i].nApostas
                                                [5] !=
                                            aposta[i]
                                                .nApostas
                                                    [0] &&
                                        aposta[i].nApostas
                                                [5] !=
                                            aposta[i]
                                                .nApostas
                                                    [1] &&
                                        aposta[i].nApostas
                                                [5] !=
                                            aposta[i]
                                                .nApostas
                                                    [2] &&
                                        aposta[i].nApostas
                                                [5] !=
                                            aposta[i]
                                                .nApostas
                                                    [3] &&
                                        aposta[i].nApostas
                                                [5] !=
                                            aposta[i]
                                                .nApostas
                                                    [4])
                                    {
                                        printf(
                                            "Aposta "
                                            "inserida no "
                                            "sistema!\n");
                                    }
                                    else
                                    {
                                        printf(
                                            "não pode "
                                            "repeticao de "
                                            "numeros\n");
                                        system("pause");
                                        inserir_aposta();
                                    }
                                }
                                else
                                {
                                    printf(
                                        "não pode "
                                        "repeticao de "
                                        "numeros\n");
                                    system("pause");
                                    inserir_aposta();
                                }
                            }
                            else
                            {
                                printf(
                                    "não pode repeticao de "
                                    "numeros\n");
                                system("pause");
                                inserir_aposta();
                            }
                        }
                        else
                        {
                            printf(
                                "não pode numeros "
                                "iguais\n");
                            system("pause");
                            inserir_aposta();
                        }

                        printf(
                            "aposta cadastrada no "
                            "sistema!\n");
                        system("pause");
                    }
                    else
                    {
                        printf("cpf não encontrado!\n");
                        system("pause");
                    }
                    inserir_aposta();
                    break;

                    case 2:
                        break;
                    default:
                        printf("opcao invalida");
                        break;
                }
            }
    }
}

int main()
{
    int menu;
    int saida = 1;
    int i, j;
    do {
        printf(
            "=============================================="
            "=======================\n");
        printf(
            "   ###    ########   #######   ######  "
            "########    ###    \n");
        printf(
            "  ## ##   ##     ## ##     ## ##    ##    ##  "
            "    ## ##   \n");
        printf(
            " ##   ##  ##     ## ##     ## ##          ##  "
            "   ##   ##  \n");
        printf(
            "##     ## ########  ##     ##  ######     ##  "
            "  ##     ## \n");
        printf(
            "######### ##        ##     ##       ##    ##  "
            "  ######### \n");
        printf(
            "##     ## ##        ##     ## ##    ##    ##  "
            "  ##     ## \n");
        printf(
            "##     ## ##         #######   ######     ##  "
            "  ##     ## \n");
        printf(
            "\n(0)-SAIR                                    "
            "                           ");
        printf(
            "\n(1)-CADASTRAR CLIENTE                       "
            "                           ");
        printf(
            "\n(2)FAZER UMA APOSTA                         "
            "                          ");
        printf(
            "\n(3)-REALIZAR O SORTEIO DOS 6 NUMEROS        "
            "                           ");
        printf(
            "\n(4)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE "
            "ACERTARAM APENAS 1 NUMERO  ");
        printf(
            "\n(5)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE "
            "ACERTARAM APENAS  2 NUMEROS");
        printf(
            "\n(6)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE "
            "ACERTARAM APENAS 3 NUMEROS ");
        printf(
            "\n(7)-EXIBIR AS ESTATISTICAS DOS CLIENTES QUE "
            "ACERTARAM APENAS 4 NUMEROS ");
        printf(
            "\n(8)-EXIBIR AS informações DOS CLIENTES QUE "
            "ACERTARAM 5 ou 6 NUMEROS\n  ");
        printf(
            "=============================================="
            "=========================\n");
        scanf("%d", &menu);
        switch (menu)
        {
            case 0:
                printf("\tdigite uma opcao valida!\n");
                system("pause");
                break;
            case 1:
                cadastrar_cliente();
                break;
            case 2:
                inserir_aposta();
                break;
            case 3:

                break;
            case 4:

                break;
            case 5:

                break;
            case 6:

                break;
            case 7:

                break;
            case 8:

                break;
            case 9:
                saida = 1;
                break;
            case 10:

                break;
        }

    } while (saida != 1);
    return 0;
}

 

Seu programa não está nada bom. Pode conseguir terminar assim, mas vai ter um trabalho do inferno e 

  • vai ser difícil usar isso em outros programas
  • vai aprender pouco com isso
  • vai ser o diabo fazer qualquer alteração nisso, mesmo horas depois de ter escrito.

Nunca escreva um programa interativo.

 

É bobagem. Só vai estar perdendo tempo. Seu programa tem mais de 300 linhas e não fa quase nada.

 

Desenhos na tela e menus não levam a nada. Escreva em torno dos dados e não da tela.

 

Nunca use funções sem argumentos e que retornam void. É um desastre. E proibido em toda parte.

 

image.png.ce91b29b828866d58052e5140db0f19c.png

 

O código a esquerda é de uma aposto em seu programa. Por sorte são apenas seis apostas possíveis. Mas e se mudar para doze? Vai ficar com uns 2 metros de código?

 

Claro que deve ter outra maneira, usando índices e uma struct de apostas. Leva menos tempo para aprender do que para terminar o programa com essas restrições. Fica muito frágil.

 

Se você tem um menu porque não é uma função que retorna a opção?

 

E porque não coloca isso só no final?

 

Um programa nunca dá erro em um menu. Ou não deveria.

 

void cadastrar_cliente()
 

Nunca escreva assim. Onde está o cadastro? 

 

Não é básico em seu programa um cadastro de clientes e um cadastro de apostas? Só que não tem isso no programa.

 

Pode apostar que vai fazer falta.

Muita falta.

 

E cadastrar um cliente cadastra um cliente em um cadastro. Ou deveria.

 

Você sempre vai ver

 

    int cadastrar_cliente( Cliente* cliente, Cadastro* cad_local);

 

por exemplo, porque é o simples. Cadastra um cliente em um cadastro. Deu certo? retorna 0 ou o total atualizado de clientes.

 

Pense nisso

 

 

  • Curtir 1
  • Obrigado 1
Postado

Interessante, eu também tô com um erro que é o seguinte. Nesse código que enviei , quando vou sair do cadastrar usuário, ele não volta para a main , só sai do sistema todo ;-; . Eu queria consertar isso também

@arfneto Se conseguir uma solução pra isso de voltar ao main em vez de sair do sistema todo em cada opção

Postado

@Ninja Teleporte

52 minutos atrás, Ninja Teleporte disse:

quando vou sair do cadastrar usuário, ele não volta para a main , só sai do sistema todo

Sim, você inicializou saida com o valor 1, e a condição de persistência do loop é saida != 1.

Enquanto saida for diferente de 1 o loop persiste, mas sempre vai ser igual a 1.

Veja, você não precisa de uma variável pra isso: você pode definir a condição como menu != 9, já que a opção 9 é Sair, então o loop persistiria enquanto essa opção não fosse escolhida.

  • Curtir 1

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!