Informática, perguntado por filipearaujo1609, 11 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 (RA-Nome-Curso)
2 - Possuir um menu de opção.
2.1 - Incluir o registro das obras.
2.2 - Listar todos os livros.
2.3 - Listar todas as revistas.
2.4- Listar as obras por caixa.
O sistema deverá ser entregue da seguinte forma: Sistema_ .c arquivo.txt

O arquivo com os dados das obras, já devem vir previamente cadastradas com no mínimo: 5 livros e 5 revistas, ambas espalhadas em 3 caixas.

ALGUÉM ME AJUDA POR FAVOR

Soluções para a tarefa

Respondido por Danas
2

Sistema para o controle de armazenamento de obras para arquitetos.

#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;

}

O código foi feito em C, uma linguagem antiga, mas que ainda é muito importante atualmente, tendo em mente que é uma das primeiras linguagem que a maioria dos programadores tem contato

Espero ter ajudado!

Perguntas interessantes