Boletim Escolar Com Manipulação de Arquivo

Publicado por José Mario Silva Rosa Filho 20/11/2008

[ Hits: 15.143 ]

Download Boletim Funções.cpp




Esse programa tem algumas funções, e com comandos simples para gravação em arquivos!

É um pequeno projeto de quando começei a programar em C, com algumas melhorias!


Obs: deixei como fiz!

  



Esconder código-fonte

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

#define MAX 20   // Essa variável faz o controle do máximo de matérias que vc teve;
#define NOTAS 4 // Essa variável registra quantas notas vc teve no ano, por exemplo a cada bimestre teve 1 entao no ano seriam 4 bimestres, 4x1=4
#define TAM 100

FILE *doc;

int idade,ano,count,i,x/*Varáveis globais para usufruto de toda e qualquer condição*/;
char materias [MAX][TAM];
char col[TAM];
char nome[TAM];
char turma[TAM];
char string[NOTAS][TAM];

float notas[TAM];

void menu(void);

void creditos(void){
    system("cls");
    printf("+------------------------------------------------------------------------------+");
    printf("|                          Este Boletim foi feito por:                         |");
    printf("|                          Jose Mario Silva Rosa Filho                         |");
    printf("|                                                                              |");
    printf("|                            [email protected]                            |");
    printf("|                                                                              |");
    printf("+------------------------------------------------------------------------------+");    
    
    doc = fopen ("Creditos.txt","w+");
    fprintf(doc,"+------------------------------------------------------------------------------+\n");
    fprintf(doc,"|                          Este Boletim foi feito por:                         |\n");
    fprintf(doc,"|                          Jose Mario Silva Rosa Filho                         |\n");
    fprintf(doc,"|                                                                              |\n");
    fprintf(doc,"|                            [email protected]                            |\n");
    fprintf(doc,"|                                                                              |\n");
    fprintf(doc,"+------------------------------------------------------------------------------+\n");    
fclose(doc);
}

void mats(void){ //ONDE AS MATERIAS SERAO DISPOSTAS E ARMAZENADAS
    system("cls");
    int y=1,i = 0,a = NOTAS;//onde o numero de materias sera armazenado e comparado no "for" e y ira mostrar os numeros
    printf("Informe o numero de materias: ");
    scanf("%d",&x);

    if(x>MAX){
             printf("Erro, so e possivel ter no maximo %d materias!",MAX);
             mats();
    }
    
    for(count=0;count<x;count++){
             fflush(stdin);
             printf("Coloque a %d materia: ",count+1);
             gets(materias[count]);
             while(i<x*NOTAS){ //<<<<<<<<<<fazer a parte de como pegar notas e dai fecho o programa UHUUHUHUHHUHUHUH 
                          fflush(stdin);
                          printf("Coloque a %d nota: ",y++);
                          scanf("%f",¬as[i]); 
                          i++;
                          if(i == a){
                               a = a + NOTAS;        // ESSA Parte é importante no codigo se caso mudar a opçao NOTAS ela gerencia quantas a mais irao entrar;
                               y = 1;
                          break;
                          }
             }                                                    
    }
}
void mostra(void){
    printf("\n\n\n\n\n");
    printf("As Materias Cadastradas Sao:\n");
    for(count=0;count<MAX;count++){
             printf("%d=%s\n",count+1,materias[count]);
             if(strcmp(materias[count],"") == 0)
                                           break;                          
}                                                                                                           
    system("pause");
}

void gera(void){
    int a = 0;
    if(x<=0){
             printf("Erro!!\n");
             printf("Voce nao cadastrou materias!\n");
             system("pause");
             menu();
    }

    printf("+------------------------------------------------------------------------------+");
    printf("|Nome:%73s|",nome);
    printf("|Idade:%72d|",idade);
    printf("|Colegio:%70s|",col);
    printf("|Ano Letivo:%67d|",ano);
    printf("|Turma:%72s|",turma);
    printf("|------------------------------------------------------------------------------|");
    printf("|MATERIA                          | 1 NOTA | 2 NOTA | 3 NOTA | 4 NOTA | MEDIA  |");
    printf("|------------------------------------------------------------------------------|");
    for(i=0;i<x;i++){
             fflush(stdin);
             printf("|%-33s",materias[i]);
             while(a < NOTAS*x){
                                 
                                 printf("|  %-2.1f   |  %-2.1f   |  %-2.1f   |  %-2.1f   |  %-2.1f   |",notas[a],notas[a+1],notas[a+2],notas[a+3],(notas[a] + notas[a+1] + notas[a+2] + notas[a+3] )/4);//cada linha dessa deve ter 102 espaços pra ficar igual a linha acima        
                                 sprintf(string[i]," |  %-2.1f   |  %-2.1f   |  %-2.1f   |  %-2.1f   |  %-2.1f   |",notas[a],notas[a+1],notas[a+2],notas[a+3],(notas[a] + notas[a+1] + notas[a+2] + notas[a+3] )/4);
                                 a+= 4;
             break;
             }
    }
    printf("+------------------------------------------------------------------------------+");
    doc = fopen ("Boletim.txt","w+");
    fprintf(doc,"+--------------------------------------------------------------------------------------------------------------+\n");
    fprintf(doc,"|Nome:%73s|\n",nome);
    fprintf(doc,"|Idade:%72d|\n",idade);
    fprintf(doc,"|Colegio:%70s|\n",col);
    fprintf(doc,"|Ano Letivo:%67d|\n",ano);
    fprintf(doc,"|Turma:%72s|\n",turma);
    fprintf(doc,"|--------------------------------------------------------------------------------------------------------------|\n");
    fprintf(doc,"|MATERIA                          | 1 NOTA | 2 NOTA | 3 NOTA | 4 NOTA | MEDIA |\n");
    fprintf(doc,"|--------------------------------------------------------------------------------------------------------------|\n");
    for(i=0;i<x;i++){
             fflush(stdin);
             fprintf(doc,"|%-33s",materias[i]);
             fprintf(doc,"%s\n",string[i]);
  
    }
    fprintf(doc,"+-------------------------------------------------------------------------------------------------------------+");
fclose(doc);
system("pause");
}

void dados(void){
    fflush(stdin);
    printf("Coloque seu nome: ");
    gets(nome);
    printf("Coloque sua idade: ");
    scanf("%d",&idade);
    printf("Coloque seu ano letivo: ");
    scanf("%d",&ano);
    fflush(stdin);
    printf("Coloque seu colegio: ");
    gets(col);
    printf("Coloque sua turma: ");
    gets(turma);
    fflush(stdin);
    }
 
void menu(void){
    inicio:
    int op;
    system("cls");
    printf("+---------------------------------------------------------------+\n");
    printf("|                                                               |\n");
    printf("|          Menu De Opcoes                                       |\n");
    printf("|                     1)Cadastrar Materias & Notas              |\n");
    printf("|                     2)Mostra Materias                         |\n");
    printf("|                     3)Inserir Seus Dados                      |\n");
    printf("|                     4)Gerar Boletim                           |\n");
    printf("|                     5)Ver Creditos                            |\n");
    printf("|                                                               |\n");
    printf("|                                                               |\n");
    printf("|                                                               |\n");
    printf("|           Escrito Por Jose Mario Silva Rosa Filho.            |\n");
    printf("|                                                               |\n");
    printf("|                                                               |\n");
    printf("+---------------------------------------------------------------+\n");
    do{
    printf("\n\nEscolha uma das 4 opcoes: ");
    scanf("%d",&op);
     }
    while(op<=0 || op>=6); //fica executando DO se o numero digitado for diferente dos que eu pedi no menu
    
                switch(op){
                   case 1:
                        {
                        mats();
                        goto inicio;
                        }
                   case 2:
                        {
                        mostra();  
                        goto inicio;
                        }
                    case 3:
                        {
                        dados();
                        goto inicio;  
                        }
                   case 4:
                        {
                        gera();
                        goto inicio;  
                        }
                   case 5:
                       {
                       creditos();
                       system ("pause");
                       break;
                       }  
                                       
  }
 
}                    


int main(){
    
    menu();
    return(0);
}

Scripts recomendados

NCURSES - Parte II

Descompactador Simples

Chuva de janelas

Calcular determinante de matrizes

Estatística


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts