Separated book struct into separate header
This commit is contained in:
parent
55977d065a
commit
6c4fb1ef14
@ -142,6 +142,7 @@
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="book.c" />
|
||||
<ClCompile Include="main.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@ -152,6 +153,9 @@
|
||||
<Project>{43c12dd0-611c-43ee-82f4-f25b33eed30b}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="book.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@ -18,5 +18,13 @@
|
||||
<ClCompile Include="main.c">
|
||||
<Filter>Quelldateien</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="book.c">
|
||||
<Filter>Quelldateien</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="book.h">
|
||||
<Filter>Headerdateien</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
35
Demonstration/book.c
Normal file
35
Demonstration/book.c
Normal file
@ -0,0 +1,35 @@
|
||||
#include "book.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
Book* book_create(const char* title, const char* author, int year)
|
||||
{
|
||||
// initialize book
|
||||
Book* book = calloc(1, sizeof(Book));
|
||||
if (!book)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// initialize title and author
|
||||
book->title = calloc(strlen(title), sizeof(char));
|
||||
book->author = calloc(strlen(author), sizeof(char));
|
||||
if (!book->title || !book->author)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy(book->title, title);
|
||||
strcpy(book->author, author);
|
||||
book->year = year;
|
||||
|
||||
return book;
|
||||
}
|
||||
|
||||
void book_print(const void* data)
|
||||
{
|
||||
const Book* book = (Book*)data;
|
||||
printf("Book[title=%s,author=%s,year=%d]\n", book->title, book->author, book->year);
|
||||
}
|
11
Demonstration/book.h
Normal file
11
Demonstration/book.h
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
typedef struct {
|
||||
char* title;
|
||||
char* author;
|
||||
int year;
|
||||
} Book;
|
||||
|
||||
Book* book_create(const char* title, const char* author, int year);
|
||||
|
||||
void book_print(const void* data);
|
@ -1,45 +1,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../Implementation/linked_list.h"
|
||||
#include "../../MenuLib/menu.h"
|
||||
|
||||
typedef struct {
|
||||
char* title;
|
||||
char* author;
|
||||
int year;
|
||||
} Book;
|
||||
|
||||
Book* book_create(const char* title, const char* author, int year)
|
||||
{
|
||||
// initialize book
|
||||
Book* book = calloc(1, sizeof(Book));
|
||||
if (!book)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// initialize title and author
|
||||
book->title = calloc(strlen(title), sizeof(char));
|
||||
book->author = calloc(strlen(author), sizeof(char));
|
||||
if (!book->title || !book->author)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy(book->title, title);
|
||||
strcpy(book->author, author);
|
||||
book->year = year;
|
||||
|
||||
return book;
|
||||
}
|
||||
|
||||
void book_print(const void* data)
|
||||
{
|
||||
const Book* book = (Book*)data;
|
||||
printf("Book[title=%s,author=%s,year=%d]\n", book->title, book->author, book->year);
|
||||
}
|
||||
#include "book.h"
|
||||
|
||||
void show_push(Node** list)
|
||||
{
|
||||
@ -85,7 +49,7 @@ void show_insert(Node** list)
|
||||
printf("Enter place after which book is inserted: ");
|
||||
scanf_s(" %d", &index);
|
||||
|
||||
list_insert(list_get(list, index), book_create(title, author, year));
|
||||
list_insert(list_get(*list, index), book_create(title, author, year));
|
||||
}
|
||||
|
||||
void show_print(Node** list)
|
||||
@ -98,7 +62,7 @@ void show_get(Node** list)
|
||||
int index;
|
||||
printf("Enter place: ");
|
||||
scanf_s(" %d", &index);
|
||||
list_print(list_get(list,index), &book_print);
|
||||
list_print(list_get(*list,index), &book_print);
|
||||
}
|
||||
|
||||
void show_remove(Node** list)
|
||||
@ -106,7 +70,7 @@ void show_remove(Node** list)
|
||||
int index;
|
||||
printf("Enter place: ");
|
||||
scanf_s(" %d", &index);
|
||||
list_remove(list_get(list, index));
|
||||
list_remove(list_get(*list, index));
|
||||
}
|
||||
|
||||
|
||||
@ -121,7 +85,7 @@ void main(void)
|
||||
{"Print item", '4', (void*)&show_print, &list},
|
||||
{"Look at item by index", '5', (void*)&show_get, &list},
|
||||
{"Remove item by index", '6', (void*)&show_remove, &list},
|
||||
{"BLANK", NULL, NULL, NULL},
|
||||
{"BLANK", ' ', NULL, NULL},
|
||||
{"Quit", 'q', (void*)&exit, NULL}
|
||||
};
|
||||
struct MenuPage pages[] = {
|
||||
|
Reference in New Issue
Block a user