Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <stdio.h>
- # include <string.h>
- # include <ctype.h>
- # include <stdlib.h>
- # define MAX 50
- # define TAM 10
- typedef struct matricula
- {
- int matricula;
- char nome[MAX];
- float prova1;
- float prova2;
- } cadastro;
- void escolha (int opcao, cadastro aluno[], int *tam_cad);
- void selecionar (int opcao, cadastro aluno[], int *tam_cad);
- int inserir_dados (int opcao, cadastro aluno[], int *tam_cad);
- void ler_dados (int opcao, cadastro aluno[], int *tam_cad);
- void modificar_dados (int opcao, cadastro aluno[], int *tam_cad);
- int main ()
- {
- cadastro aluno[TAM];
- int tam_cad=0, opcao=0;
- escolha (opcao, aluno, &tam_cad);
- }
- void escolha (int opcao, cadastro aluno[], int *tam_cad)
- {
- printf("O que deseja fazer?\n");
- printf("1. Inserir dados\n");
- printf("2. Ler dados\n");
- printf("3. Modificar dados\n");
- printf("4. Sair\n");
- scanf("%d%*c", &opcao);
- selecionar (opcao,aluno, tam_cad);
- }
- void selecionar (int opcao, cadastro aluno[], int *tam_cad)
- {
- switch (opcao)
- {
- case 1:
- inserir_dados(opcao, aluno, tam_cad);
- break;
- case 2:
- ler_dados (opcao, aluno, tam_cad);
- break;
- case 3:
- modificar_dados(opcao, aluno, tam_cad);
- break;
- case 4:
- exit(1);
- break;
- }
- }
- int inserir_dados (int opcao, cadastro aluno[], int *tam_cad)
- {
- int cont_aluno=0, reg_aluno=0;
- char resposta='s';
- reg_aluno = *tam_cad;
- printf("\n\nModulo de insercao de dados\n");
- FILE *arq;
- if (fopen("Alunos.txt", "w")==NULL)
- {
- printf("Erro ao tentar abrir o arquivo.");
- return 0;
- }
- else
- {
- printf("Arquivo aberto\n");
- printf("--------------\n");
- while (resposta!='N')
- {
- printf("Aluno %d\n", reg_aluno+1);
- printf("--------------\n");
- printf("Digite o numero de matricula:\n");
- scanf("%d%*c", &aluno[reg_aluno].matricula);
- while (cont_aluno<reg_aluno)
- {
- while (aluno[cont_aluno].matricula==aluno[reg_aluno].matricula)
- {
- printf("Numero de matricula ja existente. Digite outro numero.\n");
- scanf("%d%*c", &aluno[reg_aluno].matricula);
- cont_aluno=0;
- }
- cont_aluno++;
- }
- cont_aluno=0;
- printf("Digite o nome do aluno:\n");
- fgets(aluno[reg_aluno].nome, MAX, stdin);
- aluno[reg_aluno].nome[strlen(aluno[reg_aluno].nome)-1]= '\0';
- for (cont_aluno=0; cont_aluno<reg_aluno; cont_aluno++)
- {
- while (strcmp(aluno[reg_aluno].nome, aluno[cont_aluno].nome)==0)
- {
- printf("Nome ja existente. Digite o nome completo\n");
- fgets(aluno[reg_aluno].nome, MAX, stdin);
- }
- }
- cont_aluno=0;
- printf("Digite a nota da prova 1\n");
- scanf("%f%*c", &aluno[reg_aluno].prova1);
- while ((aluno[reg_aluno].prova1<0)||(aluno[reg_aluno].prova1>10))
- {
- printf("Nota de valor invalido. Digite novamente\n");
- scanf("%f%*c", &aluno[reg_aluno].prova1);
- }
- printf("Digite a nota da prova 2\n");
- scanf("%f%*c", &aluno[reg_aluno].prova2);
- while ((aluno[reg_aluno].prova2<0)||(aluno[reg_aluno].prova2>10))
- {
- printf("Nota de valor invalido. Digite novamente\n");
- scanf("%f%*c", &aluno[reg_aluno].prova2);
- }
- printf("Deseja cadastrar mais alunos?\n");
- scanf("%c%*c", &resposta);
- resposta = toupper(resposta);
- reg_aluno++;
- }
- *tam_cad=reg_aluno;
- for (cont_aluno=0;cont_aluno<reg_aluno;cont_aluno++)
- {
- if (fwrite(&aluno[cont_aluno],sizeof(cadastro),1,arq)!=1)
- {
- printf("Erro na escrita\n");
- }
- else
- {
- printf("Gravado com sucesso\n");
- }
- }
- fclose(arq);
- reg_aluno=0;
- cont_aluno=0;
- }
- escolha (opcao, aluno, tam_cad);
- }
- void ler_dados (int opcao, cadastro aluno[], int *tam_cad)
- {
- }
- void modificar_dados(int opcao, cadastro aluno[], int *tam_cad)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement