Alan Correa Postado Março 18, 2011 Denunciar Share Postado Março 18, 2011 Olá pessoal, sou iniciante em Estrutura de Dados....existe um sistema que preciso criar:1. Uma biblioteca possui obras de ciências exatas, ciências humanas e ciências biomédicas, totalizando 1.500 volumes, 500 de cada área. O proprietário resolveu informatizá-la e, para tal, agrupou as informações sobre cada livro do seguinte modo: Código de catalogação: __________ Doado:______________ Nome da obra: _____________________________________ Nome do autor: ____________________________________ Editora: _______________Nro de páginas:_______________ a) Construa um algoritmo que declare tal estrutura e que reúna todas as informações de todas as obras em três vetores distintos para cada área. B) Elabore um trecho de algoritmo que, utilizando como premissa o que foi feito no item anterior, realize uma consulta à informações. O usuário fornecerá o código da obra e sua área. Existindo tal livro, informa seus campos. Do contrário, envia mensagem de aviso. c) A consulta repete-se até que o usuário introduza código finalizador com o valor -1. Escreva um trecho de algoritmo que liste todas as obras de cada área que representem livros doados. d) Idem ao item anterior, porém, obras cujos livros sejam comprados e cujo número de páginas se encontre entre 100 e 300. e) Construa um trecho de algoritmo que efetue a exclusão de algum livro; o usuário fornecerá o código e a área. Lembres-se de que somente pode ser excluído um livro existente. Eu já fiz o menu geral, o menu para cadastrare o menu de consulta...mas acredito que tem erros ...voces podem me ajudar? segue o que eu desenvolvi:#include <stdio.h>#include <stdlib.h>#include <math.h>#define TRUE 1#define FALSE 0typedef struct {int codigoCatalogacao [10];char doado [50];char nomeDaObra [50];char nomeAutor [50];char editora [50];int nrPaginas;}livros;typedef struct {livros exatas [500];livros humanas [500];livros biomedicas [500];} biblioteca; main (){biblioteca varBiblioteca;while (1){printf ("Menu\n");printf ("1- Novo Cadastro\n");printf ("2-Consulta\n");printf ("3-Exclusão\n");printf ("4-Sair do Programa\n");int menuPrincipal;switch (menuPrincipal){case 1:printf ("Informe Area do Conhecimento Para Cadastramento \n");printf ("1-Biomedicas\n");printf ("2-Humanas\n");printf ("3-Exatas\n");break;int menuCadastrarAreaConehcimento;switch (menuCadastrarAreaConehcimento) { case 1: printf ("CADASTRO LIVROS DE CIENCIAS BIOMETRICAS\n"); printf ("Informe Código Catalogação\n"); scanf ("%d", &biblioteca.biomedicas[0].codigoCatalogacao); printf ("Informe se o livro foi doado (S)ou(N)?\n"); scanf ("%s", &biblioteca.biomedicas[0].doado); printf ("Informe Nome da Obra\n"); scanf ("%s", &biblioteca.biomedicas[0].nomeDaObra); printf ("Informe Nome do Autor\n"); scanf ("%s", &biblioteca.biomedicas[0].nomeAutor); printf ("Informe Editora\n"); scanf ("%s", &biblioteca.biomedicas[0].editora); printf ("Informe Numero de páginas\n"); scanf ("%d", &biblioteca.biomedicas[0].nrPaginas); break; case 2: printf ("CADASTRO LIVROS DE CIENCIAS HUMANAS\n"); printf ("Informe Código Catalogação\n"); scanf ("%d", &biblioteca.humanas[0].codigoCatalogacao); printf ("Informe se o livro foi doado (S)ou(N)?\n"); scanf ("%s", &biblioteca.humanas[0].doado); printf ("Informe Nome da Obra\n"); scanf ("%s", &biblioteca.humanas[0].nomeDaObra); printf ("Informe Nome do Autor\n"); scanf ("%s", &biblioteca.humanas[0].nomeAutor); printf ("Informe Editora\n"); scanf ("%s", &biblioteca.humanas[0].editora); printf ("Informe Numero de páginas\n");} scanf ("%d", &biblioteca.humanas[0].nrPaginas); break; case 3: printf ("CADASTRO LIVROS DE CIENCIAS EXATAS\n"); printf ("Informe Código Catalogação\n"); scanf ("%d", &biblioteca.exatas[0].codigoCatalogacao); printf ("Informe se o livro foi doado (S)ou(N)?\n"); scanf ("%s", &biblioteca.exatas[0].doado); printf ("Informe Nome da Obra\n"); scanf ("%s", &biblioteca.exatas[0].nomeDaObra); printf ("Informe Nome do Autor\n"); scanf ("%s", &biblioteca.exatas[0].nomeAutor); printf ("Informe Editora\n"); scanf ("%s", &biblioteca.exatas[0].editora); printf ("Informe Numero de páginas\n");} scanf ("%d", &biblioteca.exatas[0].nrPaginas); break; default: printf ("opcao invalida"); } case 2: printf ("Area para Consulta\n"); printf (" 1 Consultar\n"); printf ("-1 Sair Consulta\n"); break; int menuConsultar; switch (menuConsultar) { case 1: printf ("Informe Area Conhecimento para Consultar\n"); printf (" 1 Biomedicas\n"); printf (" 2 Humanas\n"); printf (" 3 Exatas\n"); break; int menuConsultarAreaConhecimento; switch (menuConsultarAreaConhecimento){ while (!= -1){ case 1: printf ("Consulta Titulos na Area do Conhecimento Biomedico\n"); printf ("Informe -1 para encerrar a consulta\n"); printf ("Informe Codigo Catalogação\n"); if (biblioteca.biomedicas[0].codigoCatalogacao == TRUE) { printf ("Codigo Catolacao%d: ", biblioteca.biomedicas[0].codigoCatalogacao); print ("Doação%s: ", biblioteca.biomedicas[0].doado); printf ("Nome%s: ", biblioteca.biomedicas[0].nomeDaObra); printf ("Editora%s: ", biblioteca.biomedicas[0].editora); printf ("Nº Paginas%d: ", biblioteca.biomedicas[0].nrPaginas); break; } else printf ("Código não cadastrado"); case 2: printf ("Consulta Titulos na Area do Conhecimento Humanas\n"); printf ("Informe -1 para encerrar a consulta\n"); printf ("Informe Codigo Catalogação\n"); if (biblioteca.humanas[0].codigoCatalogacao == TRUE) { printf ("Codigo Catolacao%d: ", biblioteca.humanas[0].codigoCatalogacao); printf ("Doação%s: ", biblioteca.humanas[0].doado); printf ("Nome%s: ", biblioteca.humanas[0].nomeDaObra); printf ("Editora%s: ", biblioteca.humanas[0].editora); printf ("Nº Paginas%d: ", biblioteca.humanas[0].nrPaginas); break; } else printf ("Código não cadastrado"); case 3: printf ("Consulta Titulos na Area do Conhecimento Exatas\n"); printf ("Informe -1 para encerrar a consulta\n"); printf ("Informe Codigo Catalogação\n"); if (biblioteca.exatas[0].codigoCatalogacao == TRUE) { printf ("Codigo Catolacao%d: ", &biblioteca.exatas[0].codigoCatalogacao); printf ("Doação%s: ", biblioteca.exatas[0].doado); printf ("Nome%s: ", biblioteca.exatas[0].nomeDaObra); printf ("Editora%s: ", biblioteca.exatas[0].editora); printf ("Nº Paginas%d: ", biblioteca.exatas[0].nrPaginas); break; } else printf ("Código não cadastrado"); default: printf ("opcao invalida"); } } case 2: exit (0); default: printf ("opcao invalida"); } case 3: printf ("Area para Exclusao\n"); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OSJunior Postado Março 18, 2011 Denunciar Share Postado Março 18, 2011 A - Definição da estruturatypedef struct { int codigo; char doado[50]; char obra[50]; char autor[50]; char editora[50]; int paginas; } Livro; Você vai utilizá-la assim no Main: Livro exatas[500], humanas[500], biomedicas[500]; B - Consulta Algoritmo Consultar(codigo, área) Se área = Exatas Então Livro = Pesquisar(exatas, codigo) Senão Se área = Humanas Então Livro = Pesquisar(humanas, codigo) Senão Livro = Pesquisar(biomedicas, codigo); Fim-se Se Livro <> NULO Então Exibir(Livro); Senão Exibir("Livro não encontrado!") Fim-se FimPor enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Março 18, 2011 Autor Denunciar Share Postado Março 18, 2011 A - Definição da estruturatypedef struct { int codigo; char doado[50]; char obra[50]; char autor[50]; char editora[50]; int paginas; } Livro; Você vai utilizá-la assim no Main: Livro exatas[500], humanas[500], biomedicas[500]; B - Consulta Algoritmo Consultar(codigo, área) Se área = Exatas Então Livro = Pesquisar(exatas, codigo) Senão Se área = Humanas Então Livro = Pesquisar(humanas, codigo) Senão Livro = Pesquisar(biomedicas, codigo); Fim-se Se Livro <> NULO Então Exibir(Livro); Senão Exibir("Livro não encontrado!") Fim-se FimPor enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D Ahh muito obrigado mesmo....vou realizar as modificações e postar....obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Março 22, 2011 Autor Denunciar Share Postado Março 22, 2011 A - Definição da estruturatypedef struct { int codigo; char doado[50]; char obra[50]; char autor[50]; char editora[50]; int paginas; } Livro; Você vai utilizá-la assim no Main: Livro exatas[500], humanas[500], biomedicas[500]; B - Consulta Algoritmo Consultar(codigo, área) Se área = Exatas Então Livro = Pesquisar(exatas, codigo) Senão Se área = Humanas Então Livro = Pesquisar(humanas, codigo) Senão Livro = Pesquisar(biomedicas, codigo); Fim-se Se Livro <> NULO Então Exibir(Livro); Senão Exibir("Livro não encontrado!") Fim-se FimPor enquanto é isto. Dê uma estudada e uma adptada no seu código e retorne pra vermos como ficou, ok? :D Ahh muito obrigado mesmo....vou realizar as modificações e postar....obrigado!olá...fiz algumas mudanças, mas está dificel de compilar e não sei onde está o erro....abaixo o codigo reformulado:#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>typedef struct {int Codigo;char Doado;char Obra [50];char Autor [50];char Editora [50];int Paginas;}livros;typedef struct {livros Exatas [500];livros Humanas [500];livros Biomedicas [500];} biblio; //**********funções que serão usadas**********//void cadastrar(int cod, int pos);void consultar();int relatorio();int verifica_pos();int verifica_cod(int cod);int verifica_pos();void excluir();//**********inicio programa principal*********//main (){int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro;biblio biblioteca; while (1) {puts ("********* Bliblioteca Municipal *********");puts ("***************** MENU ******************");printf("\n\n");printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa"); scanf("%d", &opcao);system("cls");switch (opcao){ //CADASTRAR case 1:{ puts ("AREA PARA CASTRO"); printf ("Informe Area do conhecimento para cadastramento do Livro"); printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n"); scanf ("%d", &areaConhecimento); //TESTA AREA DO CONHECIMENTO 1 if (areaConhecimento == 1) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); area = biblioteca.Exatas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 2 if (areaConhecimento == 2) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Humanas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 3 if (areaConhecimento == 3) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Biomedicas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } else printf ("não foi possivel realizar cadastro\n"); } break;} //CONSULTARcase 2: { consultar(); break; }case 3: { excluir (); break; }case 4: { printf ("Programa Encerrado"); getchar(); break; } default: printf ("Opcao Invalida"); break; } } }fflush(stdin);getchar();return 0;//FIM FUNÇÃO MAIN//FUNÇÃO CADASTRARvoid cadastrar (int cod, int pos)pos = verifica_pos ();registros [pos].cod=cod;printf ("Informe se o livro foi doado (S)ou(N)?\n");scanf ("%c", &biblioteca.Biomedicas[0].Doado );printf ("Informe Nome da Obra\n");scanf ("%s", biblioteca.Biomedicas[0].Obra);printf ("Informe Nome do Autor\n");scanf ("%s", biblioteca.Biomedicas[0].Autor);printf ("Informe Editora\n");scanf ("%s", biblioteca.Biomedicas[0].Editora);printf ("Informe Numero de páginas\n");scanf ("%d", &biblioteca.Biomedicas[0].Paginas);printf ("Cadastro efetuado com Sucesso");}//FIM FUNÇÃO CADASTRAR//FUNÇÃO CONSULTARvoid consultar ()int cont = 0, cod;puts("AREA PARA CONSULTAS");puts ("Enter com -1 para encerrar a consulta);printf("Entre com o Codigo");scanf ("%d", &cod);while (cod != -1) { if (registros [cont].cod == cod{ if (registros [cont].vazio == 1{ printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); printf("\n"); fflush(stdin); getchar(); return 0; break; } } cont ++; if (cont > 500) printf ("Codigo não encontrado"); } }//FIM FUNÇÃO CONSULTAR //FUNÇÃO VERIFICA POSIÇÃOint verifica_posicao (){int cont =0;while (cont <=500){if (registros [cont].vazio == 0)return cont;cont ++;}return (-1);}//FIM FUNÇÃO VERIFICA POSIÇÃO//FUNÇÃO VERIFICA CODIGOint verifica_cod (int cod){int cont = 0;while (cont <=500){if (registros [cont].cod == cod)return (0);cont ++;}return (-1);}//FIM DA FUNÇÃO VERIFICA CODIGO//FUNÇÃO EXCLUIRvoid excluir(){int cod, cont =0;char resp;printf ("Informe o Codido que deseja excluir");scanf ("%d", &cod);while (cont <=500)}if (registros[cont].cod == cod)if (registros[cont].vazio == 1){printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); getchar(); printf ("Deseja Realmente Excluir? (s) ou (n)?"); if (resp == 'S' || resp == 's') { registros[cont].vazio = 0; printf ("Exclusao realizada com sucesso"); break; } else if (resp == 'N' || resp == 'n') printf ("Exclusao Cancelada\n"); break; } } cont ++; if (cont < 500) printf ("Codigo não encontrado");}fflush(stdin);getchar();return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 22, 2011 Denunciar Share Postado Março 22, 2011 Olá Allan,Tá dificil mesmo de compilar.Primeiro, tentar escrever usando uma identação que facilite inclusive os pedidos de ajuda no forum.Tenta postar seu código entre as tags [ code ] (sem os espaços)...[ /code ] (sem os espaços)Ainda tem coisa pra você consertar no seu código, principalmente de lógica. Se continuar com dúvidas avisa. Abs /* COMENTARIOS: 0) Sua identação não permitiu ver que chaves e parenteses estão no lugar errado ou faltando 1) Na funcao main você faz codigolivro = mas não usa ela em lugar nenhum 2) Mesma coisa pra variavel area 3) Nas demais funções você usa "registros[...]" mas ela não foi definida em lugar nenhum 4) As variaveis biblioteca também não foi definida 5) Faltou fechar aspas no segundo puts da funcao consultar 6) A funcao consultar não pode retornar um valor porque foi definida como void (não pode usar return 0) 7) A funcao excluir tb não pode ter return 0 ou deve mudar o void por int. */ #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef struct { int Codigo; char Doado; char Obra [50]; char Autor [50]; char Editora [50]; int Paginas; }livros; typedef struct { livros Exatas [500]; livros Humanas [500]; livros Biomedicas [500]; } biblio; //**********funções que serão usadas**********// void cadastrar(int cod, int pos); void consultar(); int relatorio(); int verifica_pos(); int verifica_cod(int cod); int verifica_pos(); void excluir(); //**********inicio programa principal*********// int main () { int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro; biblio biblioteca; while (1) { puts ("********* Bliblioteca Municipal *********"); puts ("***************** MENU ******************"); printf("\n\n"); printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa"); scanf("%d", &opcao); system("cls"); switch (opcao) { //CADASTRAR case 1: { puts ("AREA PARA CASTRO"); printf ("Informe Area do conhecimento para cadastramento do Livro"); printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n"); scanf ("%d", &areaConhecimento); //TESTA AREA DO CONHECIMENTO 1 if (areaConhecimento == 1) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); area = biblioteca.Exatas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 2 if (areaConhecimento == 2) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Humanas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 3 if (areaConhecimento == 3) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Biomedicas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } else printf ("não foi possivel realizar cadastro\n"); } break; } //CONSULTAR case 2: { consultar(); break; } case 3: { excluir (); break; } case 4: { printf ("Programa Encerrado"); getchar(); break; } default: printf ("Opcao Invalida"); break; } } fflush(stdin); getchar(); return 0; //FIM FUNÇÃO MAIN } //FUNÇÃO CADASTRAR void cadastrar (int cod, int pos) { pos = verifica_pos (); registros [pos].cod=cod; printf ("Informe se o livro foi doado (S)ou(N)?\n"); scanf ("%c", &biblioteca.Biomedicas[0].Doado ); printf ("Informe Nome da Obra\n"); scanf ("%s", biblioteca.Biomedicas[0].Obra); printf ("Informe Nome do Autor\n"); scanf ("%s", biblioteca.Biomedicas[0].Autor); printf ("Informe Editora\n"); scanf ("%s", biblioteca.Biomedicas[0].Editora); printf ("Informe Numero de páginas\n"); scanf ("%d", &biblioteca.Biomedicas[0].Paginas); printf ("Cadastro efetuado com Sucesso"); }//FIM FUNÇÃO CADASTRAR //FUNÇÃO CONSULTAR void consultar () { int cont = 0, cod; puts("AREA PARA CONSULTAS"); puts ("Enter com -1 para encerrar a consulta"); printf("Entre com o Codigo"); scanf ("%d", &cod); while (cod != -1) { if (registros [cont].cod == cod) { if (registros [cont].vazio == 1) { printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); printf("\n"); fflush(stdin); getchar(); break; } } cont ++; if (cont > 500) printf ("Codigo não encontrado"); } }//FIM FUNÇÃO CONSULTAR //FUNÇÃO VERIFICA POSIÇÃO int verifica_posicao () { int cont =0; while (cont <=500) { if (registros [cont].vazio == 0) return cont; cont ++; } return (-1); }//FIM FUNÇÃO VERIFICA POSIÇÃO //FUNÇÃO VERIFICA CODIGO int verifica_cod (int cod) { int cont = 0; while (cont <=500) { if (registros [cont].cod == cod) return (0); cont ++; } return (-1); }//FIM DA FUNÇÃO VERIFICA CODIGO //FUNÇÃO EXCLUIR void excluir() { int cod, cont =0; char resp; printf ("Informe o Codido que deseja excluir"); scanf ("%d", &cod); while (cont <=500) { if (registros[cont].cod == cod) if (registros[cont].vazio == 1) { printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); getchar(); printf ("Deseja Realmente Excluir? (s) ou (n)?"); if (resp == 'S' || resp == 's') { registros[cont].vazio = 0; printf ("Exclusao realizada com sucesso"); break; } else if (resp == 'N' || resp == 'n') printf ("Exclusao Cancelada\n"); break; } cont ++; if (cont < 500) printf ("Codigo não encontrado"); } fflush(stdin); getchar(); return; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Março 22, 2011 Autor Denunciar Share Postado Março 22, 2011 Olá Allan,Tá dificil mesmo de compilar.Primeiro, tentar escrever usando uma identação que facilite inclusive os pedidos de ajuda no forum.Tenta postar seu código entre as tags [ code ] (sem os espaços)...[ /code ] (sem os espaços)Ainda tem coisa pra você consertar no seu código, principalmente de lógica. Se continuar com dúvidas avisa. Abs /* COMENTARIOS: 0) Sua identação não permitiu ver que chaves e parenteses estão no lugar errado ou faltando 1) Na funcao main você faz codigolivro = mas não usa ela em lugar nenhum 2) Mesma coisa pra variavel area 3) Nas demais funções você usa "registros[...]" mas ela não foi definida em lugar nenhum 4) As variaveis biblioteca também não foi definida 5) Faltou fechar aspas no segundo puts da funcao consultar 6) A funcao consultar não pode retornar um valor porque foi definida como void (não pode usar return 0) 7) A funcao excluir tb não pode ter return 0 ou deve mudar o void por int. */ #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef struct { int Codigo; char Doado; char Obra [50]; char Autor [50]; char Editora [50]; int Paginas; }livros; typedef struct { livros Exatas [500]; livros Humanas [500]; livros Biomedicas [500]; } biblio; //**********funções que serão usadas**********// void cadastrar(int cod, int pos); void consultar(); int relatorio(); int verifica_pos(); int verifica_cod(int cod); int verifica_pos(); void excluir(); //**********inicio programa principal*********// int main () { int opcao=0, posicao, codaux, retorno, areaConhecimento, area,codigoLivro; biblio biblioteca; while (1) { puts ("********* Bliblioteca Municipal *********"); puts ("***************** MENU ******************"); printf("\n\n"); printf("1: Cadastrar\n2: Consultar\n3: Excluir\n4: Encerrar Programa"); scanf("%d", &opcao); system("cls"); switch (opcao) { //CADASTRAR case 1: { puts ("AREA PARA CASTRO"); printf ("Informe Area do conhecimento para cadastramento do Livro"); printf ("1: Exatas\n2: Humanas\n3: Biomedicas\n"); scanf ("%d", &areaConhecimento); //TESTA AREA DO CONHECIMENTO 1 if (areaConhecimento == 1) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); area = biblioteca.Exatas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 2 if (areaConhecimento == 2) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Humanas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } } else printf ("não foi possivel realizar cadastro\n"); //TESTA AREA DO CONHECIMENTO 3 if (areaConhecimento == 3) { posicao = verifica_pos(); if(posicao != -1 ) { printf ("Informe o código do livro para cadastrar (somente numeros)"); scanf ("%d", &codaux); fflush (stdin); retorno = verifica_cod (codaux); if (retorno == 1) { cadastrar (codaux, posicao); codigoLivro = biblioteca.Biomedicas[0].Codigo; } else printf ("\ncodigo já cadastrado"); } else printf ("não foi possivel realizar cadastro\n"); } break; } //CONSULTAR case 2: { consultar(); break; } case 3: { excluir (); break; } case 4: { printf ("Programa Encerrado"); getchar(); break; } default: printf ("Opcao Invalida"); break; } } fflush(stdin); getchar(); return 0; //FIM FUNÇÃO MAIN } //FUNÇÃO CADASTRAR void cadastrar (int cod, int pos) { pos = verifica_pos (); registros [pos].cod=cod; printf ("Informe se o livro foi doado (S)ou(N)?\n"); scanf ("%c", &biblioteca.Biomedicas[0].Doado ); printf ("Informe Nome da Obra\n"); scanf ("%s", biblioteca.Biomedicas[0].Obra); printf ("Informe Nome do Autor\n"); scanf ("%s", biblioteca.Biomedicas[0].Autor); printf ("Informe Editora\n"); scanf ("%s", biblioteca.Biomedicas[0].Editora); printf ("Informe Numero de páginas\n"); scanf ("%d", &biblioteca.Biomedicas[0].Paginas); printf ("Cadastro efetuado com Sucesso"); }//FIM FUNÇÃO CADASTRAR //FUNÇÃO CONSULTAR void consultar () { int cont = 0, cod; puts("AREA PARA CONSULTAS"); puts ("Enter com -1 para encerrar a consulta"); printf("Entre com o Codigo"); scanf ("%d", &cod); while (cod != -1) { if (registros [cont].cod == cod) { if (registros [cont].vazio == 1) { printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); printf("\n"); fflush(stdin); getchar(); break; } } cont ++; if (cont > 500) printf ("Codigo não encontrado"); } }//FIM FUNÇÃO CONSULTAR //FUNÇÃO VERIFICA POSIÇÃO int verifica_posicao () { int cont =0; while (cont <=500) { if (registros [cont].vazio == 0) return cont; cont ++; } return (-1); }//FIM FUNÇÃO VERIFICA POSIÇÃO //FUNÇÃO VERIFICA CODIGO int verifica_cod (int cod) { int cont = 0; while (cont <=500) { if (registros [cont].cod == cod) return (0); cont ++; } return (-1); }//FIM DA FUNÇÃO VERIFICA CODIGO //FUNÇÃO EXCLUIR void excluir() { int cod, cont =0; char resp; printf ("Informe o Codido que deseja excluir"); scanf ("%d", &cod); while (cont <=500) { if (registros[cont].cod == cod) if (registros[cont].vazio == 1) { printf ("\nLivro doado %s ", registros[cont].Doado); printf ("\nNome Livro %s ", registros[cont].Obra); printf ("\nNome Autor %s ", registros[cont].Autor); printf ("\nNome Editora %s ", registros[cont].Editora); printf ("\nNumero de Paginas %s ", registros[cont].Paginas); getchar(); printf ("Deseja Realmente Excluir? (s) ou (n)?"); if (resp == 'S' || resp == 's') { registros[cont].vazio = 0; printf ("Exclusao realizada com sucesso"); break; } else if (resp == 'N' || resp == 'n') printf ("Exclusao Cancelada\n"); break; } cont ++; if (cont < 500) printf ("Codigo não encontrado"); } fflush(stdin); getchar(); return; }obrigado mesmo pela ajuda e pelas dicas, desculpa minha inexperiencia e minha bagunça no código...é que estou começando neste semestre a cadeira de estrutura de dados e só tive 4 aulas.mas vou arrumar e seguir as orientações de voces qu é muito importante pra mim.obrigado. logo em seguida eu posto o código melhorado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 22, 2011 Denunciar Share Postado Março 22, 2011 Não esquenta não...todo mundo tem um começo.O importante é continuar tentando.você viu as correções no código?Abs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Março 23, 2011 Autor Denunciar Share Postado Março 23, 2011 olá...precisei trabalhar muito em cima do codigo e arrumar bastante coisa...tentei "limpar" e fazer mais enxuto...mas ainda sim deu trabalho e não compila...[codigo]#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>#define TAM_LISTA 500typedef struct {int Codigo;char Doado;char Obra [50];char Autor [50];char Editora [50];int Paginas;}livros;typedef struct {livros Exatas [500];livros Humanas [500];livros Biomedicas [500];} biblio; //função cadastrarvoid cadastrar (){ printf("CADASTRAR LIVROS\n\n"); printf("informe codigo: "); fflush(stdin); scanf("%d", &livros.Codigo[0]); printf("o livro foi doado s/n ?"); fflush(stdin); scanf("%c", &livros.Doado[0]); printf("informe nome do livro: "); fflush(stdin); scanf("%c", livros.Obra[0]); printf("informe nome do autor: "); fflush(stdin); scanf("%c", &livros.Autor[0]); printf("informe editora: "); fflush(stdin); scanf("%c", &livros.Editora[0]); printf("informe numero de paginas: "); fflush(stdin); scanf("%d", &livros.Paginas[0]); printf("CADASTRO REALIZADO COM SUCESSO"); fflush(stdin); getchar();}//função exibirvoid exibir (){ printf("CONSULTA DE LIVROS"); printf("codigo: %d\n", livros.Codigo[0]); printf("doado: %c\n", livros.Doado[0]); printf("nome do livro: %c\n", livros.Obra[0]); printf("nome do autor: %c\n", livros.Autor[0]); printf("editora: %c\n", livros.Editora[0]); printf("numero de paginas: %d\n", livros.Paginas[0]);} //função mainint main(){ biblio Biblioteca; int i, op, op1; memset(&Biblioteca, 0x00, sizeof(biblio)); while(1) { system("cls"); printf("MENU\n\n"); printf("1:cadastrar\n2:consultar\n3:Excluir\n4:encerra programa\n"); printf("digite sua opção"); fflush(stdin); scanf("%d", &op); switch (op) { case 1:{ system("cls"); printf("NOVO CADASTRO"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao"); fflush(stdin); scanf("%d", &op1); switch (op1) { case 1: for(i=0; i<TAM_LISTA; i++) if (! Biblioteca.Biomedicas.Codigo) break; cadastrar(&Biblioteca.Biomedicas; break; case 2: for(i=0; i<TAM_LISTA; i++) if (! Biblioteca.Humanas.Codigo) break cadastrar (&Biblioteca.Humanas); break; case 3: for(i=0; i<TAM_LISTA; i++) if (! Biblioteca.Exatas.Codigo) break; cadastrar (&Biblioteca.Exatas); break; } } break; case 2:{ int nCodigo; sytem("cls"); printf("NOVO CONSULTA"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao"); fflush(stdin); scanf("%d", &op1); if (op1 >=1 || op2 <=3) { fflush(stdin); printf("digite codigo"); scanf("%d", nCodigo); } switch (op1) { case 1: for(i=0; i<TAM_LISTA; i++) if (Biblioteca.Biomedicas.Codigo == nCodigo) { exibir (&Biblioteca.Biomedicas); break; } else printf("\n\ncodigo não cadastrado"); break; case 2: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Humanas.Codigo == nCodigo) { exibir (&Biblioteca.Humanas); break; } else printf("\n\ncodigo não cadastrado"); break; case 3: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Exatas.Codigo == nCodigo) { exibir (&Biblioteca.Exatas); break; } else printf("\n\ncodigo não cadastrado"); break; } } case 3:{ int nCodigo; system ("cls"); printf("NOVO EXCLUSAO"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao"); fflush(stdin); scanf("%d", &op1); if (op1 >=1 || op2 <=3) { fflush(stdin); printf("\n\ndigite o codigo"); scanf("%d", &nCodigo); } switch (op1) { case 1: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Biomedicas.Codigo == nCodigo) { memset(Biblioteca.Biomedicas, 0x00, sizeof(livros)); break; } case 2: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Humanas.Codigo == nCodigo) { memset(Biblioteca.Humanas, 0x00, sizeof(livros)); break; } case 3: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Exatas.Codigo == nCodigo) { memset(Biblioteca.Exatas, 0x00, sizeof(livros)); break; } break; } } case 4: { printf ("encerrando sistema"); exit (0); break; } default: { printf ("Opcao invalida"); break; } } break; return 0;} [/codigo]ajudas e dicas são bem vindas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 24, 2011 Denunciar Share Postado Março 24, 2011 Olá AlanTinha muita coisa errada no seu código, mas agora compila e executa.Tem que melhorar um pouco o fluxo, mas tá bom.Só peço que você tente melhorar sua identação pra facilitar inclusive sua vizualização.você confunde um pouco o uso de %c com %s. Cuidado!!!!Mudei o typedef de livros pra LIVROS pra aproveitar os lugares onde você já tinha digitado livros.Codigo e etc.você não pode indexar livros.codigo[0] porque ele não é um vetor, o mesmo vale pra outros pontos onde você fez isso.As funções cadastrar e exibir deveriam receber um ponteiro para o registro passado nas chamadas.Faltou colocar uma pausa em alguns pontos pra que o usuário possa ver o que foi exibido na tela.Sugiro que você compare linha a linha os códigos pra ver as diferença e em caso de dúvidas posta ai que a gente te ajuda.Bons estudos.Abs#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define TAM_LISTA 500 typedef struct { int Codigo; char Doado; char Obra [50]; char Autor [50]; char Editora [50]; int Paginas; }LIVROS; typedef struct { LIVROS Exatas [TAM_LISTA + 1]; LIVROS Humanas [TAM_LISTA + 1]; LIVROS Biomedicas [TAM_LISTA + 1]; } biblio; //função cadastrar void cadastrar(LIVROS *livros) { printf("CADASTRAR LIVROS\n\n"); printf("informe codigo: "); fflush(stdin); scanf("%d", &livros->Codigo); printf("o livro foi doado s/n ? "); fflush(stdin); scanf("%c", &livros->Doado); printf("informe nome do livro: "); fflush(stdin); scanf("%s", livros->Obra); printf("informe nome do autor: "); fflush(stdin); scanf("%s", &livros->Autor); printf("informe editora: "); fflush(stdin); scanf("%s", &livros->Editora); printf("informe numero de paginas: "); fflush(stdin); scanf("%d", &livros->Paginas); printf("CADASTRO REALIZADO COM SUCESSO"); fflush(stdin); getchar(); } //função exibir void exibir (LIVROS *livros) { printf("CONSULTA DE LIVROS\n\n"); printf("codigo: %d\n", livros->Codigo); printf("doado: %c\n", livros->Doado); printf("nome do livro: %s\n", livros->Obra); printf("nome do autor: %s\n", livros->Autor); printf("editora: %s\n", livros->Editora); printf("numero de paginas: %d\n", livros->Paginas); fflush(stdin); getch(); } //função main int main() { biblio Biblioteca; int i, op, op1; memset(&Biblioteca, 0x00, sizeof(biblio)); while(1) { system("cls"); printf("MENU\n\n"); printf("1:cadastrar\n2:consultar\n3:Excluir\n4:encerra programa\n\n"); printf("digite sua opcao: "); fflush(stdin); scanf("%d", &op); switch (op) { case 1: { system("cls"); printf("NOVO CADASTRO\n\n"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao: "); fflush(stdin); scanf("%d", &op1); switch (op1) { case 1: for(i=0; i<TAM_LISTA; i++) if (!Biblioteca.Biomedicas[i].Codigo) break; cadastrar(&Biblioteca.Biomedicas[i]); break; case 2: for(i=0; i<TAM_LISTA; i++) if (! Biblioteca.Humanas[i].Codigo) break; cadastrar (&Biblioteca.Humanas[i]); break; case 3: for(i=0; i<TAM_LISTA; i++) if (! Biblioteca.Exatas[i].Codigo) break; cadastrar (&Biblioteca.Exatas[i]); break; } } break; case 2: { int nCodigo; system("cls"); printf("NOVO CONSULTA\n\n"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao: "); fflush(stdin); scanf("%d", &op1); if (op1 >=1 || op1 <=3) { fflush(stdin); printf("digite codigo: "); scanf("%d", &nCodigo); } switch (op1) { case 1: for(i=0; i<TAM_LISTA; i++) if (Biblioteca.Biomedicas[i].Codigo == nCodigo) { exibir (&Biblioteca.Biomedicas[i]); break; } else { printf("\n\ncodigo não cadastrado"); fflush(stdin); getch(); } break; case 2: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Humanas[i].Codigo == nCodigo) { exibir (&Biblioteca.Humanas[i]); break; } else { printf("\n\ncodigo não cadastrado"); fflush(stdin); getch(); } break; case 3: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Exatas[i].Codigo == nCodigo) { exibir (&Biblioteca.Exatas[i]); break; } else { printf("\n\ncodigo não cadastrado"); fflush(stdin); getch(); } break; } } case 3: { int nCodigo; system ("cls"); printf("NOVO EXCLUSAO\n\n"); printf("1:biomedicas\n2:humanas\n3:exatas\n4:fim\n\n"); printf("digite sua opcao: "); fflush(stdin); scanf("%d", &op1); if (op1 >=1 || op1 <=3) { fflush(stdin); printf("\n\ndigite o codigo "); scanf("%d", &nCodigo); } switch (op1) { case 1: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Biomedicas[i].Codigo == nCodigo) { memset(&Biblioteca.Biomedicas[i], 0x00, sizeof(LIVROS)); break; } case 2: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Humanas[i].Codigo == nCodigo) { memset(&Biblioteca.Humanas[i], 0x00, sizeof(LIVROS)); break; } case 3: for (i=0; i<TAM_LISTA; i++) if (Biblioteca.Exatas[i].Codigo == nCodigo) { memset(&Biblioteca.Exatas[i], 0x00, sizeof(LIVROS)); break; } break; } } case 4: { printf ("encerrando sistema"); exit (0); break; } default: { printf ("Opcao invalida"); break; } } } return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Março 29, 2011 Autor Denunciar Share Postado Março 29, 2011 poxa vida...não sei como agradecer a atenção de voces, aprendi muito...e realmente está um pouco confuso pra mim C++, mas fazendo, errando e observando os erros eu sei que aprendo.Obrigado e Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Abril 1, 2011 Autor Denunciar Share Postado Abril 1, 2011 olá pessoal...estou com problemas com ponteiros...preciso compilar um programa que receba 10 posições e mostre o valor deles de na ordem inversa que foram informados na tela. mas tudo usando ponteiros. fiz mas não compila.mostrar o vetor na ordem inversa, ou seja, do elemento 9 ao 0.*/#include <stdio.h> #include <stdlib.h> #define TAM 10 int main() { int vetor[TAM], i; int *p = &vetor[0]; printf("Preencha o Vetor\n"); for(i=0;i<TAM;i++){ printf("Informe Valor: "); scanf("%d",p++); } printf("\n"); p = &vetor[10]; printf("Valores Informados:\n"); for(i=10;i<=10;i){ printf("%d,", *p); p--; } fflush(stdin); getchar(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alan Correa Postado Abril 5, 2011 Autor Denunciar Share Postado Abril 5, 2011 olá pessoal....consegui compilar corretamente conforme o exercício, vou disponibilizar o codigo que eu mesmo fiz corrigido...tentando...tentando..tentando...rsrsrs[codigo]#include <stdio.h>#include <stdlib.h>#define TAM 10int main(){ int vetor[TAM], i; int *p = &vetor[0]; printf("Preencha o Vetor\n"); for(i=0;i<TAM;i++){ printf("Informe Valor: "); scanf("%d",p++); } printf("\n"); p = &vetor[i-1]; printf("Odem inversa\n"); for(i=TAM;i>0;i--) printf("%d\n ", *p--); fflush(stdin); getchar(); return 0; }[/codigo] Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Alan Correa
Olá pessoal, sou iniciante em Estrutura de Dados....existe um sistema que preciso criar:
1. Uma biblioteca possui obras de ciências exatas, ciências humanas e
ciências biomédicas, totalizando 1.500 volumes, 500 de cada área. O
proprietário resolveu informatizá-la e, para tal, agrupou as informações
sobre cada livro do seguinte modo:
Código de catalogação: __________ Doado:______________
Nome da obra: _____________________________________
Nome do autor: ____________________________________
Editora: _______________Nro de páginas:_______________
a) Construa um algoritmo que declare tal estrutura e que reúna todas as
informações de todas as obras em três vetores distintos para cada área.
B) Elabore um trecho de algoritmo que, utilizando como premissa o que foi
feito no item anterior, realize uma consulta à informações. O usuário
fornecerá o código da obra e sua área. Existindo tal livro, informa seus
campos. Do contrário, envia mensagem de aviso.
c) A consulta repete-se até que o usuário introduza código finalizador com
o valor -1. Escreva um trecho de algoritmo que liste todas as obras de
cada área que representem livros doados.
d) Idem ao item anterior, porém, obras cujos livros sejam comprados e cujo
número de páginas se encontre entre 100 e 300.
e) Construa um trecho de algoritmo que efetue a exclusão de algum livro; o
usuário fornecerá o código e a área. Lembres-se de que somente pode
ser excluído um livro existente.
Eu já fiz o menu geral, o menu para cadastrare o menu de consulta...mas acredito que tem erros ...voces podem me ajudar? segue o que eu desenvolvi:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define TRUE 1
#define FALSE 0
typedef struct {
int codigoCatalogacao [10];
char doado [50];
char nomeDaObra [50];
char nomeAutor [50];
char editora [50];
int nrPaginas;
}livros;
typedef struct {
livros exatas [500];
livros humanas [500];
livros biomedicas [500];
} biblioteca;
main ()
{
biblioteca varBiblioteca;
while (1){
printf ("Menu\n");
printf ("1- Novo Cadastro\n");
printf ("2-Consulta\n");
printf ("3-Exclusão\n");
printf ("4-Sair do Programa\n");
int menuPrincipal;
switch (menuPrincipal){
case 1:
printf ("Informe Area do Conhecimento Para Cadastramento \n");
printf ("1-Biomedicas\n");
printf ("2-Humanas\n");
printf ("3-Exatas\n");
break;
int menuCadastrarAreaConehcimento;
switch (menuCadastrarAreaConehcimento) {
case 1:
printf ("CADASTRO LIVROS DE CIENCIAS BIOMETRICAS\n");
printf ("Informe Código Catalogação\n");
scanf ("%d", &biblioteca.biomedicas[0].codigoCatalogacao);
printf ("Informe se o livro foi doado (S)ou(N)?\n");
scanf ("%s", &biblioteca.biomedicas[0].doado);
printf ("Informe Nome da Obra\n");
scanf ("%s", &biblioteca.biomedicas[0].nomeDaObra);
printf ("Informe Nome do Autor\n");
scanf ("%s", &biblioteca.biomedicas[0].nomeAutor);
printf ("Informe Editora\n");
scanf ("%s", &biblioteca.biomedicas[0].editora);
printf ("Informe Numero de páginas\n");
scanf ("%d", &biblioteca.biomedicas[0].nrPaginas);
break;
case 2:
printf ("CADASTRO LIVROS DE CIENCIAS HUMANAS\n");
printf ("Informe Código Catalogação\n");
scanf ("%d", &biblioteca.humanas[0].codigoCatalogacao);
printf ("Informe se o livro foi doado (S)ou(N)?\n");
scanf ("%s", &biblioteca.humanas[0].doado);
printf ("Informe Nome da Obra\n");
scanf ("%s", &biblioteca.humanas[0].nomeDaObra);
printf ("Informe Nome do Autor\n");
scanf ("%s", &biblioteca.humanas[0].nomeAutor);
printf ("Informe Editora\n");
scanf ("%s", &biblioteca.humanas[0].editora);
printf ("Informe Numero de páginas\n");}
scanf ("%d", &biblioteca.humanas[0].nrPaginas);
break;
case 3:
printf ("CADASTRO LIVROS DE CIENCIAS EXATAS\n");
printf ("Informe Código Catalogação\n");
scanf ("%d", &biblioteca.exatas[0].codigoCatalogacao);
printf ("Informe se o livro foi doado (S)ou(N)?\n");
scanf ("%s", &biblioteca.exatas[0].doado);
printf ("Informe Nome da Obra\n");
scanf ("%s", &biblioteca.exatas[0].nomeDaObra);
printf ("Informe Nome do Autor\n");
scanf ("%s", &biblioteca.exatas[0].nomeAutor);
printf ("Informe Editora\n");
scanf ("%s", &biblioteca.exatas[0].editora);
printf ("Informe Numero de páginas\n");}
scanf ("%d", &biblioteca.exatas[0].nrPaginas);
break;
default:
printf ("opcao invalida");
}
case 2:
printf ("Area para Consulta\n");
printf (" 1 Consultar\n");
printf ("-1 Sair Consulta\n");
break;
int menuConsultar;
switch (menuConsultar) {
case 1:
printf ("Informe Area Conhecimento para Consultar\n");
printf (" 1 Biomedicas\n");
printf (" 2 Humanas\n");
printf (" 3 Exatas\n");
break;
int menuConsultarAreaConhecimento;
switch (menuConsultarAreaConhecimento){
while (!= -1){
case 1:
printf ("Consulta Titulos na Area do Conhecimento Biomedico\n");
printf ("Informe -1 para encerrar a consulta\n");
printf ("Informe Codigo Catalogação\n");
if (biblioteca.biomedicas[0].codigoCatalogacao == TRUE)
{
printf ("Codigo Catolacao%d: ", biblioteca.biomedicas[0].codigoCatalogacao);
print ("Doação%s: ", biblioteca.biomedicas[0].doado);
printf ("Nome%s: ", biblioteca.biomedicas[0].nomeDaObra);
printf ("Editora%s: ", biblioteca.biomedicas[0].editora);
printf ("Nº Paginas%d: ", biblioteca.biomedicas[0].nrPaginas);
break;
}
else
printf ("Código não cadastrado");
case 2:
printf ("Consulta Titulos na Area do Conhecimento Humanas\n");
printf ("Informe -1 para encerrar a consulta\n");
printf ("Informe Codigo Catalogação\n");
if (biblioteca.humanas[0].codigoCatalogacao == TRUE)
{
printf ("Codigo Catolacao%d: ", biblioteca.humanas[0].codigoCatalogacao);
printf ("Doação%s: ", biblioteca.humanas[0].doado);
printf ("Nome%s: ", biblioteca.humanas[0].nomeDaObra);
printf ("Editora%s: ", biblioteca.humanas[0].editora);
printf ("Nº Paginas%d: ", biblioteca.humanas[0].nrPaginas);
break;
}
else
printf ("Código não cadastrado");
case 3:
printf ("Consulta Titulos na Area do Conhecimento Exatas\n");
printf ("Informe -1 para encerrar a consulta\n");
printf ("Informe Codigo Catalogação\n");
if (biblioteca.exatas[0].codigoCatalogacao == TRUE)
{
printf ("Codigo Catolacao%d: ", &biblioteca.exatas[0].codigoCatalogacao);
printf ("Doação%s: ", biblioteca.exatas[0].doado);
printf ("Nome%s: ", biblioteca.exatas[0].nomeDaObra);
printf ("Editora%s: ", biblioteca.exatas[0].editora);
printf ("Nº Paginas%d: ", biblioteca.exatas[0].nrPaginas);
break;
}
else
printf ("Código não cadastrado");
default:
printf ("opcao invalida");
}
}
case 2:
exit (0);
default:
printf ("opcao invalida");
}
case 3:
printf ("Area para Exclusao\n");
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.