Informática, perguntado por gabiewins9027, 7 meses atrás

Atividade Prática

José, professor universitário de Arquitetura e Urbanismo, possui em seu escritório caixas e mais caixas de livros e revistas, que aos poucos estão sendo catalogados por sua secretária Vanessa. Vanessa está catalogando em uma planilha eletrônica os principais dados de Livros e Revistas, tais como (título da obra, edição, nome do autor, editora, isbn, quantidade de exemplares, caixa onde a obra está armazenada e ano).


A proposta da atividade mapa, é o desenvolvimento de um sistema de pequeno porte para o controlar onde estão armazenadas as obras do arquiteto. Para a construção deste sistema, você deverá utilizar a linguagem C, armazenando os dados em arquivo texto.
O sistema a ser construído necessitará atender aos requisitos funcionais abaixo:
1 - Possuir a sua identificação.
2 - Possuir um menu de opção.
2.1 - Incluir o registro das obras.
2.2 - Listar todos os livros.
2.3

Soluções para a tarefa

Respondido por Danas
1

Sistema para controle onde podem ser armazenadas as obras de um arquiteto.

#include <stdio.h>

#include <stdlib.h>

void menu(){

 printf ("\n\n1 - Cadastrar\n");

 printf ("2 - Listar todos os livros.\n");

 printf ("3 - Listar todas as revistas.\n");

 printf ("4 - Listar as obras por caixa.\n");

 printf ("0 - Sair\n\n");

}

FILE* AbreArquivo(char modo, char caminho[100]){

 FILE *arquivo;

 switch(modo){

     case 'g':

         arquivo = fopen(caminho,"wt");

         break;

     case 'l':

         arquivo = fopen(caminho,"rt");

         break;

     case 'a':

         arquivo = fopen(caminho,"a");

         break;

 }

 if(arquivo==NULL){

     printf("Nao foi possivel abrir o arquivo");

     exit(0);

 }

 return arquivo;

}

void FecharArquivo(FILE *arquivo){

 fclose(arquivo);

}

void Cadastra(char titulo[70],char editora[70], char autor[70], int caixa, int ano, int ISBN){

 FILE *arquivo;

 arquivo = AbreArquivo('a', "mapa.txt");

 fprintf(arquivo, "%[^\n]s %[^\n]s %[^\n]s %d %d %d\n", titulo, autor, editora, caixa, ano, ISBN);

 FecharArquivo(arquivo);

}

void CadastraRevista(char titulo[70],char editora[70], char autor[70], int caixa, int ano, int ISBN){

 FILE *arquivo;

 arquivo = AbreArquivo('a', "mapa.txt");

 fprintf(arquivo, "%[^\n]s %[^\n]s %[^\n]s %d %d %d\n", titulo, autor, editora, caixa, ano, ISBN);

 FecharArquivo(arquivo);

}

void Listar(){

 FILE *arquivo;

 char titulo[70];

 char autor[70];

 char editora[70];

 int caixa;

 int ano;

 int ISBN;

 arquivo = AbreArquivo('l',"mapa.txt");

 while(!feof(arquivo)){

     fscanf(arquivo,"%s %s %s %d %d %d ", &titulo, &autor, &editora, &caixa, &ano, &ISBN);

     setbuf(stdin,NULL);

     for(int i=0; i<70; i++)printf ("*");

     printf("\nTitulo: %s   -   Autor: %s  -  Editora: %s  -  Caixa: %d  -  Ano: %d  -  ISBN: %d\n\n", titulo,editora ,autor , caixa, ano, ISBN);

 }

 FecharArquivo(arquivo);

}

int main(){

 char titulo[70];

 char autor[70];

 char editora[70];

 int caixa;

 int ano;

 int ISBN;

 int opcao;

 

 menu();

 do{

     printf("\nDigite uma opcao: ");

     scanf("%d", &opcao);

     system("cls");

     switch(opcao){

         case 1:

             printf("\nDigite o titulo: ");

             setbuf(stdin,NULL);

             fgets(titulo, 70, stdin);

             printf("\nDigite o autor: ");

             setbuf(stdin,NULL);

             fgets(autor,70, stdin);

             printf("\nDigite o editora: ");

             setbuf(stdin,NULL);

             fgets(editora, 70,stdin );

             printf("\nDigite a caixa: ");

             scanf("%d", &caixa);

             printf("\nDigite o ano: ");

             scanf("%d", &ano);

             printf("\nDigite o ISBN: ");

             scanf("%d", &ISBN);

             Cadastra(titulo, autor, editora, caixa, ano, ISBN);

             system("pause");

             break;

         case 2:

             Listar();

             system("pause");

             break;

         case 3:

             printf("\n\nFinalizando...\n\n");

             system("pause");

             exit(0);

             break;

         default:

             printf("\n\nOpcao invalida! Tente Novamente!\n\n");

             system("pause");

     }

 }while(opcao!=3);

 return 0;

}

A linguagem usada foi C, está um pouco extenso, mas é um código capaz de controlar o armazenamento de obras do arquiteto de forma identificar a obra, ter um menu de opções, incluir o registro das obras e listar todos os livros e também por caixas.

Espero ter ajudado!


JULIACSG: Danas pode me ajudar com minha última questão
Perguntas interessantes