Нужна помощь для создания блок-схемы

#include <stdlib.h>
#include <string.h>

struct Artwork {
   char title[100];
   char author[100];
   int year;
   double price;
   char direction[50];
   struct Artwork* next;
   struct Artwork* prev;
};
struct Artwork* front = NULL;
struct Artwork* rear = NULL;
void enqueue_rear() {
   struct Artwork* newArtwork = (struct Artwork*)malloc(sizeof(struct Artwork));
   printf("Введіть назву твору: ");
   scanf("%s", newArtwork->title);
   printf("Введіть автора: ");
   scanf("%s", newArtwork->author);
   printf("Введіть рік створення: ");
   scanf("%d", &newArtwork->year);
   printf("Введіть балансову ціну: ");
   scanf("%lf", &newArtwork->price);
   printf("Введіть художній напрям: ");
   scanf("%s", newArtwork->direction);
   newArtwork->next = NULL;
   newArtwork->prev = rear;
   if (rear == NULL) {
       front = newArtwork;
   } else {
       rear->next = newArtwork;
   }
   rear = newArtwork;
}
void enqueue_front() {
   struct Artwork* newArtwork = (struct Artwork*)malloc(sizeof(struct Artwork));
   printf("Введіть назву твору: ");
   scanf("%s", newArtwork->title);
   printf("Введіть автора: ");
   scanf("%s", newArtwork->author);
   printf("Введіть рік створення: ");
   scanf("%d", &newArtwork->year);
   printf("Введіть балансову ціну: ");
   scanf("%lf", &newArtwork->price);
   printf("Введіть художній напрям: ");
   scanf("%s", newArtwork->direction);
   newArtwork->next = front;
   newArtwork->prev = NULL;
   if (front == NULL) {
       rear = newArtwork;
   } else {
       front->prev = newArtwork;
   }
   front = newArtwork;
}
void dequeue_rear() {
   if (rear == NULL) {
       printf("Черга пуста.\n");
   } else {
       struct Artwork* temp = rear;
       rear = rear->prev;
       if (rear == NULL) {
           front = NULL;
       } else {
           rear->next = NULL;
       }
       free(temp);
       printf("Твір успішно видалено з кінця черги.\n");
   }
}
void dequeue_front() {
   if (front == NULL) {
       printf("Черга пуста.\n");
   } else {
       struct Artwork* temp = front;
       front = front->next;
       if (front == NULL) {
           rear = NULL;
       } else {
           front->prev = NULL;
       }
       free(temp);
       printf("Твір успішно видалено з початку черги.\n");
   }
}
void display() {
   printf("\n%-25s | %-25s | %-5s | %-10s | %-15s\n", "Назва", "Автор", "Рік", "Ціна", "Напрям");
   printf("------------------------------------------------------------------\n");
   struct Artwork* temp = front;
   while (temp != NULL) {
       printf("%-25s | %-25s | %-5d | %-10.2lf | %-15s\n", temp->title, temp->author, temp->year, temp->price, temp->direction);
       temp = temp->next;
   }
}
int main() {
   int choice;
   while (1) {
       printf("\nМеню:\n");
       printf("1. Додати твір мистецтва в кінець черги\n");
       printf("2. Додати твір мистецтва на початок черги\n");
       printf("3. Видалити твір мистецтва з кінця черги\n");
       printf("4. Видалити твір мистецтва з початку черги\n");
       printf("5. Вивести всі дані у вигляді таблиці\n");
       printf("6. Вихід\n");
       printf("Ваш вибір: ");
       scanf("%d", &choice);
       switch (choice) {
           case 1:
               enqueue_rear();
               break;
           case 2:
               enqueue_front();
               break;
           case 3:
               dequeue_rear();
               break;
           case 4:
               dequeue_front();
               break;
           case 5:
               display();
               break;
           case 6:
               exit(0);
           default:
               printf("Невірний вибір. Спробуйте ще раз.\n");
       }
   }
   return 0;
}

Ответы (0 шт):