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

Создать класс для работы с двумерным массивом целых чисел - C++

Восстановить пароль Регистрация
 
Leno4ka805
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
28.11.2013, 18:52     Создать класс для работы с двумерным массивом целых чисел #1
Создать класс для работы с двумерным массивом целых чисел. Разработать следующие элементы класса:
a. Поля:
int **IntArray;
int n.
b. Конструктор, позволяющий создать массив размерности n×n.
c. Методы, позволяющие:
ввести элементы массива с клавиатуры;
вывести элементы массива на экран;
вычислить сумму элеметов i-того столбца.
d. Свойства:
позволяющее вычислить количество нулевых элементов в массиве (доступное только для чтения);
позволяющее установить значение всех элементы главной диагонали массива равное скаляру (доступное только для записи)

Вот такой код получился у меня.
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
#include <iostream>
 
using namespace std;
 
class DMassiv//ñîçäГ*ëè ГЄГ«Г*Г±Г±
{   
public:
    int **IntArray;//ГіГЄГ*Г§Г*òåëü Г*Г* ГіГЄГ*Г§Г*òåëü öåëî÷èñëåГ*Г*îãî Г§Г*Г*Г·ГҐГ*ГЁГї îòêðûòûå ïîëÿ ГЄГ«Г*Г±Г±Г*
    int n;
    int b,a,r,l,*p;//k-äîï.ïåðåìåГ*Г*Г*Гї äëÿ ñ÷èòûâГ*Г*ГЁГї ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ*;Г*- Г*îìåð ñòîëáöГ*;  Г±ГІГ®Г«ГЎГ¶Г»
    DMassiv()//ГЄГ®Г*ñòðóêòîð
    {
            
    }
    ~DMassiv()
    {
      IntArray=0;
      n=0;  
    }
    int setVvod()//ìåòîä äëÿ ââîäГ* 
    {
        cout<<"vvedite n";
        cin>>n;
        cout<<"vvedite massiv"<<endl;
            IntArray=new int*[n];//âûäåëåГ*ГЁГҐ ГЇГ*ìÿòè ïîä ñòðîêè
            for (int i = 0; i < n; i++)
                {
                     IntArray[i]=new int[n];//~ïîä ñòîëáöû
                     for (int j = 0; j < n; j++)
                     {  
                       cin>>IntArray[i][j];
                     }
                }
    }
    void getVivod()//ìåòîä Г*Г* âûâîä
    {
    for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                cout<<IntArray[i][j]<<" ";
                
            }
      cout<<endl;
        }
    }
    //âû÷èñëåГ*ГЁГҐ ñóììû ñòîëáöГ*
    int summa()
    {
        int s=0;        
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (l>n)cout<<"nevozmojno vipolnit'"<<endl;
                if (j==l) s+=IntArray[i][j];
            }     
        }
        cout<<"s="<<s;
    return s;
    }
    //Г*Г*éòè ýëåìåГ*ГІ Г± Г§Г*Г¤Г*Г*Г*ûì Г*îìåðîì
    void poisk()
        {
          // int b=0;
            cout<<"vvedite nomer stolbtsa: ";
               cin>>a;
                cout<<"Nomer stroki: ";
                cin>>r;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j <n;j++)
                {
                    if(i==r && j==a)*p=IntArray[i][j];
                    
                    //if(IntArray[i][j]==0)b++;
                }
            }
            cout<<"element= "<<p<<endl;
        }
        int GetSnull()
        {
            get
            {
                int b=0;
                for(int i=0;i<n;i++)
                {
                  for(int j=0;j<n;j++)
                  {
                        if(IntArray[i][j]==0)b++;
                  } 
                }
                return b;
            }
        }
        int Setscalar()
        {
            set
            {
                for(int i=0;i<n;i++)
                {
                  if(i=j)cout>>&IntArray[i][j]=0;
                } 
            }
        }   */
};
 
int main()
{
    int n;
    int i,j,k,a,r,l,*p;
    int IntArray[n][n];
        //????????? MyObj.vvod();
  DMassiv mas;
//  cout<<"vvedite n=";//ââîäèì êîë-ГўГ® ñòîëáöîâ ГЁ ñòðîê
//  cin>>n;//ñ÷èòûâГ*ГҐГ¬yObj.vvod()
    mas.setVvod();
    mas.getVivod();
 
   
    std::cout<<mas.poisk()<<std::endl;
    cout<<"Nomer stolbtsa: ";
            cin>>l;
            //cout>>s;
            std::cout<<mas.summa()<<std::endl;
//  ~DMassiv();
    system("PAUSE");
    return 0;
}
сам массив выводится, но вместо заданного элемента, похоже. выводится его адрес.
также, не просчитывается сумма i-ого столбца, а со свойствами я вообще запуталась
Исправьте, пожалуйста, ошибки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 18:52     Создать класс для работы с двумерным массивом целых чисел
Посмотрите здесь:

Разработать программу со строковым меню для работы с двумерным массивом C++
Создать класс ListInt для работы со списком целых чисел C++
Создать класс для работы с двумерным массивом вещественных чисел C++
Создать класс для работы с двумерным динамическим массивом чисел C++
Создать класс для работы с двумерным массивом вещественных чисел. В двоичной матрице найти совпадающие строки C++
Функции для работы с двумерным массивом: ввод, вывод, транспонирование C++
C++ Нужно создать класс шаблона для работы c массивом 2х2

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru