Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
looc26kmv
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 17
#1

Ввод символов в линейный список - C++

17.05.2014, 06:25. Просмотров 340. Ответов 1
Метки нет (Все метки)

Народ,наткнулся на этом форуме вот на этот код,нужна помощь,нужно,чтоб вместо числовых данных,вводить в список можно было символьные,меняю на char,программа просто закрывается,не знаю что делать((
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
#include <iostream>
#include <windows.h>
using namespace std;
 
class Node
{
public:
    int number;
    Node* next;
};
 
void russia(const char*);
 
void main()
{
    Node* head = NULL;
    Node* lastPtr = NULL;
    short action = -1;
    while (1)
    {
        russia("1. Добавить Элемент\n");
        russia("2. Просмотр Списка\n");
        russia("3. Поиск Элемента\n");
        russia("4. Удалить Элемент\n");
        russia("5. Удалить Элемент По Выбору\n");
        russia("0. Выход\n\n");
        russia("Ваш Выбор: ");
        cin>>action;
        if (action == 0)
        {
            system("CLS");
            break;
        }
 
        if (action == 1)
        {
            system("CLS");
            Node* ptr = new Node;
            int numb = -1;
            russia("Введите Число: ");
            cin>>numb;
            ptr->number = numb;
            ptr->next = NULL;
            if (head == 0)
            {
                head = ptr;
                lastPtr = ptr;
                system("CLS");
                continue;
            }
            lastPtr->next = ptr;
            lastPtr = ptr;
            system("CLS");
            continue;
        }
 
        if (action == 2)
        {
            Node* ptr = NULL;
            system("CLS");
            if (head == NULL)
            {
                russia("\t!!! СПИСОК ПУСТ !!!\n\n");
                system("PAUSE");
                system("CLS");
                continue;
            }
            russia("* * * * * СПИСОК * * * * *\n\n");
            ptr = head;
            while (1)
            {
                cout<<ptr->number<<" ";
                if (ptr->next == 0)
                    break;
                ptr = ptr->next;
            }
            cout<<"\n\n";
            system("PAUSE");
            system("CLS");
            continue;
        }
 
        if (action == 3)
        {
            Node* ptr = NULL;
            int key = -1;
            system("CLS");
            if (head == NULL)
            {
                russia("\t!!! СПИСОК ПУСТ !!!\n\n");
                system("PAUSE");
                system("CLS");
                continue;
            }
            russia("Введите Элемент Для Поиска: ");
            cin>>key;
            ptr = head;
            while (1)
            {
                if (key == ptr->number)
                {
                    russia("\n\t!!! ЭЛЕМЕНТ НАЙДЕН !!!\n");
                    break;
                }
                if (ptr->next == NULL)
                {
                    russia("\n\t!!! ЭЛЕМЕНТ НЕ НАЙДЕН !!!\n");
                    break;
                }
                ptr = ptr->next;
            }
            system("PAUSE");
            system("CLS");
            continue;
        }
 
        if (action == 4)
        {
            system("CLS");
            Node* ptrDelete = NULL;         
            if (head == NULL)
            {
                russia("\t!!! СПИСОК ПУСТ !!!\n\n");
                system("PAUSE");
                system("CLS");
                continue;
            }
            if (head->next == NULL)
            {
                head = NULL;
                delete head;
                continue;
            }
            ptrDelete = head;
            head = ptrDelete->next;
            delete ptrDelete;
            continue;
        }
 
        if (action == 5)
        {
            system("CLS");
            Node* ptrPrev = NULL;
            Node* ptrDelete = NULL;
            int key = -1;
            if (head == NULL)
            {
                russia("\t!!! СПИСОК ПУСТ !!!\n\n");
                system("PAUSE");
                system("CLS");
                continue;
            }
            russia("Введите Элемент Для Удаления: ");
            cin>>key;
            ptrDelete = head;
            if (ptrDelete->number == key)
            {
                head = ptrDelete->next;
                delete ptrDelete;
                system("CLS");
                continue;
            }
            while (1)
            {
                if (key == ptrDelete->number)
                {
                    ptrPrev->next = ptrDelete->next;
                    delete ptrDelete;
                    break;
                }
                if (ptrDelete->next == 0)
                {
                    russia("\n\t!!! ЭЛЕМЕНТ НЕ НАЙДЕН !!!\n");
                    system("PAUSE");
                    break;
                }
                ptrPrev = ptrDelete;
                ptrDelete = ptrDelete->next;
            }
            system("CLS");
            continue;
        }
 
        if (action > 5)
        {
            system("CLS");
            russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
            system("PAUSE");
            system("CLS");
            continue;
        }
    }   
}
 
void russia(const char* rus)
{
    char word[100];
    CharToOem(rus, word);
    cout<<word;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 06:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод символов в линейный список (C++):

Вставить в линейный список перед элементом с заданным значением другой линейный список - C++
Как можно вставить в линейный список перед элементом с заданным значением другой линейный список? Как один элемент вставлять, я знаю, а вот...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке - C++
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.

Ввод рандомных чисел в линейный массив. - C++
Добрый день, программисты. У меня возник небольшой вопрос. Как можно в линейный массив ввести рандомные числа. Вот мой код: #include...

Ограничение на ввод символов (разрешить ввод только цифр) - C++
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить ввод символов (разрешить ввод только...

Линейный список - C++
Текст помощи организовано как линейный список. каждая компонента текста помощи содержит пояснение к этому термину. Составить программу...

Линейный список - C++
Нужно написать курсовую по с++, не используя стандартных методов. Подскажите пожалуйста, с чего начать? Текст допомоги для деякої...

1
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,670
Завершенные тесты: 1
17.05.2014, 10:02 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от looc26kmv Посмотреть сообщение
меняю на char
Надо хранить только один символ?
Если несколько, то надо менять на массив символов, например
C++
1
char number[100];
И не забывать при копировании использовать strcpy() вместо равно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 10:02
Привет! Вот еще темы с ответами:

Линейный список - C++
Есть такая детская считалка: n детей стали в круг. Начиная отсчет от первого, убирают каждого k-го ребёнка, замыкая круг после каждого...

Линейный односвязный список - C++
void Read() { Node *cur = head; ifstream if_read; if_read.open(&quot;BDname.txt&quot;); if (!if_read){ cout &lt;&lt; &quot;нет BDname.txt&quot; &lt;&lt;...

Односвязный линейный список - C++
Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста помощи содержит термин (слово) и...

Линейный двусвязный список - C++
Тип элемента списка определен так: struct llist{ int val; llist *next,*pred;}; //Создаётся статический список из 3 эл-тов ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru