Boletim Escolar Com Manipulação de Arquivo
Publicado por José Mario Silva Rosa Filho 20/11/2008
[ Hits: 15.734 ]
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); }
Calculo calorico visando perca de gordura e definicao muscular
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Desenvolvimento de um driver (8)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba