Вы находитесь на странице: 1из 6

struct TELEPHONES {

char brand[50];
char model[50];
int year;
char color[20];
float price;
};

#define MAX_SIZE 100 // Максимальный размер массива

struct TELEPHONES phones[MAX_SIZE]; // Объявление массива


структур
int count = 0; // Количество элементов в массиве (изначально равно 0)

void addPhone() {
if (count >= MAX_SIZE) {
printf("Массив структур TELEPHONES уже заполнен.\n");
return;
}

printf("Введите марку телефона: ");


scanf("%s", phones[count].brand);

printf("Введите модель телефона: ");


scanf("%s", phones[count].model);

printf("Введите год выпуска телефона: ");


scanf("%d", &phones[count].year);

printf("Введите цвет телефона: ");


scanf("%s", phones[count].color);

printf("Введите цену телефона: ");


scanf("%f", &phones[count].price);

count++; // Увеличиваем количество элементов в массиве на 1


}

void searchPhone() {
char model[50];
int i;

printf("Введите модель телефона, который хотите найти: ");


scanf("%s", model);
for (i = 0; i < count; i++) {
if (strcmp(phones[i].model, model) == 0) { // Сравниваем строки
printf("Марка: %s\n", phones[i].brand);
printf("Модель: %s\n", phones[i].model);
printf("Год выпуска: %d\n", phones[i].year);
printf("Цвет: %s\n", phones[i].color);
printf("Цена: %.2f\n", phones[i].price);
return;
}
}

printf("Телефон с моделью '%s' не найден.\n", model);


}

void sortPhones(int field) {


int i, j;
struct TELEPHONES temp;

for (i = 0; i < count - 1; i++) {


for (j = i + 1; j < count; j++) {
switch (field) {
case 1: // Сортировка по марке
if (strcmp(phones[i].brand, phones[j].brand) > 0) {
temp = phones[i];
phones[i] = phones[j];
phones[j] = temp;
}
break;
case 2: // Сортировка по году выпуска
if (phones[i].year > phones[j].year) {
temp = phones[i];
phones[i] = phones[j];
phones[j] = temp
}
break;
case 3: // Сортировка по цене
if (phones[i].price > phones[j].price) {
temp = phones[i];
phones[i] = phones[j];
phones[j] = temp;
}
break;
default:
printf("Ошибка: некорректный выбор поля для сортировки.\
n");
return;
}
}
}

printf("Массив отсортирован по полю %d.\n", field);

void editPhone() {
char model[50];
int i;
printf("Введите модель телефона, который хотите отредактировать: ");
scanf("%s", model);

for (i = 0; i < count; i++) {


if (strcmp(phones[i].model, model) == 0) { // Сравниваем строки
printf("Введите новую марку телефона: ");
scanf("%s", phones[i].brand);

printf("Введите новую модель телефона: ");


scanf("%s", phones[i].model);

printf("Введите новый год выпуска телефона: ");


scanf("%d", &phones[i].year);

printf("Введите новый цвет телефона: ");


scanf("%s", phones[i].color);

printf("Введите новую цену телефона: ");


scanf("%f", &phones[i].price);

printf("Телефон с моделью '%s' успешно отредактирован.\n",


model);
return;
}
}

printf("Телефон с моделью '%s' не найден.\n", model);

void addNewPhone() {
if (count >= MAX_SIZE) {
printf("Массив структур TELEPHONES уже заполнен.\n");
return;
}
printf("Введите марку телефона: ");
scanf("%s", phones[count].brand);
printf("Введите модель телефона: ");
scanf("%s", phones[count].model);

printf("Введите год выпуска телефона: ");


scanf("%d", &phones[count].year);

printf("Введите цвет телефона: ");


scanf("%s", phones[count].color);

printf("Введите цену телефона: ");


scanf("%f", &phones[count].price);

count++; // Увеличиваем количество элементов в массиве на 1


printf("Новый телефон успешно добавлен в массив.\n");
}
void deletePhone() {
char model[50];
int i, j;
printf("Введите модель телефона, который хотите удалить: ");
scanf("%s", model);

for (i = 0; i < count; i++) {


if (strcmp(phones[i].model, model) == 0) { // Сравниваем строки
for (j = i; j < count - 1; j++) {
phones[j] = phones[j + 1]; // Сдвигаем элементы
}

count--; // Уменьшаем количество элементов в массиве на 1


printf("Телефон с моделью '%s' успешно удален из массива.\n",
model);
return;
}
}

printf("Телефон с моделью '%s' не найден.\n", model);


}
void displayPhones() {
int i;
if (count == 0) {
printf("Массив структур TELEPHONES пуст.\n");
return;
}

printf("Марка\tМодель\tГод выпуска\tЦвет\tЦена\n");
for (i = 0; i < count; i++) {
printf("%s\t%s\t%d\t\t%s\t%.2f\n", phones[i].brand, phones[i].model,
phones[i].year, phones[i].color, phones[i].price);
}
}

void displayMenu() {
printf("\n\nМеню:\n");
printf("1. Ввод данных в массив структур TELEPHONES\n");
printf("2. Поиск телефона по модели\n");
printf("3. Сортировка массива по выбранному полю\n");
printf("4. Редактирование элементов массива\n");
printf("5. Добавление нового телефона в массив\n");
printf("6. Удаление телефона из массива\n");
printf("7. Вывод всех элементов массива на экран\n");
printf("8. Выход из программы\n");
}
int main() {
int choice;
do {
displayMenu();
printf("\nВведите номер выбранной опции: ");
scanf("%d", &choice);

switch (choice) {
case 1:
inputPhones();
break;
case 2:
searchPhone();
break;
case 3:
sortPhones();
break;
case 4:
editPhone();
break;
case 5:
addNewPhone();
break;
case 6:
deletePhone();
break;
case 7:
displayPhones();
break;
case 8:
printf("Выход из программы.\n");
break;
default:
printf("Ошибка: некорректный выбор опции.\n");
break;
}
} while (choice != 8);

return 0;

Вам также может понравиться