From 0c80e3372f742e4471ef6101f883d6ffcf397949 Mon Sep 17 00:00:00 2001 From: ertz4 Date: Thu, 23 Jan 2020 13:57:15 +0100 Subject: [PATCH] Filling + Printing Lists enabled Added options for pushing, appending, inserting elements and for printing lists; Added MenuLib Dependency --- Demonstration/Demonstration.vcxproj | 3 ++ Demonstration/main.c | 71 +++++++++++++++++++++++++++-- 2 files changed, 69 insertions(+), 5 deletions(-) diff --git a/Demonstration/Demonstration.vcxproj b/Demonstration/Demonstration.vcxproj index 82f759f..6f29ba4 100644 --- a/Demonstration/Demonstration.vcxproj +++ b/Demonstration/Demonstration.vcxproj @@ -145,6 +145,9 @@ + + {5ada9f67-f267-4ff6-ab61-e73c21f6ee36} + {43c12dd0-611c-43ee-82f4-f25b33eed30b} diff --git a/Demonstration/main.c b/Demonstration/main.c index 684ac31..e547578 100644 --- a/Demonstration/main.c +++ b/Demonstration/main.c @@ -3,6 +3,7 @@ #include #include "../Implementation/linked_list.h" +#include "../../MenuLib/menu.h" typedef struct { char* title; @@ -40,12 +41,72 @@ void book_print(const void* data) printf("Book[title=%s,author=%s,year=%d]\n", book->title, book->author, book->year); } +void show_push(Node** list) +{ + char title[101], author[101]; + int year; + + printf("Enter title of Book: "); + scanf_s(" %[^\n]s", title, 101); + printf("Enter author of Book: "); + scanf_s(" %[^\n]s", author, 101); + printf("Enter year of Release: "); + scanf_s(" %d", &year); + + list_push(list, book_create(title, author, year)); +} + +void show_append(Node** list) +{ + char title[101], author[101]; + int year; + + printf("Enter title of Book: "); + scanf_s(" %[^\n]s", title, 101); + printf("Enter author of Book: "); + scanf_s(" %[^\n]s", author, 101); + printf("Enter year of Release: "); + scanf_s(" %d", &year); + + list_append(list, book_create(title, author, year)); +} + +void show_insert(Node** list) +{ + char title[101], author[101]; + int year, index; + + printf("Enter title of Book: "); + scanf_s(" %[^\n]s", title, 101); + printf("Enter author of Book: "); + scanf_s(" %[^\n]s", author, 101); + printf("Enter year of Release: "); + scanf_s(" %d", &year); + printf("Enter place after which book is inserted: "); + scanf_s(" %d", &index); + + list_insert(list_get(list, index), book_create(title, author, year)); +} + +void show_print(Node** list) +{ + list_print(*list, &book_print); +} + void main(void) { Node* list = NULL; - list_push(&list, book_create("Java ist auch eine Insel", "Christian Ullenboom", 2011)); - list_push(&list, book_create("C/C++", "Kaiser, Guddat", 2014)); - list_print(list, &book_print); - list_remove(list_get(list, 1)); - list_print(list, &book_print); + + struct MenuItem items[] = { + {"Push item", '1', (void*)&show_push, &list}, + {"Append item", '2', (void*)&show_append, &list}, + {"Insert item", '3', (void*)&show_insert, &list}, + {"Print item", '4', (void*)&show_print, &list}, + {"BLANK", NULL, NULL, NULL}, + {"Quit", 'q', (void*)&exit, NULL} + }; + struct MenuPage pages[] = { + {items, sizeof(items) / sizeof(struct MenuItem), "Linked List Demo", true, true, &SOLID} + }; + show_menu(pages, sizeof(pages) / sizeof(struct MenuPage), true); } \ No newline at end of file