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