final
This commit is contained in:
parent
b402f7565a
commit
d7843cedbc
@ -3,6 +3,7 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// Добавление вагона в конец списка
|
||||
struct car* add_car(struct car* first, const char* target) {
|
||||
struct car* new_car = (struct car*)malloc(sizeof(struct car));
|
||||
if (!new_car) {
|
||||
@ -26,20 +27,23 @@ struct car* add_car(struct car* first, const char* target) {
|
||||
return first;
|
||||
}
|
||||
|
||||
// Вывод содержимого поезда
|
||||
void print_train(struct car* first) {
|
||||
struct car* current = first;
|
||||
|
||||
if (current == NULL) {
|
||||
printf("Vlak je prazdny.\n");
|
||||
printf("The train is empty.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Train composition:\n");
|
||||
while (current != NULL) {
|
||||
printf("%s\n", current->value);
|
||||
current = current->next;
|
||||
}
|
||||
}
|
||||
|
||||
// Удаление всех вагонов, освобождение памяти
|
||||
void cancel_train(struct car* first) {
|
||||
struct car* current = first;
|
||||
|
||||
@ -50,6 +54,7 @@ void cancel_train(struct car* first) {
|
||||
}
|
||||
}
|
||||
|
||||
// Удаление вагонов с заданным направлением
|
||||
struct car* clear_train(struct car* first, const char* target) {
|
||||
struct car* current = first;
|
||||
struct car* prev = NULL;
|
||||
|
49
cv4/main.c
49
cv4/main.c
@ -1,22 +1,51 @@
|
||||
#include "a_train.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main() {
|
||||
struct car* train = NULL;
|
||||
char input[SIZE];
|
||||
int option;
|
||||
|
||||
train = add_car(train, "Bratislava");
|
||||
train = add_car(train, "Kosice");
|
||||
train = add_car(train, "Zilina");
|
||||
do {
|
||||
printf("\n--- Train Management ---\n");
|
||||
printf("1. Add a car to the train\n");
|
||||
printf("2. Print the train\n");
|
||||
printf("3. Remove cars to Levoča\n");
|
||||
printf("4. Exit\n");
|
||||
printf("Select an option: ");
|
||||
scanf("%d", &option);
|
||||
getchar(); // Считываем символ новой строки после ввода числа
|
||||
|
||||
printf("Vsetky stanice vo vlaku:\n");
|
||||
print_train(train);
|
||||
switch (option) {
|
||||
case 1:
|
||||
printf("Enter the destination: ");
|
||||
fgets(input, SIZE, stdin);
|
||||
input[strcspn(input, "\n")] = '\0'; // Удаляем символ новой строки
|
||||
train = add_car(train, input);
|
||||
printf("Car added to the train.\n");
|
||||
break;
|
||||
|
||||
printf("\nVyradujeme stanicu 'Kosice':\n");
|
||||
train = clear_train(train, "Kosice");
|
||||
print_train(train);
|
||||
case 2:
|
||||
print_train(train);
|
||||
break;
|
||||
|
||||
printf("\nZrusenie celeho vlaku:\n");
|
||||
cancel_train(train);
|
||||
case 3:
|
||||
train = clear_train(train, "Levoča");
|
||||
printf("All cars to Levoča have been removed.\n");
|
||||
break;
|
||||
|
||||
case 4:
|
||||
printf("Exiting and releasing memory.\n");
|
||||
cancel_train(train);
|
||||
train = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Invalid option. Please try again.\n");
|
||||
}
|
||||
} while (option != 4);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user