Informática, perguntado por Juuuhelevennn5188, 9 meses atrás

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

Soluções para a tarefa

Respondido por Danas
11

O código de um sistema que possui identificação (RA-Nome-Curso), tem um menu de opção, possui um registro das obras e lista todos os livros:

#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 C é uma linguagem de programação antiga, criada em 1972, é um compilado de proposito geral, também é uma das linguagens da programação mais usadas no mundo inteiro, muito popular.

Praticamente todas as arquiteturas possuem algum compilador de C.

A linguagem C também foi inspiração para outras linguagens, como a Java e a C++, que era uma extensão da linguagem C, é a linguagem introdutória da maioria dos estudantes de programação.

Espero ter ajudado!

Respondido por laurijm
4

Resposta:

Meu código ficou um pouquinho diferente, mas acredito que atendem o mesmo prosito.

Estão anexados os dois arquivos necessários, o Sistema_RA basta mudar a extenção para Sistema_RA.c e abrir com um codeblocks da vida, deixe os dois arquivos na mesma pasta e já irá rodar.

Para apagar os livros que já estão salvos no txt, basta abrir o arquivo dadoslivros.txt, e apagar seu conteúdo.

Espero ter colaborado.

Explicação:

Anexos:

ciscato145: Onde eu cadastro os livros e as revistas, você conseguiu finalizar o mapa da algoritmos e logica de programação I ?
CaioHenriqueRibeiro: Não ta ficando salvo os livros quando cadastra, sabe qual o erro?
guiborgesilva: Ótimo ótimo parceiro!! Funcionou 100% para mim!!!
Perguntas interessantes