0 / 0 / 0
Регистрация: 09.03.2022
Сообщений: 15
1

Двусвязный список через функции

23.05.2022, 15:48. Показов 143. Ответов 0

Author24 — интернет-сервис помощи студентам
Текст помощи для некоторой программы организован в виде двусвязного списка.
Каждая компонента текста помощи содержит термин (слово) и текст, содержащий пояснения к этому термину. Количество строк текста, относящихся к одному термину, составляет от одной до пяти.
Написать программу, которая обеспечивает:
1.Начальное формирование текста помощи;
2.Вывод текста помощи;
3.Вывод поясняющего текста для заданного термина.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.

Моя проблема: в 20 строке ошибка C2664 невозможно преобразовать аргумент 1 из "std::string [40]" в "_Elem *". А также не совсем понимаю правильно ли организован вывод только определенного термина и пояснения.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include<iostream>
#include<string>
#include <windows.h>
using namespace std;
struct text
{
    char termin[30];
    string explanation[5][40]; //5 строк текста длиной в 40 
    text* next;
    text* pred;
};
text* first, * last, * temp;
void add()     // добавление записи
{
    cout << "Введите термин" << endl;
    cin >> temp->termin;
    cout << "Введите пояснение" << endl;
    for (int i = 0; i < 5; i++)
    {
        cin.getline(temp->explanation[i], sizeof(temp->explanation[i]));
    }
 
    temp->next = new text;
    temp->next->pred = temp;
    temp = temp->next;
    last = temp;
 
}
void prosmotr()   //просмотр всех терминов со всеми пояснениями
{
    temp = first;
    while (temp != last)
    {
        cout << "Термин " << temp->termin << endl;
        cout << "Пояснение к термину ";
        for (int i = 0; i < 5; i++)
        {
            cout << endl;
            cout << temp->explanation[i] << "\n";
        }
        cout << "________________________________________________" << endl;
        temp = temp->next;
    }
}
void prosmotr1() //просмотр только одного термина с пояснением 
{
    char q[30];
    cout << "Введите термин: ";
    cin >> q;
 
    temp = first;
    while (temp != last)
    {
 
        if (strcmp(q, temp->termin) == 0)
        {
 
            cout << "Термин: " << temp->termin << endl;
            cout << "Пояснение к термину: " << first->explanation << "\n" << endl;
            break;
        }
        else
        {
            temp = temp->next;
        }
 
    }
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n;
    temp = new text;
    first = temp;
    first->pred = NULL;
m:cout << "1. Добавить термин; 2.Просмотр всех; 3.Просмотр определенного термина;" << endl;
    cin >> n;
    switch (n) {
    case 1:add(); break;
    case 2:prosmotr(); break;
    case 3:prosmotr1(); break;
    }
    goto m;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2022, 15:48
Ответы с готовыми решениями:

Множество через двусвязный список.
Необходимо реализовать класс множество через двусвязный список. Но проблема у меня стоит в том,...

Отсортировать двусвязный список через указатели
До последнего пытался решить полностью задачу сам, но никак не могу отсортировать элементы в...

Двусвязный список через абстрактный класс
Здравствуйте, пожалуйста помогите со следующим кодом. Застрял на добавлении элементов в двусвязный...

Вычисление факториала через двусвязный список
Здравствуйте! Помогите, пожалуйста, с решением задачи: вычислить факториал 100!, используя...

Реализация класса множество через двусвязный список.
дали задание реализовать класс множество через двусвязный список. Сам класс список мне...

0
23.05.2022, 15:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2022, 15:48
Помогаю со студенческими работами здесь

Двусвязный список и функции по роботе с ним
нужно создать двусвязный список и реализировать функции по роботе над етим списком. 1. очистить...

Реализовать алгоритм простой вставки через двусвязный список
Здравствуйте ! Нужно реализовать алгоритм простой вставки через двусвязный список Не понимаю как

Преобразовать линейный двусвязный список в кольцевой двусвязный
Приветствую. Помогите разобраться как преобразовать линейный двусвязный список в кольцевой...

Переделать двусвязный список в двусвязный кольцевой
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это запрограммировать? и...

Реализовать указанные функции-члены для пользовательского класса "Кольцевой двусвязный список"
Сообственно сабж. У списка два закрытых поля: tail-это узел следующий за &quot;последним&quot;(условно,ибо...

Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список
спасайте Сформировать список из 10 работников, используя динамическую структуру данных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru