-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
1

Зацикливается при вводе

27.11.2015, 23:08. Показов 1124. Ответов 2
Метки нет (Все метки)

Admin.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<string>
 
using namespace std;
 
class Admin {
    string Login;//Логин администратора
    string Password;//Пароль администратора
public:
    Admin();//Конструктор класса
 
    void Check_User();//Функция добавления нового пользователя
 
    int Menu();//Меню администратора(Выбор)
    int Admin_Menu();//Меню администратора(Функция)
};
Admin.cpp:

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
#include"Admin.h"
#include"User.h"
#include"System.h"
#include"Spisok.cpp"
#include<iostream>
#include<fstream>
#include<string>
#include<conio.h>
 
using namespace std;
 
//Конструктор класса администратора
Admin::Admin()
{
    Login = "ArtArt"; 
    Password = "18101996Art"; 
}
 
//Функция меню для администратор(Выбор)
int Admin::Menu()
{
    bool Flag = false;
    int Vibor;
    while (Flag != true)
    {
        cout << "[1] - Проверка новых пользователей" << endl << "[2] - Удаление пользователя" << endl << "[3] - Добавление в парк автомобиля такси" << endl << "[4] - Редактирование автомобиля такси" << endl << "[5] - Удаление из парка автомобиля такси" << endl << "[6] - Просмотр таксопарка" << endl << "[7] - Обработка новых заказов" << endl << "[8] - Просотр заказов" << endl << "[9] - Назад" << endl << "Ваш выбор:";
        while (!(cin >> Vibor))
        {
            cout << "НЕКОРРЕКТНЫЙ ВВОД!" << endl << "[1] - Проверка новых пользователей" << endl << "[2] - Удаление пользователя" << endl << "[3] - Добавление в парк автомобиля такси" << endl << "[4] - Редактирование автомобиля такси" << endl << "[5] - Удаление из парка автомобиля такси" << endl << "[6] - Просмотр таксопарка" << endl << "[7] - Обработка новых заказов" << endl << "[8] - Просотр заказов" << endl << "[9] - Назад" << endl << "Ваш выбор:";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
        if (Vibor > 0) Flag = true;
        else cout << "Выберите 1 или 2 или 3 или 4 или 5 или 6 или 7 или 8 или 9" << endl;
    }
    return Vibor;
}
 
//Функция меню администратора(Функция)
int Admin::Admin_Menu()
{
        while (1)
        {
            switch (Menu())
            {
            case 1:
            {
            this->Check_User();
            }
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                break;
            case 9: 
            {
                Main_Organisation ob;
                ob.Main_Enter();
            }
                break;
            default: cout << "Не верный выбор!Выберите 1 или 2 или 3 или 4 или 5 или 6 или 7 или 8 или 9!" << endl;
                break;
            }
        }
        return 0;
}
 
//Функция добавления нового пользователя
void Admin::Check_User()
{
    cout << "Пользователи подавшие заявку:" << endl;
 
    //Открытие файла с логином и паролем новых пользователей
    ifstream fin;//Создание объекта работы с файлом
    Spisok<User> l;//Создание списка заявок новых пользователей
    fin.open("New_User.txt");//Открытие файла
    if (!fin.is_open())//Проверка открытия файла
    {
        cout << "Файл не найден!" << endl;
        _getch();
        return;
    }
 
    //Считывание новых пользователей в список
    int i = 0;//Счетчик количества пользователей подавших заявку
    while (fin.good())
    {
        User ob;
        fin >> ob;
        ob.Set_ID(i + 1);
        l.WriteEnd(ob);
        i++;
    }
 
    //Вывод пользователей на экран
    l.Show();
 
}
main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<locale.h>
#include<iostream>
#include<string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
 
    Admin ob;
    ob.Admin_Menu();
 
    return 0;
}
Проблема:При вводе 1 происходит зацикливание.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 23:08
Ответы с готовыми решениями:

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

Программа зацикливается при вводе некорректных данных
Доброго дня. Уже искал по форуму, нашел много похожих тем, но предложенные там решения, в...

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

При вводе слишком большого числа программа зацикливается
При вводе слишком большого числа идет зацикливание(вроде так)помогите исправить #include...

2
Модератор
Эксперт С++
11994 / 9702 / 5874
Регистрация: 18.12.2011
Сообщений: 26,005
27.11.2015, 23:11 2
C++
1
2
3
4
5
6
7
User ob;
while (fin >> ob)
{
    ob.Set_ID(i + 1);
    l.WriteEnd(ob);
    i++;
}
1
-12 / 0 / 4
Регистрация: 04.10.2014
Сообщений: 272
27.11.2015, 23:53  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
User ob;
while (fin >> ob)
{
* * ob.Set_ID(i + 1);
* * l.WriteEnd(ob);
* * i++;
}
Всё равно зацикливается.

Добавлено через 38 минут
Цитата Сообщение от artart96 Посмотреть сообщение
Сообщение от zss
User ob;
while (fin >> ob)
{
* * ob.Set_ID(i + 1);
* * l.WriteEnd(ob);
* * i++;
}
Всё равно зацикливается.
Нашел ошибку - неправильная перегрузка потока была при считывание из файла в объект.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2015, 23:53
Помогаю со студенческими работами здесь

Задание на ряды: программа зацикливается при вводе некоторых значений
Здравствуйте, решал вузовское задание &quot;на дом&quot;. Написал код. Однако при вводе некоторых значений...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt;...

Класс "creditCard", программа зацикливается на вводе данных
прога не работает корректно! зацикливается на вводе данных и не выходит на exit #include...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал
Составить программу, которая при вводе символа с клавиатуры выво-дит &quot;латинская буква&quot; при вводе...


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

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

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