Buscar

linguagem de programação

Crie um programa em C que declare uma estrutura (registro) para o cadastro de alunos. 

(a) Deverão ser armazenados, para cada aluno: matrícula, sobrenome (apenas um), e ano de nascimento.

(b) Ao in´icio do programa, o usuário deverá informar o número de alunos que serão armazenados.

(c) o programa devera alocar dinamicamente a quantidade necessária de memória para armazenar os registros dos alunos.

d) O programa devera pedir ao usuário que entre com as informações dos alunos.

(e) Em seguida, essas informações deverão ser gravadas em um arquivo.

(f) Ao final, mostrar os dados armazenados e liberar a memória alocada.

 

alguem poderia me ajudar???????

💡 4 Respostas

User badge image

Victor Manhani

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

typedef struct alunos alunos;//Definição de um apelido para a estrutura(registro)
struct alunos{//Estrutura de dados de alunos
    char matricula[8];
    char sobrenome[15];
    int anoNascimento;
};

int gravaBD(alunos *aluno, int quantidade){
    FILE *bd;//Variavel do tipo file para manipulação de arquivos
    int resultado;//Variavel que recebe o EOF para tratamento de erros
    int i;//Contador
    bd = fopen("BD.txt", "wt+");//criando o bd na pasta do programa para escrita e leitura e retornando o endereço dele para a variavel bd
    for(i = 1; i<=quantidade; i++){
        fprintf(bd, "Matrícula: %s\n", aluno[i].matricula);
        fprintf(bd, "Sobrenome: %s\n", aluno[i].sobrenome);
        fprintf(bd, "Ano de Nascimento: %i\n\n", aluno[i].anoNascimento);
    }
    if(fclose(bd) > 0)return 0; else return 1;//Se não der erro o fclose retorna um número negativo
}
    
int main(){
    setlocale(LC_ALL,"");//Define a linguagem padrão do sistema para utilização de acentos
    
    int resultado;//Resultado da gravação no Banco de Dados
    int quantidade;//Quantidade de Alunos
    int menu;//Controle do Menu
    alunos *aluno;//Ponteiro do Tipo alunos
    int i = 0;//Contador

    do{
        printf("Quantos alunos que serão armazenados: ");
        scanf("%d", &quantidade);
        
        if(quantidade == 0 || quantidade < 0){
            printf("\nOk, Programa Finalizado!\n");//Fechamento do Programa se não tiver aluno ou for número negativo
            break;
        }
        aluno = (alunos*)malloc(quantidade*sizeof(alunos));//Alocamento dinâmico do vetor de alunos
        
        system("cls");//Limpa a tela
        
        for(i = 1; i<=quantidade; i++){//Gravar os dados no vetor aluno
            fflush(stdin);
            printf("Aluno %d\n", i);
            printf("Matrícula: ");
            scanf("%7s", aluno[i].matricula);
            fflush(stdin);
            printf("Sobrenome: ");
            scanf("%14s", aluno[i].sobrenome);
            fflush(stdin);
            printf("Ano de Nascimento: ");
            scanf("%4i", &aluno[i].anoNascimento);
            puts("\n");
        }
        
        system("cls");//Limpa a tela
        
        resultado = gravaBD(aluno, quantidade);//Chamando a função gravaBD e recebendo um resultado
        if(resultado == 0){
            printf("Erro ao gravar em Arquivo!\n\n");
            return;            
        }else{
            printf("Gravado em Arquivo com Sucesso!\n\n");    
        }
        
        for(i = 1; i<=quantidade; i++){//Mostra na tela os dados gravados no bd
            printf("Aluno %d\n", i);
            printf("Matrícula: %s \n", aluno[i].matricula);
            printf("Sobrenome: %s \n", aluno[i].sobrenome);
            printf("Ano de Nascimento: %i \n\n", aluno[i].anoNascimento);
        }
        
        free(aluno);//Liberar a memória alocada
        
        printf("Deseja Sair? (0 - sim / 1 - não): ");//Só para confudir a cuca lkkkkkk
        scanf("%d", &menu);
        if(menu < 0 || menu > 1){
            printf("\nSaindo do menu, bye!!\n");//Fechamento do Programa se o usuario quiser sair
            break;
        }
        puts("\n");
    }while(menu);
    
    printf("Pressione Enter Para Sair: ");
}

0
Dislike0
User badge image

Andre Smaira

Alocação de memória, em ciência da computação, consiste no processo de solicitar/utilizar memória durante o processo de execução de um programa de computador.


a)

Foi criada uma estrutura para armazenar os dados solicitados:


b)

Em seguida é pedido para o usuário entrar com o número de alunos desejado:


c)

Nesta etapa é feita a alocação dinâmica dos dados com a função malloc:


d)

Nesta etapa da função é solicitado ao usuário que entre com as informações dos alunos:

e)

As informações são salvas em um arquivo .txt no mesmo diretório onde o programa é executado:


f)

No final no programa os dados são mostrados e a memória é liberada:


A saída do programa é ilustrada abaixo:

0
Dislike0
User badge image

Andre Smaira

Alocação de memória, em ciência da computação, consiste no processo de solicitar/utilizar memória durante o processo de execução de um programa de computador.


a)

Foi criada uma estrutura para armazenar os dados solicitados:


b)

Em seguida é pedido para o usuário entrar com o número de alunos desejado:


c)

Nesta etapa é feita a alocação dinâmica dos dados com a função malloc:


d)

Nesta etapa da função é solicitado ao usuário que entre com as informações dos alunos:

e)

As informações são salvas em um arquivo .txt no mesmo diretório onde o programa é executado:


f)

No final no programa os dados são mostrados e a memória é liberada:


A saída do programa é ilustrada abaixo:

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais