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

Ошибка в классе IntegerSet - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ можно ли потоку для чтения передать имеющуюся строку, что бы из нее выдрать числа при чтении http://www.cyberforum.ru/cpp-beginners/thread1023394.html
А можно ли потоку для чтения передать имеющуюся строку, что бы из нее выдрать числа при чтении?
C++ Получить доступ к .txt файлу и посчитать количество латинских символов в нём Получить доступ к .txt файлу и посчитать количество латинских букв в нём. Спасибо! http://www.cyberforum.ru/cpp-beginners/thread1023393.html
Создание ресурса C++
Вопрос такой. Нужно создать какой-то ресурс, который будет хранить в себе текст распиханный по переменным, либо по строчкам. При необходимости нужно обратиться к этому ресурсу и запросить определенный текст. Хотел бы узнать как это можно сделать :)
C++ Посимвольный вывод
Не могу понять как организовать посимвольный вывод из файла. Задача стоит такая, есть в файле имя, фамилия и отчество. они разделяются символом ';' вместо пробела. Нужно вывести данную информацию на экран в нормальном виде(Фамилия и инициалы через пробел). Как это организовать?.В нэте слишком много методов, я запутался. Подскажите. Спасибо
C++ Установить, имеются ли у вектора a одинаковые компоненты http://www.cyberforum.ru/cpp-beginners/thread1023377.html
В чем ошибка? #include "stdafx.h" #include <fstream> #include <iostream> using namespace std; void main() {
C++ Dev-C++ Матрица. Найти сумму элементов в строках, которые не содержат отрицательных элементов Дана целочисленная квадратная матрица. Найти сумму элементов в строках, которые не содержат отрицательных элементов. Вопрос 1: как найти эти строки. Вопрос 2: как сложить элементы этих строк. подробнее

Показать сообщение отдельно
denfox_pro
0 / 1 / 0
Регистрация: 30.10.2012
Сообщений: 113
29.11.2013, 22:08     Ошибка в классе IntegerSet
IntegerSet.h:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
//#ifndef _INTEGERSET_H
#define _INTEGERSET_H
class IntegerSet
{
public:
    IntegerSet();
    IntegerSet(int);
    ~IntegerSet();
    IntegerSet *UnionOfSets(const IntegerSet&) const; //элемент-функция обьединения двух множеств
    IntegerSet *IntersectionOfSets(const IntegerSet&) const; //элемент-функция пересечения двух множеств 
    void size(); //функция задания размера массива в диапазоне [0..100]
    void insertElement(); //функция добавления элемента во множество
    void deleteElement(); //функция удаления элемента из множества
    void setArray(int, int); //функция установки массива множества
    void printSet() const; //функция выводя множества на экран
    bool isEqualTo(const IntegerSet& ) const;
   private:
        int integerSet[100];
};
IntegerSet.cpp:
C++ (Qt)
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 "StdAfx.h"
#include "IntegerSet.h"
#include <iostream>
using namespace std;
IntegerSet::IntegerSet()
{
for(int i=0;i<101;i++)
    integerSet[i]=0;
 
}
 
IntegerSet::~IntegerSet()
{
    int arrayFig;
    int i;
    cout<<"Введите элементы, которые нужно удалить::\n";
    cout<<"(чтобы завершить ввод введите 999)\n";
    for(int p=1;p<101||i!=999;p++)
    {
      cin>>i;
      if (i==999)  break;
      if(i<0||i>100)
      {
        cout<<"Вы ввели не правильный элемент! Введите его снова придерживаясь диапазона от 0 до 100\n";
      }
    else
      {
       arrayFig=0;
       setArray(arrayFig, i);
      }
    }
}
 
void IntegerSet::insertElement() //функция ввода элементов множества
{
    int arrayFig;
    int i;
    cout<<"(чтобы завершить ввод введите 999)\n";
    for(int p=1;p<100||i!=999;p++)
    {
    cout<<p<<": "; cin>>i;
    if (i==999)
        break;
    if(i<0||i>100)
    {
        cout<<"Вы ввели не правильный элемент! Введите его снова придерживаясь диапазона от 0 до 100\n";
    }
    else
    {
    arrayFig=1;
    setArray(arrayFig, i);
    }
    }
}
 
void IntegerSet::setArray(int a, int b)
{
    integerSet[b]=a;
}
IntegerSet *IntegerSet::UnionOfSets(const IntegerSet& integer) const //элемент-функция обьеденения двух множеств
{
    IntegerSet *p=new IntegerSet();
    for (int i=0;i<101;i++)
    {
        if (integer.integerSet[i]==1||integerSet[i]==1)
            p->integerSet[i]=1;
        else 
            p->integerSet[i]=0;
    }
    return p;
}
IntegerSet *IntegerSet::IntersectionOfSets(const IntegerSet& integer) const //элемент-функция обьеденения двух множеств
{
    IntegerSet *p=new IntegerSet();
    for (int i=0;i<101;i++)
    {
        if (integer.integerSet[i]==0||integerSet[i]==0)
            p->integerSet[i]=0;
        else 
            p->integerSet[i]=1;
    }
    return p;
}
 void IntegerSet::printSet() const
{
    int count=0;
    for (int i=1;i<100;i++)
    {
        if (integerSet[i]==1) cout<<i<<" ";
        else count++;
        if (count==100) cout<<"---\n";
    }
    cout<<endl;;
}
bool IntegerSet::isEqualTo(const IntegerSet& integer) const
{
    int count=0;
    for(int i=0;i<101;i++)
    {
        if (integer.integerSet[i]!=integerSet[i])
        {
            cout<<"Наборы не являются равными!";
            return 1;
        }
    }
    cout<<"Наборы являются равными!";
            return 0;
}
void main:
C++ (Qt)
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
// IntSet_LR5.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "IntegerSet.h"
#include <iostream>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"rus");
    IntegerSet a, b;
    cout<<"Пожалуйста введите числа во множество А:\n";
    a.insertElement();
    cout<<"Элементы множества А: "<<endl;
    a.printSet();
    a.~IntegerSet();
    cout<<"Элементы множества A после удаления: "<<endl;
    a.printSet();
    b.insertElement();
    cout<<"Пожалуйста введите числа во множество В:\n";
    b.printSet();
    a.isEqualTo(b);
    IntegerSet *setunion = a.UnionOfSets(b);
    IntegerSet *setinersection=a.IntersectionOfSets(b);
    return 0;
}

ошибка: Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru