Ir ao conteúdo

Posts recomendados

Postado

Pessoal estou precisando de uma ajuda meu algoritmo era pra cadastrar alunos, mostrar a matricula. só  que quando eu vou aperta pra matricular outro aluno ele esta sobrescrevendo os dados anteriores. Alguem Me Ajuda!!!!!!!

Está Aqui o que eu fiz até agora Se Alguém puder Me Ajudar!!!!!

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <locale.h>

int i;
char horarios[5][200] = {"1ºHorário:\nSegunda e Quarta, Manhã, Início:08:30 às 10:30  Valor:50,00. 16 à 18.\n\n",
                         "2ºHorário:\nSegunda e Quarta, Tarde, Início:13:30 às 15:30  Valor:50,00. 16 à 18.\n\n",
                         "3ºHorário:\nTerça e Quinta,   Manhã, Início:08:30 às 10:30  Valor:30,00. 13 à 15.\n\n",
                         "4ºHorário:\nTerça e Quinta,   Manhã, Início:13:30 às 15:30  Valor:30,00. 13 à 15.\n\n",
                         "5ºHorário:\nSabado,  Manhã, Inicio:08:30 às 11:30 Valor:R$20,00. 8 à 12.\n\n"
                        };

struct cadastro
{
    int matricula[100];
    char nome[50];
    int idade[18];
};

struct cadastro vetor[10];
int opcao;

void cadastroAluno()
{
    system("cls");
    int i=0;
    char opcao;
    do
    {
        opcao = toupper(getchar());
        fflush(stdin);
        printf("\nEntre com a matricula do aluno: ");
        fflush(stdin);
        gets(vetor.matricula);
        fflush(stdin);
        printf("Entre com o nome do aluno: ");
        gets(vetor.nome);
        fflush(stdin);
        printf("Entre com a idade do aluno: ");
        gets(vetor.idade);
        fflush(stdin);
        printf("Deseja Matricular Mais Um Aluno: <S/N>\n");
        fflush(stdin);
        opcao = toupper(getchar());
        i++;
    }while(opcao == 'S');
}

void mostrarMatricula(void)
{
    system("cls");
    int i;
    for(i=0; i<10; i++)
    {
        printf("\n Matricula do aluno: %s",vetor.matricula);
        printf("\n Nome do aluno: %s",vetor.nome);
        printf("\n Idade do aluno: %s \n",vetor.idade);
    }
    system("pause");
}

void horariosDatasTreinos()
{
    system("cls");
    int i;
    for(i=0; i<5; i++)
    {
        printf("%s", horarios);
    }
    system("pause");

}
void cancelarMatricula()
{
    system("cls");
    int i;
    char nome[50];
    fflush(stdin);
    printf("Qual o nome do aluno q você deseja remover?\n");
    gets(nome);
    for(i=0; i<10; i++)
    {
        if ((strcmp(nome,vetor.nome))==0)
            for( ; i<9; i++)
            {
                strcpy(vetor.matricula,vetor[i+1].matricula);
                strcpy(vetor.nome,vetor[i+1].nome);
                strcpy(vetor.idade,vetor[i+1].idade);


            }
    }
}

void opcoesMenu()
{
    system("cls");
    printf("\n\t\t-----Escola De Futebol Palestra Brasitália-----");
    printf("\n");
    printf("\n\t\t1 - Cadastrar Um Novo Aluno");
    printf("\n\t\t2 - Horarios/Datas Dos Treinos");
    printf("\n\t\t3 - Cancelar A Matricula De Um Aluno");
    printf("\n\t\t4 - Mostrar Matricula Aluno");
    printf("\n\t\t5 - Sair");
    printf("\n\t\t    Opção:");
}

int main ()
{
    int operacao = 0;
    system("cls");
    setlocale(LC_ALL, "Portuguese");
    do
    {
        system("Color 1F");
        opcoesMenu();
        fflush(stdin);
        scanf("%d", &operacao);
        switch(operacao)
        {
        case 1:
            cadastroAluno();
            break;
        case 2:
            horariosDatasTreinos();
            break;
        case 3:
            cancelarMatricula();
            break;
        case 4:
            mostrarMatricula();
        case 5:
            break;
        default:
            printf("\n\t\t\t\tOpção Inválida, Digite Qualquer Tecla Para Continuar:");
            fflush(stdin);
            getchar();
        }
    }
    while(operacao!=5);
    printf("\n\t\t\t\tFim Da Execução Do Programa\n");
    return 0;
}
 

 

 

  • Obrigado 1
Postado

@ExtremeGold    para postar seu código é melhor usar o botão  <>   que está desenhado lá na barra de ferramentas da janela de postar

1740317277_barradeferramentas.JPG.aeb780842df70a1f4cf0dfeae089fc55.JPG

pois senão seu código fica faltando alguns caracteres como os  [ i ]  que sumioram do seu código , e a sobrescrição dos dados pode ser por que você esqueceu de colocar em qual posição do vetor você está guardando os dados ,  então seu código com algumas modificações poderia ser assim    :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <locale.h>
int j,i,cont;
char horarios[5][200] = {"1ºHorário:\nSegunda e Quarta, Manhã, Início:08:30 às 10:30  Valor:50,00. 16 à 18.\n\n",
                         "2ºHorário:\nSegunda e Quarta, Tarde, Início:13:30 às 15:30  Valor:50,00. 16 à 18.\n\n",
                         "3ºHorário:\nTerça e Quinta,   Manhã, Início:08:30 às 10:30  Valor:30,00. 13 à 15.\n\n",
                         "4ºHorário:\nTerça e Quinta,   Manhã, Início:13:30 às 15:30  Valor:30,00. 13 à 15.\n\n",
                         "5ºHorário:\nSabado,  Manhã, Inicio:08:30 às 11:30 Valor:R$20,00. 8 à 12.\n\n"
                        };
struct cadastro{
    int matricula[100];
    char nome[50];
    int idade[18];
}vetor[10];
/*struct cadastro vetor[10];*/
int opcao;
void cadastroAluno(){
    system("cls");
    int i=0;
    char opcao;
    do{
        /*opcao = toupper(getchar());*/
        fflush(stdin);
        printf("\nEntre com a matricula do aluno ---: ");
        fflush(stdin);
        gets(vetor[cont].matricula);
        fflush(stdin);
        printf("Entre com o nome do aluno --------: ");
        gets(vetor[cont].nome);
        fflush(stdin);
        printf("Entre com a idade do aluno -------: ");
        gets(vetor[cont].idade);
        fflush(stdin);
        printf("Deseja Matricular Mais Um Aluno --: <S/N> ");
        fflush(stdin);
        opcao = toupper(getchar());
        printf("\n");
        i++;
        cont++;
    }while(opcao == 'S');
}
void mostrarMatricula(){
    system("cls");
    for(j=0; j<cont; j++){
        printf("\n Matricula do aluno -: %s"  ,vetor[j].matricula);
        printf("\n Nome do aluno ------: %s"  ,vetor[j].nome     );
        printf("\n Idade do aluno -----: %s\n",vetor[j].idade    );
    }
    printf(("\n"));
    system("pause");
}
void horariosDatasTreinos(){
    system("cls");
    for(j=0; j<5; j++){/* com j é melhor */
        printf("%s\n",horarios[j]);
    }
    printf("\n");
    system("pause");
}
void cancelarMatricula(){
    system("cls");
    int w;
    char nome[50];
    fflush(stdin);
    printf("Qual o nome do aluno q você deseja remover ? ");
    gets(nome);
    for(j=0; j<cont; j++)
    {
        if(strcmp(nome,vetor[j].nome)==0){
            for(w=j; w<cont; w++){
                vetor[w] = vetor[w+1];/* deleta todos os campos dessa posição do vetor */
            }
            cont--;/* decrementa pois excluiu hum */
        }
    }
}
void opcoesMenu(){
    system("cls");
    printf("\n\t\t-----Escola De Futebol Palestra Brasit%clia-----",160);
    printf("\n");
    printf("\n\t\t1 - Cadastrar Um Novo Aluno");
    printf("\n\t\t2 - Horarios/Datas Dos Treinos");
    printf("\n\t\t3 - Cancelar A Matricula De Um Aluno");
    printf("\n\t\t4 - Mostrar Matricula Aluno");
    printf("\n\t\t5 - Sair");
    printf("\n\t\t    Opção : ");
}
int main (){
    int operacao = 0;
    system("cls");
    setlocale(LC_ALL, "Portuguese");
    do{
        system("Color 1F");
        opcoesMenu();
        fflush(stdin);
        scanf("%d",&operacao);
        printf("\a");/* faz hum beep */
        switch(operacao){
        case 1:
            cadastroAluno();
            break;
        case 2:
            horariosDatasTreinos();
            break;
        case 3:
            cancelarMatricula();
            break;
        case 4:
            mostrarMatricula();
        case 5:
            break;
        default:
            printf("\n\t\t\t\tOpção Inválida, Digite Qualquer Tecla Para Continuar:");
            fflush(stdin);
            getchar();
        }
    }
    while( operacao != 5 );
    printf("\n\t\t\t\tFim Da Execução Do Programa\n\n\n");
    return 0;
}

 

Postado

ola nesse programa que você chegou a me enviar ele esta dando um erro

error: stray '\357' in program

ele da erro na linha 104 a 105

poderia arrumar pra mim eu uso o programa code blocks

  • Curtir 1
Postado

O erro é porque tem algum caractere anômalo/extra que foi adicionado quando copiou do fórum, provavelmente estará no fim de alguma linha, dê uma olhada nessas linhas 104 e 105 e remova o caractere ou espaço em branco se encontrar.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!