Boletim Escolar Com Manipulação de Arquivo

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

[ Hits: 15.888 ]

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("|                            ZeMariosrf@hotmail.com                            |");
    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,"|                            ZeMariosrf@hotmail.com                            |\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

Milesegundos em C

Cálculo de divisores de um número.

Divisores de um inteiro positivo em C++

POTENCIA.c em linguagem c

Sequência fibonacci com 35 linhas e for


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts