|
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 10
|
|
Добавление элемента в список14.03.2020, 02:44. Показов 547. Ответов 1
Создать двусвязный линейный список, содержащую информацию о горожанине фамилия И.О., дата рождения, адрес. Посчитать возраст.
В программе должны быть реализованные функции: - Добавление элемента в список. - Изменение элемента в списке (по выбранному параметру). - Взаимообмен узлов списка осуществляется путем переустановки указателей. - Удаление элемента в списке (по выбранному параметру). -Вывод элемента списка на экран. - Вывод всего списка на экран. - Подсчет элементов в списке. Добавлено через 2 часа 13 минут Нашла пример, по которому и делала данное задание. Половина пунктов выполнена. Но ошибка появляется тогда, когда я хочу добавить следующий элемент - программа останавливается. Кликните здесь для просмотра всего текста
#define _CRT_SEcurrentE_NO_WARNINGS
#include <iostream> #include <conio.h> #include <stdio.h> #include <string> #include <Windows.h> using namespace std; #define QUEUE struct gorod QUEUE { int num, year; string fio,adres; QUEUE* next; QUEUE* prev; }; QUEUE* head = NULL; QUEUE* last = NULL; QUEUE* current = NULL; QUEUE* temp = NULL; QUEUE* newList = NULL; void add_name(int num, int year, string fio, string adres) { if (head != NULL) { newList = new QUEUE; newList->num = num; newList->year = year; newList->fio = fio; newList->adres = adres; newList->next = NULL; newList->prev = current; current->next = newList; last = newList; current = newList; } else { newList = new QUEUE; newList->num = num; newList->year = year; newList->fio = fio; newList->adres = adres; head = newList; newList->next = NULL; newList->prev = NULL; current = newList; last = head; } } void delete_unit(int num) { newList = head; while (newList) { if (newList->num == num) { if (newList == head) { head = head->next; if (head) head->prev = NULL; else last = NULL; if (current == newList) current = head; delete newList; cout << "Complete!" << endl; _getch(); break; } if (newList == last) { last = last->prev; if (last) last->next = NULL; if (current == newList) current = last; delete newList; cout << "Complete!" << endl; _getch(); break; } else { cout << "Not find!" << endl; _getch; } newList->prev->next = newList->next; newList->next->prev = newList->prev; current = newList->prev; delete newList; break; } newList = newList->next; } } void sort() { gorod* cur = head; while (cur->next) { if ((cur->num) > (cur->next->num)) { cur = cur->next; sort(); } } } void show_list(gorod* head) { QUEUE* curr = nullptr, * prev = nullptr; gorod* p = head; while (p) { cout << endl; cout << "----------------------------------" << endl; cout << "Год рождения: " << p->year << endl; cout << "Адрес: " << p->adres << endl; cout << "ФИО: " << p->fio << endl; p = p->next; } } void show_list_n(int num) { gorod* info = head; while (info) { if (info->num == num) { cout << "----------------------------------" << endl; cout << "----------------------------------" << endl; cout << "Год рождения: " << info->year << endl; cout << "Адрес: " << info->adres << endl; cout << "ФИО: " << info->fio << endl; } info = info->next; } cout << "\n"; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int enter_num, num, key, n = 0, year, year_fin; string fio, adres; while (true) { system("cls"); cout << "1. Ввести данные\n"; cout << "2. Удаление элемента по номеру\n"; cout << "3. Вывод всего списка\n"; cout << "4. Вывод по заданному номеру\n"; cout << "5. Возраст\n"; cout << "6. Выход\n"; key = _getch(); switch (key) { case '1': { system("cls"); cout << "Введите номер горожанина: "; cin >> enter_num; cout << "Введите ФИО: "; cin >> fio; cout << "Введите год Рождения: "; cin >> year; cout << "Введите адрес: "; cin >> adres; add_name(enter_num,year,fio,adres); n++; if (n == 0) { } else if (n > 0) { sort(); } break; } case '2': { system("cls"); cout << "Введите номер для удаления: "; cin >> enter_num; delete_unit(enter_num); if (n <= 0) n = 0; else n--; break; } case '3': { system("cls"); cout << "------ Заявки ------" << endl; show_list(head); _getch(); break; } case '4': { cout << "Введите номер для поиска: "; cin >> num; system("cls"); cout << "------ Заявки по номеру " << num << " -----" << endl; show_list_n(num); _getch(); break; } case '5': { cout << "Введите номер для поиска: "; cin >> num; system("cls"); cout << "Возраст горожанина под номером " << num << " = "<< 2020-year << endl; cin >> year_fin; } case '6': { exit(0); break; } default: { cout << "Error\n"; _getch(); break; } if (key == 0) break; } } return 0; }
0
|
|
| 14.03.2020, 02:44 | |
|
Ответы с готовыми решениями:
1
Добавление элемента в список Добавление элемента в список Добавление элемента в двусвязный список |
|
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
|
|
| 14.03.2020, 08:47 | |
|
CyberEnot, Для начала отключите void sort(), причешите код, потом разбирайтесь с остальным
0
|
|
| 14.03.2020, 08:47 | |
|
Помогаю со студенческими работами здесь
2
Не работает добавление элемента в список Добавление элемента в список по номеру Добавление в список нового элемента
Добавление элемента в двусвязный список Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|