Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Blimbablux
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 54
1

Переписать класс в структуру

31.10.2016, 04:29. Просмотров 422. Ответов 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
#include "commun.h"
#include <sstream>
 
 
template <typename T>
std::string toString(T val)
{
  std::ostringstream oss;
  oss << val;
  return oss.str();
}
 
 
Oplata::Oplata(int HouseNumber, int FlatNumber, string Surname,  pay_type Vid, string Date, float Sum, float Percent, int Prosrocheno)
{
 this->HouseNumber = HouseNumber;
 this->FlatNumber = FlatNumber;
 this->Surname = Surname;
 this->Vid = Vid;
 this->Date = Date;
 this->Sum = Sum;
 this->Percent = Percent;
 this->Prosrocheno = Prosrocheno;
}
 
  istream &operator >>(istream &in,Oplata &A)
    {
 
     in >> A.Surname; //дописать остальные и доделать оформление
     in >> A.HouseNumber;
     in >> A.Date;
     in >> A.FlatNumber;
     string p_type;
     in >> p_type;
     if(p_type == "e")
     {
        A.Vid = electricity;
     }
     else if (p_type == "g"){
        A.Vid = gas;
     }
     else if(p_type == "r")
        {
        A.Vid = running_water;
     }
     else {
        A.Vid = flatpay;
     }
     in >> A.Percent;
     in >> A.Prosrocheno;
     return in;
 
 
 
    }
 
 
 
   ostream &operator <<(ostream &out,Oplata A)
    {
        out << A.Surname<<":"<<endl;
        out << toString(A.HouseNumber)<<endl;
        out << toString(A.FlatNumber)<<endl;
        out << toString(A.Vid)<<endl;
        out << A.Date<<endl;
        out << toString(A.Sum)<<endl;
        out << toString(A.Percent)<<endl;
        out << toString(A.Prosrocheno)<<endl;
 
        return out;
    }
 
 
   bool Oplata ::  operator <(const Oplata& v) const
   {
 
     return this ->Surname < v.Surname;
   }
 
  bool Oplata ::  operator >(const Oplata& v) const
   {
 
     return this ->Surname > v.Surname;
   }
 
 
 
    bool Oplata::operator == (const Oplata& v)
    {
       return ((this -> Surname==v.Surname) &&( this -> HouseNumber==v.HouseNumber) &&( this -> Date ==v.Date) &&( this -> FlatNumber ==v.FlatNumber) && ( this -> Vid ==v.Vid) && ( this -> Sum ==v.Sum) && ( this -> Percent ==v.Percent) && ( this -> Prosrocheno ==v.Prosrocheno));  //дописать все остальные
    }
 
 
 
    void Oplata::set_sum(float value)
    {
      this->Sum = value;
    }
 
 
/*int LinearSearch(int *x, int k, int key){
  int i = 0;
  for ( i = 0 ; i < k ; i++ )
    if ( x[i] == key )
      break;
  return i < k ? i : -1;
}
*/
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
#ifndef COMMUN_H
#define COMMUN_H
 
#include <string>
#include <cstdlib>
 
 
 
using namespace std;
 
 
enum pay_type {flatpay, gas, running_water, electricity};
 
class Oplata{
 
 
    int HouseNumber;
    int FlatNumber;
    string Surname;
    pay_type Vid;
    string Date;
    float Sum;
    float Percent;
    int Prosrocheno;
 
public:
 
    Oplata(int HouseNumber, int FlatNumber, string Surname,  pay_type Vid, string Date, float Sum, float Percent, int Prosrocheno);
    friend istream &operator >>(istream &in,Oplata &A);
    friend ostream &operator <<(ostream &out,Oplata A);
    bool operator ==(const Oplata& v);
    bool operator >(const Oplata& v) const;
    bool operator <(const Oplata& v)const;
    void set_sum(float value);
    //int LinearSearch(int *x, int k, int key);
 
 
 
 
};
 
#endif // COMMUN_H
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
#include "commun.h"
#include <iostream>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <queue>
#include <stack>
 
 
using namespace std;
 
void save_to_file(queue <Oplata> q)
{
ofstream f;
f.open("report.txt");
while (!q.empty())
{
  f << q.front();
  q.pop();
}
f.close();
}
 
 
void reverse_save(queue <Oplata> q){
stack <Oplata> s;
 
while (!q.empty())
{
  s.push(q.front());
  q.pop();
}
ofstream f;
f.open("report_rev.txt");
while(!s.empty())
{
  f << s.top();
  s.pop();
}
f.close();
}
 
 
 
 
int main()
{
    Oplata A (1, 10, "Ivanov", gas, "01.01.2001", 555.44, 1.5, 5);
    Oplata B (1, 10, "Aivanov", electricity, "01.01.2001", 896.12, 0, 0);
    Oplata C (3, 33, "Sidorov", electricity, "04.04.2002", 251.11, 0, 0);
 
    vector <Oplata> Oplati;
    Oplati.push_back(A);
    Oplati.push_back(B);
    Oplati.push_back(C);
 
 
    vector <Oplata> :: iterator it;
 
    queue <Oplata> q;
 
    it = find(Oplati.begin(), Oplati.end(), C.Date);
 
    if(it != Oplati.end())
    {
      cout << "Znachenie naideno" << endl;
      cout << *it;
      q.push (*it);
    }
    else
    {
      cout << "Znachenie ne naideno" << endl;
    }
 
 
    cout<<"/////////////////////////"<<endl;
 
 
 
    Oplata D (3, 33, "Petrov", electricity, "04.04.2002", 251.11, 0, 0);
 
 
    it = find(Oplati.begin(), Oplati.end(), D);
 
    if(it != Oplati.end())
    {
      cout << "Znachenie naideno" << endl;
      cout << *it;
      q.push (*it);
    }
    else
    {
      cout << "Znachenie ne naideno" << endl;
    }
 
 
    it = find(Oplati.begin(), Oplati.end(), A);
 
    if(it != Oplati.end())
    {
      cout << "Znachenie naideno" << endl;
      cout << *it;
      q.push (*it);
    }
    else
    {
      cout << "Znachenie ne naideno" << endl;
    }
 
    cout<<"/////////////////////////"<<endl;
 
    save_to_file(q);
 
    reverse_save(q);
 
 
 
    cout << "Do sortirovki" << endl;
    ostream_iterator <Oplata> oit (cout, "\n\n");
    copy (Oplati.begin(), Oplati.end(), oit);
 
    // сортировка
 
    sort(Oplati.begin(), Oplati.end());
    cout << "Posle sortirovki" << endl;
    copy (Oplati.begin(), Oplati.end(), oit);
 
    cout<<"/////////////////////////"<<endl;
 
    if(binary_search(Oplati.begin(), Oplati.end(), B))
    {
        cout << "Найдено!" << endl;
    }
 
    else
    {
        cout << "Не найдено!" << endl;
    }
 
    cout<<"/////////////////////////"<<endl;
 
    Oplati.erase(Oplati.begin()+1);
 
    copy (Oplati.begin(), Oplati.end(), oit);
 
    cout<<"/////////////////////////"<<endl;
 
    Oplati[1].set_sum(999);
 
    copy (Oplati.begin(), Oplati.end(), oit);
 
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 04:29
Ответы с готовыми решениями:

Переписать структуру на класс
Помогите,пожалуйста написать вот эту программу не через структуру,а через класс #include...

Переписать структуру со стандарта c++11 под более ранний
Господа, помогите разобраться. Есть вот такая структура: struct MedianFilter { unsigned k; ...

Переделать структуру на класс
Помогите переделать структуру на класс. Добавить конструктор, деструктор, методы доступа......

Структуру переделать в класс
Есть структура,а как сделать также только классом? struct drill {char name; int oboroti; char...

Переоформить структуру в класс
Есть один код(работающий код), в котором структуру нужно преобразовать в класс, очень рассчитываю...

2
afront
1194 / 1044 / 768
Регистрация: 29.02.2016
Сообщений: 3,317
31.10.2016, 10:38 2
http://stackoverflow.com/questions/5...-a-struct-in-c
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8135 / 4986 / 1436
Регистрация: 29.11.2010
Сообщений: 13,459
31.10.2016, 10:45 3
C++
1
#define class struct
P.S. шутка, конечно. Руками поправьте одно слово
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 10:45

Переделать структуру в класс
Здравствуйте, помогите переделать структуру в класс..сам пробовал, бред получается:(...

Переписать текст исходного файла во второй файл, сохраняя строчную структуру и удаляя пустые строки
Пусть дан текстовый файл f1. Перепишите его содержимое в файл f2, сохраняя строчную структуру и...

Как вставить структуру в класс?
К как вставить структуру в класс чтобы например: использовать в функциях и так dd.chisl и так...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.