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

Необработанное исключение по адресу при выводе на консоль - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран ромб из звездочек http://www.cyberforum.ru/cpp-beginners/thread1526005.html
Запишите оператор или набор операторов, печатающих на экране заданную фигуру.
C++ Recursion. 2 integers are multiplied together Объясните пжл выполнение данной рекурсии пошагово. Например, возьмем recur(3,2) и recur(2,4) int recur(int x, int y) { if (x == 0 || y == 0) return 0; else if (x == 1) return y; http://www.cyberforum.ru/cpp-beginners/thread1525998.html
Как осуществить неограниченный ввод в консоль? C++
Необходимо вводить в консоль случайное количество чисел разделенные пробелом, например: 2 10 11 9 Как это осуществить? Обычный cin не подходит, ведь он берет по 1 значению std::cin >> a; // при...
Проверить условие: сумма цифр заданного числа N превосходит произведение цифр этого же числа на 1 C++
Составит линейную логическую программу, печатающую значение 1, если указанное высказывание является истинным, и 0 – в противном случае: сумма цифр заданного четырехзначного числа N превосходит...
C++ Не работает программа. Синтаксические ошибки http://www.cyberforum.ru/cpp-beginners/thread1525955.html
В программировании плохо шарю, компилятор указывает на "else" Но сам не могу додуматься. Помогите #include "stdafx.h" #include <math.h> #include <locale> #include <iostream> using namespace...
C++ Память для динамического массива в классе Вариант 9. Создать класс MASS1, заданный последовательностью чисел. Реализовать следующие вычисления в виде методов класса: " наибольшее число последовательности целых чисел, " наименьшее... подробнее

Показать сообщение отдельно
SanychBY
38 / 45 / 1
Регистрация: 04.06.2013
Сообщений: 1,532

Необработанное исключение по адресу при выводе на консоль - C++

06.09.2015, 23:00. Просмотров 211. Ответов 6
Метки (Все метки)

Доброго времени суток.
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
#include <iostream>
#include <string>
using namespace std;
 
class YearData
{
public:
    int day;
    int month;
    int year;
    string yyy[12] = { "января","февраля","марта","аперля","мая","июня","июля","августа","сентября","октября","ноября","декабря" };
    YearData(int d, int m, int y)
    {
        day = d;
        month = m;
        year = y;
    }
    YearData()
    {
        day = 0;
        month = 0;
        year = 0;
    }
    void Print1()
    {
        cout << this->day << " " << this->yyy[month]  << " " << this->year << endl;
 
    }
    void Print2()
    {
        if (day < 10) cout << "0";
        cout << day << "/";
        if (month < 10) cout << "0";
        cout << month << "/" << year << endl;
    }
    bool Push(int d, int m, int y)
    {
        if ((d > 31 || d < 1) && (m > 12 || m < 1))
        {
            return false;
        }
        //YearData(d, m, y);
        day = d;
        month = m;
        year = y;
        return true;
    }
};
 
class MyBot
{
    YearData *Qwerty[100];
    int col = 0;
public:
    void Push()
    {
        int i = 0;
        cout << "Сколько ввести дат?\n> ";
        (cin >> i).get();
        col = i;
        for (int y = 0; y < i && i < 100;y++)
        {
            int d, m, g;
            cout << "День\n> "; (cin >> d).get();
            cout << "Месяц\n> "; (cin >> m).get();
            cout << "Год\n> "; (cin >> g).get();
            YearData *Q = new YearData;
            if (Q->Push(d, m, g))
            {
                Qwerty[y] = Q;
            }
            else
            {
                y--;
                cout << "Неверный формат даты, введите еще раз" << endl;
            }
        }
    }
    void MyPrint()
    {
        int p = 0;
        cout << "Формат\n";
        cout << "1 - 5 января 1997 года\n2 - 05/01/1997\n";
        (cin >> p).get();
        if (p == 1)
        {
            for (int i = 0;i < col;i++)
            {
                Qwerty[i]->Print1();
                cout << "------------" << endl;
            }
        }
        else if (p == 2)
        {
            for (int i = 0;i < col;i++)
            {
                Qwerty[i]->Print2();
                cout << "------------" << endl;
            }
        }
    }
    void ParamYear()
    {
        int p = 0;
        cout << "Введите год\n> ";
        (cin >> p).get();
        for (int i = 0; i < col; i++)
        {
            if (Qwerty[i]->year == p)
            {
                Qwerty[i]->Print1();
                cout << "------------" << endl;
            }
        }
    }
    void ParamAll()
    {
        int p = 0;
        cout << "Введите число\n> ";
        (cin >> p).get();
        for (int i = 0; i < col; i++)
        {
            if (Qwerty[i]->year == p || Qwerty[i]->day == p || Qwerty[i]->month == p)
            {
                Qwerty[i]->Print1();
                cout << "------------" << endl;
            }
        }
    }
    void ParamTwo()
    {
        for (int i = 0; i < col; i++)
        {
            int summ = Qwerty[i]->day + Qwerty[i]->month + Qwerty[i]->year;
            if (( summ & (summ - 1)) == 0)
            {
                Qwerty[i]->Print1();
                cout << "------------" << endl;
            }
        }
    }
    void menu()
    {
        int p = 0;
        do {
            cout << "1 - добавить дату\n2 - вывести даты\n3 -  список дат для заданного года\n4 - список дат, которые имеют заданное число\n5 -  список дат, у которых сумма всех чисел соответстувет степени двойки\n> ";
            (cin >> p).get();
            switch (p)
            {
            case 1: Push(); break;
            case 2:MyPrint();break;
            case 3:ParamYear();break;
            case 4:ParamAll();break;
            case 5:ParamTwo();break;
            default:
                break;
            }
        } while (p > 0);
    }
};
 
 
void main()
{
    setlocale(LC_ALL,"RU");
    MyBot BoT;
    BoT.menu();
    system("pause");
}
Программа компилируется, но вылетает на строке cout << this->day << " " << this->yyy[month] << " " << this->year << endl;
В чем может быть проблема? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru