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???????
#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: ");
}
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:
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:
Para escrever sua resposta aqui, entre ou crie uma conta
Lógica de Programação
•ESTÁCIO EAD
Compartilhar