Advertisement
Guest User

Program C

a guest
Aug 24th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.76 KB | None | 0 0
  1. # include <stdio.h>
  2. # include <string.h>
  3. # include <ctype.h>
  4. # include <stdlib.h>
  5. # define MAX 50
  6. # define TAM 10
  7.  
  8. typedef struct matricula
  9. {
  10.     int matricula;
  11.     char nome[MAX];
  12.     float prova1;
  13.     float prova2;
  14. } cadastro;
  15.  
  16. void escolha (int opcao, cadastro aluno[], int *tam_cad);
  17. void selecionar (int opcao, cadastro aluno[], int *tam_cad);
  18. int inserir_dados (int opcao, cadastro aluno[], int *tam_cad);
  19. void ler_dados (int opcao, cadastro aluno[], int *tam_cad);
  20. void modificar_dados (int opcao, cadastro aluno[], int *tam_cad);
  21.  
  22. int main ()
  23. {
  24.     cadastro aluno[TAM];
  25.     int tam_cad=0, opcao=0;
  26.    
  27.     escolha (opcao, aluno, &tam_cad);  
  28.      
  29. }
  30.  
  31. void escolha (int opcao, cadastro aluno[], int *tam_cad)
  32. {
  33.     printf("O que deseja fazer?\n");
  34.     printf("1. Inserir dados\n");
  35.     printf("2. Ler dados\n");
  36.     printf("3. Modificar dados\n");
  37.     printf("4. Sair\n");
  38.     scanf("%d%*c", &opcao);
  39.     selecionar (opcao,aluno, tam_cad);
  40. }
  41.  
  42. void selecionar (int opcao, cadastro aluno[], int *tam_cad)
  43. {
  44.     switch (opcao)
  45.     {
  46.         case 1:
  47.             inserir_dados(opcao, aluno, tam_cad);
  48.             break;
  49.        
  50.         case 2:
  51.             ler_dados (opcao, aluno, tam_cad);
  52.             break;
  53.            
  54.         case 3:
  55.             modificar_dados(opcao, aluno, tam_cad);
  56.             break;
  57.            
  58.         case 4:
  59.             exit(1);
  60.             break;
  61.     }
  62. }
  63.  
  64. int inserir_dados (int opcao, cadastro aluno[], int *tam_cad)
  65. {
  66.     int cont_aluno=0, reg_aluno=0;
  67.     char resposta='s';
  68.    
  69.     reg_aluno = *tam_cad;
  70.    
  71.     printf("\n\nModulo de insercao de dados\n");
  72.     FILE *arq;
  73.    
  74.     if (fopen("Alunos.txt", "w")==NULL)
  75.     {
  76.         printf("Erro ao tentar abrir o arquivo.");
  77.         return 0;
  78.     }
  79.     else
  80.     {
  81.         printf("Arquivo aberto\n");
  82.         printf("--------------\n");
  83.        
  84.         while (resposta!='N')
  85.         {
  86.             printf("Aluno %d\n", reg_aluno+1);
  87.             printf("--------------\n");
  88.            
  89.             printf("Digite o numero de matricula:\n");
  90.             scanf("%d%*c", &aluno[reg_aluno].matricula);
  91.            
  92.             while (cont_aluno<reg_aluno)
  93.             {
  94.                 while (aluno[cont_aluno].matricula==aluno[reg_aluno].matricula)
  95.                 {
  96.                     printf("Numero de matricula ja existente. Digite outro numero.\n");
  97.                     scanf("%d%*c", &aluno[reg_aluno].matricula);
  98.                     cont_aluno=0;
  99.                 }
  100.             cont_aluno++;
  101.             }
  102.             cont_aluno=0;
  103.                        
  104.             printf("Digite o nome do aluno:\n");
  105.             fgets(aluno[reg_aluno].nome, MAX, stdin);
  106.            
  107.             aluno[reg_aluno].nome[strlen(aluno[reg_aluno].nome)-1]= '\0';
  108.            
  109.             for (cont_aluno=0; cont_aluno<reg_aluno; cont_aluno++)
  110.             {
  111.                 while (strcmp(aluno[reg_aluno].nome, aluno[cont_aluno].nome)==0)
  112.                 {
  113.                     printf("Nome ja existente. Digite o nome completo\n");
  114.                     fgets(aluno[reg_aluno].nome, MAX, stdin);
  115.                 }
  116.             }
  117.             cont_aluno=0;
  118.                        
  119.             printf("Digite a nota da prova 1\n");
  120.             scanf("%f%*c", &aluno[reg_aluno].prova1);
  121.            
  122.             while ((aluno[reg_aluno].prova1<0)||(aluno[reg_aluno].prova1>10))
  123.             {
  124.                 printf("Nota de valor invalido. Digite novamente\n");
  125.                 scanf("%f%*c", &aluno[reg_aluno].prova1);
  126.             }
  127.                        
  128.             printf("Digite a nota da prova 2\n");
  129.             scanf("%f%*c", &aluno[reg_aluno].prova2);
  130.            
  131.             while ((aluno[reg_aluno].prova2<0)||(aluno[reg_aluno].prova2>10))
  132.             {
  133.                 printf("Nota de valor invalido. Digite novamente\n");
  134.                 scanf("%f%*c", &aluno[reg_aluno].prova2);
  135.             }
  136.            
  137.             printf("Deseja cadastrar mais alunos?\n");
  138.             scanf("%c%*c", &resposta);
  139.             resposta = toupper(resposta);
  140.             reg_aluno++;
  141.         }
  142.        
  143.     *tam_cad=reg_aluno;
  144.            
  145.     for (cont_aluno=0;cont_aluno<reg_aluno;cont_aluno++)
  146.     {
  147.         if (fwrite(&aluno[cont_aluno],sizeof(cadastro),1,arq)!=1)
  148.         {
  149.             printf("Erro na escrita\n");
  150.         }
  151.         else
  152.         {
  153.             printf("Gravado com sucesso\n");
  154.         }
  155.     }
  156.     fclose(arq);
  157.     reg_aluno=0;
  158.     cont_aluno=0;
  159.     }
  160.    
  161.     escolha (opcao, aluno, tam_cad);
  162. }
  163.  
  164. void ler_dados (int opcao, cadastro aluno[], int *tam_cad)
  165. {
  166.    
  167. }
  168.  
  169. void modificar_dados(int opcao, cadastro aluno[], int *tam_cad)
  170. {
  171.    
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement