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

Найти однофамильцев - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите плс переписать программу "Фигура из символов" http://www.cyberforum.ru/cpp-beginners/thread397700.html
Условие: 2. Написать программу, которая выводит на экран прямоугольник или квадрат. Ширина и высота фигуры задаются пользователем с клавиатуры. Код: #include <iostream> using namespace std; int...
C++ Комбинации Всем привет! Есть массив array, в переменной s хранится его размер. Нужно написать прогу, которая выведет на экран все возможные комбинации елементов даного массива. Например, в array лежат... http://www.cyberforum.ru/cpp-beginners/thread397686.html
C++ Наставте на истинный путь начинающего
Дорогие друзья я изучил основы языка C++.И хотел бы продвигаться дальше в область программирования игр.Подскажите пожалуйста может быть какие то видеокурсы или книги.
C++ подпрограммы
протабулируйте функции.отрезок и шаг вводятся с клавиатуры: (ln^2(x))-1/x
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread397649.html
Всем доброго времени суток) При написании программы возникла проблема.... не знаю как из одного файла в другой переписать некоторые строки(номера строк которые не надо переписывать записаны в...
C++ проблема с установкой библиотеки. Добрый день, у меня возникла проблема с установкой библиотеки EasyBMP. я скопировал все файлы данной библиотеки в директорию где находятся стандартные библиотеки такие как iostream и т.д. но при... подробнее

Показать сообщение отдельно
S2dent
52 / 50 / 6
Регистрация: 10.05.2009
Сообщений: 216

Найти однофамильцев - C++

03.12.2011, 01:52. Просмотров 1440. Ответов 2
Метки (Все метки)

Доброй ночи уважаемые эксперты! Нужно найти однофамильцев в двусвязном списке. Есть следующий код:
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
#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;
    while (tmp) {
        if (tmp -> Sername == tmp -> get_Sername()) {
            cout << "\n" << tmp -> Sername << "\t" << tmp -> Name << "\t" << tmp -> Patronymic << "\t" << tmp -> NumberOfGroup;
        }
    }
}
 
void 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;
        }
    }
 
    getch();
}
Но программа виснет при поиске, помогите исправить ошибку, заранее огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru