Boletim Escolar Com Manipulação de Arquivo
Publicado por José Mario Silva Rosa Filho 20/11/2008
[ Hits: 15.888 ]
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!
#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); }
Cálculo de divisores de um número.
Divisores de um inteiro positivo em C++
Sequência fibonacci com 35 linhas e for
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux não é para todo mundo (4)
Dificuldade para renderizar vídeo no kdenlive (8)