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
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!