Olá, tudo bem com você?
Eu posso te dar uma ideia em termos de linguagem C(que é a linguagem que conheço), mas a logica para outras linguagens vai ser paralela.
Então vamos lá.
Você quer armazenar livros, e quer ter acesso a esses livros separadamente. Cada um desses livros tem três caraterísticas próprias. Cada um tem 4 caraterísticas: Titulo, ator e data de publicação e ainda tem o emprestador atual.
A primeira coisa que você tem que entender é que o livro tem um conjunto de dados dentro de si (interprete como uma caixinha de dados). Repare que esses dados são distintos entre si.(carácteres e números).
Portanto para salvar esses livros de forma organizada será necessário implementar uma estrutura de dados, e que essa estrutura salve dados distintos entre si. (Na linguagem C, isso seria uma struct). A estrutura vai ser formada por caixinhas (livros), em que cada livro tem um conjunto de 4 dados.
Para atribuir as funcionalidades de: visualizar, retirar e doar e devolver , penso em uma tela de Menu que conforme a escolha do usuário, direciona para cada funcionalidade. E cada funcionalidade deve direcionar para uma função diferente. A seguir a logica das funcionalidades:
Visualizar: para visualizar os livros, me parece bom abrir as caixinhas uma de cada vez e expondo seus dados correspondentes(fazer isso automaticamente). para isso precisara percorrer a estrutura de dados, seja ela qual for, conforme os nomes que você deu para cada livro. Para aqueles livros que tenham um emprestador, solicite uma entrada, caso queira devolver ou não. Já para aqueles livros que estão sem emprestador, solicitar o retorno de, se quer, emprestar o livro.
Adicionar: Após sair da tela de visualização, será necessário a abertura de uma nova caixinha para esse novo livro. Em seguida solicitado os dados do livro e esses dados serão previamente salvos no correspondente livro.(lembre-se: deve ser solicitado o nome do emprestador).(lembre-se, também, que após isso será necessário atualizar a estrutura de livros)
Retirar: após sair da tela de visualização, será necessário acessar o livro escolhido e então solicitar a sua retirada.(lembre-se que após isso será necessário atualizar a estrutura de livros).
Fique ciente que para excluir ou visualizar ,certo livro, você precisara abrir a caixinha onde este livro esta, por isso salve cada livro com um nome distinto, dentro da estrutura de dados.
Devolver: Penso que a melhor maneira é que tenha uma funcionalidade na tela da visualização para aqueles livros que tenham um emprestador. Então você implementara os mesmos passos da funcionalidade de "adicionar", porem a caixinha vai ser pré-existente.(lembre-se que após isso será necessário atualizar a estrutura de livros)
Por fim, para que as mudanças feitas sejam atualizadas acho uma boa ideia criar funcionalidade em forma de funcoes que ao final redirecionem para o MENU.
Valeu? Qualquer duvida tmj!