Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.02.2020
Сообщений: 56

Почему-то не работает функция поиска в программе

21.05.2021, 13:47. Показов 543. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После ввода данных и ввода тройки, программа тупо вылетает. Какая-то проблема в функции Search()
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
#include "iostream"
#include <string>
#include <conio.h>
 
using namespace std;
 
class Student {
    string Name;
    string Sername;
    string Patronymic;
    int NumberOfGroup;
public:
    Student *Next;  //указатель на следующий элемент списка
    Student *Pred;  //указатель на предыдущий элемент списка
    Student(string Sername, string Name, string Patronymic, int NumberOfGroup);
    string get_Sername();
    ~Student() {};
    friend class DoubleList;
};
 
class DoubleList {
    Student *First; //указатель на первый элемент списка
    Student *Last;  //указатель на последний элемент списка
public:
    DoubleList();
    ~DoubleList() {
        while (First != NULL) {
            Student *tmp = First;
            First = First->Next;
            delete tmp;
        }
        First = Last = NULL;
    };
    void Add(string Sername, string Name, string Patronymic, int NumberOfGroup);
    void Print();
    void Search();
};
 
Student::Student(string Sername, string Name, string Patronymic, int NumberOfGroup) {
    this->Sername = Sername;
    this->Name = Name;
    this->Patronymic = Patronymic;
    this->NumberOfGroup = NumberOfGroup;
}
 
string Student::get_Sername() {
    return Sername;
}
 
DoubleList::DoubleList() {
    First = NULL;
    Last = NULL;
}
 
void DoubleList::Add(string Sername, string Name, string Patronymic, int NumberOfGroup) {
    Student *tmp = new Student(Sername, Name, Patronymic, NumberOfGroup);  //создаем элемент который добавим в список
    if (First == NULL) {
        tmp->Pred == NULL;
        tmp->Next == NULL;
        First = tmp;
    }
    else
        Last->Next = tmp;
    //копируем данные о студенте
    tmp->Sername = Sername;
    tmp->Name = Name;
    tmp->Patronymic = Patronymic;
    tmp->NumberOfGroup = NumberOfGroup;
    tmp->Next = NULL;
    tmp->Pred = Last;
    Last = tmp;
}
 
void DoubleList::Print() {
    Student *tmp = First;
    if (tmp = NULL)
        cout << "The list of students is empty!";
    else {
        while (tmp != NULL) {
            cout << tmp->Sername << "\t" << tmp->Name << "\t" << tmp->Patronymic << "\t" << tmp->NumberOfGroup << "\t" << "\n";
            tmp = tmp->Next;
        }
    }
}
 
void DoubleList::Search() {
    Student *tmp = First;
    string _Sername;
    if (tmp = NULL)
        cout << "The list of students is empty!";
    else {
        _Sername = tmp->Sername;
        while (tmp != NULL) {
            if (_Sername == tmp->Next->Sername)
                cout << "\n" << tmp->Sername << "\t" << tmp->Name << "\t" << tmp->Patronymic << "\t" << tmp->NumberOfGroup;
            tmp = tmp->Next;
        }
    }
}
 
int main() {
    string Sername;
    string Name;
    string Patronymic;
    int NumberOfGroup;
    unsigned short int Choose = 0;
    int CountOfStudents = 0;
    DoubleList Students[100];
 
    while (Choose != 4) {
        cout << "Menu: \n"
            << "1. Input information about student \n"
            << "2. Show the list of the students \n"
            << "3. Find namesakes \n"
            << "4. Exit \n"
            << "Input number menu: ";
        cin >> Choose;
 
        switch (Choose) {
        case 1: {
            cout << "Input sername of the student: ";
            cin >> Sername;
            cout << "Input name of the student: ";
            cin >> Name;
            cout << "Input patronymic of the student: ";
            cin >> Patronymic;
            cout << "Input number of group of the student: ";
            cin >> NumberOfGroup;
            Students[CountOfStudents].Add(Sername, Name, Patronymic, NumberOfGroup);
            CountOfStudents++;
        } break;
 
        case 2: {
            for (int i = 0; i < CountOfStudents; i++)
                Students[i].Print();
        } break;
 
        case 3: {
            for (int i = 0; i < CountOfStudents; i++)
                Students[i].Search();
        } break;
 
        case 4: break;
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2021, 13:47
Ответы с готовыми решениями:

Функция cin.get(array, 80) работает в одной программе, но не работает в другой
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

Почему в библиотеке не работает то, что спокойно работает в программе?
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

Не работает функция поиска в браузере
# импорт необходимых модулей import pyttsx3 import os import time import random import webbrowser import speech_recognition...

5
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12928 / 6796 / 1819
Регистрация: 18.10.2014
Сообщений: 17,193
22.05.2021, 06:28
Цитата Сообщение от Geron23 Посмотреть сообщение
После ввода данных и ввода тройки,
И где в вашем вопросе приведены данные, которые вы вводили???

Добавлено через 45 секунд
Цитата Сообщение от Geron23 Посмотреть сообщение
DoubleList Students[100];
Что это вообще такое? Массив из 100 списков? Что это? К чему оно здесь?

Цитата Сообщение от Geron23 Посмотреть сообщение
C++
1
2
            Students[CountOfStudents].Add(Sername, Name, Patronymic, NumberOfGroup);
            CountOfStudents++;
После ввода данных каждого студента происходит переход к новому списку? То есть в каждом списке будет только один студент. Что это за белиберда? Зачем тогда вообще понадобились какие-то списки???

Цитата Сообщение от Geron23 Посмотреть сообщение
if (tmp = NULL)
Распространенные ошибки

Цитата Сообщение от Geron23 Посмотреть сообщение
C++
1
2
        while (tmp != NULL) {
            if (_Sername == tmp->Next->Sername)
Разумеется, это будет вылетать, когда tmp->Next будет нулевым указателем.
0
0 / 0 / 0
Регистрация: 20.02.2020
Сообщений: 56
22.05.2021, 08:06  [ТС]
Программа должна из введенных фамилий искать однофамильцев и выводить их
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
22.05.2021, 08:16
Для того, чтобы хранить многа фамилий, достаточно одного списка. На то он и список.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12928 / 6796 / 1819
Регистрация: 18.10.2014
Сообщений: 17,193
22.05.2021, 08:28
Цитата Сообщение от Geron23 Посмотреть сообщение
Программа должна из введенных фамилий искать однофамильцев и выводить их
И? Зачем в этой программе заведено 100 списков?
0
0 / 0 / 0
Регистрация: 20.02.2020
Сообщений: 56
22.05.2021, 11:03  [ТС]
На каждого ученика идёт отдельный список, если поставить 1 вместо нуля, запустить и начать заполнять второго ученика, то программа завершится с ошибкой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2021, 11:03
Помогаю со студенческими работами здесь

Не работает функция бинарного поиска
Добрый день , возникла проблема с бинарным поиском . Я его просто нашел в интернете и вставил в программу не много отредактировав . Вобщем...

Почему не работает запрос поиска по имени?
Это магия для меня, я не могу понять почему не работает поиск по имени, а по ФО работает. В БД у меня таблица такая ...

Не работает функция поиска значений в ячейках
Доброго времени суток, господа!)) Пытаюсь оптимизировать свой недавно написано тридцатикилометровый код. Но не могу заставить работать...

Не работает функция поиска на панели задач
День добрый. В наличии Windows 10 Корпоративная x64 (v. 1903 сборка 18362.239), при клике на значок лупы на панели задач окно поиска не...

Почему не считается функция в программе, что нужно добавить или удалить?
Что нужно добавить в код,чтобы калькулятор решал функцию решал функцию \arcsin\,\frac{x}{a}+C ? unit unit1;


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru