Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Utils.h"
- #include "LinkedListFuncs.h"
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include "FileOps.h"
- char* printBooks(void* book) {
- char* ret = (char*)malloc(sizeof(char) * 1000);
- *ret = NULL;
- strcat(ret, "Author -> ");
- strcat(ret, ((Book*)(book))->author);
- strcat(ret, " // Title -> ");
- strcat(ret, ((Book*)(book))->title);
- strcat(ret, " // Availability -> ");
- if (((Book*)(book))->state) {
- strcat(ret, "Available!");
- }
- else {
- strcat(ret, "Not available!");
- }
- return ret;
- }
- char* printMembers(void* member) {
- char* ret = (char*)malloc(sizeof(char) * 1000);
- *ret = NULL;
- int numberSize = 0;
- int number = ((Member*)(member))->memNumber;
- while (number != 0) {
- number /= 10;
- numberSize++;
- }
- char* aux = (char*)malloc(sizeof(char) * numberSize);
- strcat(ret, "Name -> ");
- strcat(ret, ((Member*)(member))->name);
- strcat(ret, " // Number -> ");
- sprintf(aux, "%d", ((Member*)(member))->memNumber);
- strcat(ret, aux);
- strcat(ret, " // Book requested -> ");
- if (((Member*)(member))->solicited != NULL) {
- strcat(ret, (((Member*)(member))->solicited)->title);
- }
- else {
- strcat(ret, "This member has no books in his possession!");
- }
- return ret;
- }
- void modifyBooks(List* bookList) {
- int op;
- do {
- printf("1 - Add\n"
- "2 - Remove\n"
- "0 - Exit\n");
- scanf("%d", &op);
- switch (op) {
- case 1:
- //Qnd este case acaba o registo que contem os dados do pData adicionado
- //é alterado e so o valor do book->state é que se mantem
- //os valores de book->title e book->author desaparem e sao substituidos
- //por lixo como se pode ver ao dar debug com a janela memory1 aberta
- Status x;
- do {
- x = addBook(bookList);
- } while (x == ERROR);
- break;
- }
- } while (op != 0);
- }
- Status addBook(List* bookList) {
- int aux;
- Book b = Book();
- Book* ptr = &b;
- while ((getchar()) != '\n') {}
- printf("Book name: \n");
- scanf("%[^\n]", ptr->title);
- while ((getchar()) != '\n') {}
- printf("Book author: \n");
- scanf("%[^\n]", ptr->author);
- while ((getchar()) != '\n') {}
- do {
- printf("Book availability(0/1): \n");
- scanf("%d", &aux);
- } while (aux != 0 && aux != 1);
- (aux == 1) ? ptr->state = true : ptr->state = false;
- return InsertEnd(bookList, ptr);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement