3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63

Описать структуру для хранения данных о платежах

10.12.2010, 11:03. Показов 10193. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно срочно написать, а не выходит((((
Описать структуру для хранения следующей информации (при необходимости используйте перечисления):

данные о платежах:

· наличными (вид валюты, сумма);

· по карточке (тип карточки (4 типа), № карточки, фамилия, сумма);

· SMS-banking (оператор, банк, № карточки, № телефона, сумма).

Создать массив из 5 таких структур.

Написать программу, выполняющую следующие действия:

· добавление записи в массив; если в массиве нет места - вывести соответствующее сообщение;

· удаление записи из массива; если такой записи нет - вывести соответствующее сообщение;

· вывод всех записей массива.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2010, 11:03
Ответы с готовыми решениями:

Для хранения данных о планшетных сканерах описать структуру
Для хранения данных о планшетных сканерах описать структуру вида: struct scan_info{ char model; // наименование модели int price; //...

Для хранения данных о ноутбуках описать структуру NOTEBOOK
Для хранения данных о ноутбуках описать структуру вида (при необходимости дополнив ее): struct NOTEBOOK{ char model; //...

Для хранения данных о ноутбуках описать структуру вида
Для хранения данных о ноутбуках описать структуру вида: struct NOTEBOOK { char m odel; // н аименование struct size { ...

14
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 11:27
Дима-Дима А что не выходит?
Ты хочешь что бы тебе помогли или все написали за тебя?
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 11:48  [ТС]
помочь сами структуры и меню вызова.

Добавлено через 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
43
44
#include <iostream.h>
#include <stdio.h>
#include <string.h>
 
enum dkart {type1, type2, type3, type4};
 
 struct nal
  {
   char vid_nal[128];
   int sum;
  };
 
 struct kart
  {
   enum dkart;
   char bank[128];
   char nom_kart[128];
   char fam[128];
   int sum2;
  };
 
  struct SMS
  {
   char operatorr[128];
   char bank2[128];
   char nom_tel[128];
   int sum3;
  };
  struct all
  {
      struct nal;
      struct kart;
      struct SMS;
  };
 
 
 
void init_list(void);
 
void menu(void);
 
void add(void);
void del(void);
void print(void);

как дальше не пойму(((
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 11:50
Дима-Дима А у тебя хоть какие то идеи есть как это делать или все по нулям?
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 11:55  [ТС]
как написать меню, то по нулям. с таким я еще не сталкивался

Добавлено через 3 минуты
я с одной структурой писал, а тут их дофига.
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:05
Тогда уж как то так хотя бы:
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
struct nal
{
char vid_nal[128];
int sum;
};
 
struct kart
{
enum dkart;
char bank[128];
char nom_kart[128];
char fam[128];
int sum2;
};
 
struct SMS
{
char operatorr[128];
char bank2[128];
char nom_tel[128];
int sum3;
};
 
struct allplateg
{
nal n;
kart k;
SMS s;
};
 
allplateg plateg[5];
 
void init_list(void);
void menu(void);
void add(void);
void del(int i);
void print(void);
Меню может быть текстовым и графическим, я так понимаю тебе нужно текстовое.
Реализация такого меню заключается в написании цикла, в котором в зависимости от текущего выбора будут выводиться различные надписи меню.

Добавлено через 3 минуты
сколько структур вообще не важно, структура это обычный тип данных как char или int, просто составной.
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 12:08  [ТС]
еще вопрос как что писать в void init_list(void) и как в данном случае обращаться к элементам структуры?
0
2 / 2 / 0
Регистрация: 10.12.2010
Сообщений: 29
10.12.2010, 12:13
Меню примерно так:
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
while(1==1){
printf("\n\n");
printf("Select action:\n\n0)Load autosave\n1)Load program from PROG.DAT file.\n2)Input program manually.\n3)See info\n9)Exit.\n-->>>  ");
 
 
scanf("%d",&K);
if (K==1)
    {
    counter=load(counter,K,memory);
    if (counter==0)
        {
        printf("\nThe error was occured - data file does not exist or empty. Swith to manual typing.\n");
        goto type;
        }
    goto loaded;}
 
if (K==0)
    {
    counter=load(counter,K,memory);
    if (counter==0)
        {
        printf("\nThe error was occured - data file does not exist or empty. Swith to manual typing.\n");
        goto type;
        }
    goto loaded;}
if (K==2) goto type;
if (K==3) info();
if (K==9) exit(0);
}
А можно и более изящно - через getchar.

Не по теме:

Хотя понятия "Си" и "изящно" у меня в голове совмещаются крайне плохо.



У нас там было одно хитрое задание - свою IDE для своего языка программирования в минимальном варианте написать. Полную версию проги можешь здесь глянуть, многовато в пост вставлять.
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:15
обращение к элементам структуры очень простое
есть глобальный массив plateg, его элемент получаешь plateg[1] например.
номер карты например 3-го платежа получаешь так plateg[2].k.nom_kart
так же можешь обращаться к любому элементу структур.
в init_list можешь например пробежаться по всем данным структур всех платежей и обнулить их.
По условию, как я понял, у тебя может быть только 5 платежей, поэтому массив статический.
В общем случае массив plateg делают динамическим и тогда выделять под него память можно в init_list
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 12:22  [ТС]
не понял как это ко мне привязать

Добавлено через 1 минуту
Цитата Сообщение от vitaly1981 Посмотреть сообщение
обращение к элементам структуры очень простое
есть глобальный массив plateg, его элемент получаешь plateg[1] например.
номер карты например 3-го платежа получаешь так plateg[2].k.nom_kart
так же можешь обращаться к любому элементу структур.
в init_list можешь например пробежаться по всем данным структур всех платежей и обнулить их.
По условию, как я понял, у тебя может быть только 5 платежей, поэтому массив статический.
В общем случае массив plateg делают динамическим и тогда выделять под него память можно в init_list
можно сдесь помочь написать?

Добавлено через 5 минут
#include <iostream.h>
#include <stdio.h>
#include <string.h>

enum dkart {type1, type2, type3, type4};

struct nal
{
char vid_nal[128];
int sum;
};

struct kart
{
enum dkart;
char bank[128];
char nom_kart[128];
char fam[128];
int sum2;
};

struct SMS
{
char operatorr[128];
char bank2[128];
char nom_tel[128];
int sum3;
};

struct allplateg
{
nal n;
kart k;
SMS s;
};

allplateg plateg[5];

void init_list(void);
void menu(void);
void add(void);
void del(int i);
void print(void);

void main ()
{
char c;
init_list;
while (true)
{
c=menu();
switch (c)
{
case 1:add(); break;
case 2: del(); break;
case 3: print(); break;
case 4: exit(o);
}
}
}
пока вот что вышло
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:50
Ну например обнулить наличные платежи можно так:
for(int i=0;i<5;i++)
{
plateg[i].n.vid_nal="";
plateg[i].n.sum=0;
}
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
11.12.2010, 07:56  [ТС]
ниче не получается

Добавлено через 3 минуты
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <string>

using namespace std;

enum dkart {type1, type2, type3, type4};

struct nal
{
char vid_nal[128];
int sum;
};

struct kart
{
enum dkart;
char bank[128];
char nom_kart[128];
char fam[128];
int sum2;
};

struct SMS
{
char operatorr[128];
char bank2[128];
char nom_tel[128];
int sum3;
};

struct allplateg
{
nal n;
kart k;
SMS s;
};

allplateg plateg[5];

void init_list();
int menu();
void add(void);
void del(void);
void print(void);
int find_free();

void main ()
{
char c;
init_list();
while (true)
{
c=menu();
switch (c)
{
case 1:add(); break;
case 2: del(); break;
case 3: print(); break;
case 4: exit(0);
}
}
}

void unit_list()
{


}

int menu()
{
char s[20];
int c;
cout<<"1.vvesti dannie\n";
cout<<"2.udalit'\n";
cout<<"3.vivesti vse\n";
cout<<"4.vihod\n";
do
{
cout<<"viberite\n";
gets(s);
c=atoi(s);
}
while (c<=1 || c>4);
return c;
}

void add()
{
int slot;
char s[80];
slot=find_free();
if (slot==-1) {cout<<"spisok zapolnen\n";}
else
cout<<"vvedite operacii nalichnimi\n";
gets(plateg[slot].n);
cout<<"vvedite operacii po kartochke\n";
gets(plateg[slot].k);
cout<<"vvedite operacii sms\n";
gets(plateg[slot].s);
}

int find_free()
{
for(int t=0;plateg[t] && t<5; t++)
if (t==5) return -1;
return t;
}








Добавлено через 18 часов 54 минуты
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
#include<iostream>
enum karta{type1, type2, type3, type4};
struct nal
{
    char vid_val[30];
    int summa_nal;
};
struct kart
{   
    karta n;
    int N;
    char name[20];
    int summa2;
};
struct sms
{
    char oper[20];
    char bank[20];
    char N_kart[20];
    char N_tel[20];
    int summa3;
};
struct goods
{
    nal swh;
    kart sstock;
    sms sorder;
};
struct s{goods g; bool sp;} ss[5];
void menu();
void list();
void del();
void enter();
int free();
 
void main ()
{
    for (int i=0; i<100000; i++)
    {
        int a;
        menu();
        std::cin>>a;
        switch (a)
        {
        case 1: enter(); break;
        case 2: del(); break;
        case 3: list(); break;
        case 4: exit(0);
        }
    }
}
void list()
{
    int i;
    std::cout<<"\nNumber of the string for print is:\n ";
    std::cin>>i;
    --i;
    if (ss[i].sp=1)
    {
        std::cout<<"OPERACII NALICNIMI:\n";
        std::cout<<"summa nalichn'mi:\n"; 
        std::cout<<::ss[i].g.swh.summa_nal<<"\n";
        std::cout<<"vid nalichnoi valuti:\n";
        std::cout<<::ss[i].g.swh.vid_val<<"\n";
        std::cout<<"OPERACII PO KARTOCHKE:\n";
        std::cout<<"Karta: 1. type1, 2. type2, 3. type3,  4. type4:\n"; 
        std::cout<<::ss[i].g.sstock.n<<"\n";
        std::cout<<"N kartochki:\n";
        std::cout<<::ss[i].g.sstock.N<<"\n";
        std::cout<<"Klient name:\n"; 
        std::cout<<::ss[i].g.sstock.name<<"\n";
        std::cout<<"summa po kartochke:\n"; 
        std::cout<<::ss[i].g.sstock.summa2<<"\n";
        std::cout<<"SNS BANKING:\n";
        std::cout<<"Operator:\n";
        std::cout<<::ss[i].g.sorder.oper;
        std::cout<<"\n";
        std::cout<<"Bank:\n";
        std::cout<<::ss[i].g.sorder.bank<<"\n";
        std::cout<<"Nomer kart':\n";
        std::cout<<::ss[i].g.sorder.N_kart<<"\n";
        std::cout<<"Nomer telefona:\n";
        std::cout<<::ss[i].g.sorder.N_tel<<"\n";
        std::cout<<"Vvedenaja summa:\n";
        std::cout<<::ss[i].g.sorder.summa3<<"\n";   
    }
}
 
 
 
void enter()
{
    int t, y;
    std::cout<<"\nNumber of the string dla vvoda is:\n ";
    std::cin>>y;
    y=y-1;
    if (ss[y].sp==0)
    {
        std::cout<<"OPERACII NALICNIMI:\n";
        std::cout<<"summa nalichn'mi:\n";
        std::cin>>::ss[y].g.swh.summa_nal;
        std::cout<<"vid nalichnoi valuti:\n";
        std::cin>>::ss[y].g.swh.vid_val;
        std::cout<<"OPERACII PO KARTOCHKE:\n";
        std::cout<<"Karta: 1. type1, 2. type2, 3. type3, 4. type4:\n";
        std::cin>>t;
        switch (t)
        {
        case 1: { ::ss[y].g.sstock.n=type1; break; }
        case 2: { ::ss[y].g.sstock.n=type2; break; }
        case 3: { ::ss[y].g.sstock.n=type3; break; }
        case 4: { ::ss[y].g.sstock.n=type4; break; }
        }
        std::cout<<"Nomer kartochki:\n";
        std::cin>>::ss[y].g.sstock.N;
        std::cout<<"klient name:\n";
        std::cin>>::ss[y].g.sstock.name;
        std::cout<<"Summa po kartochke:\n";
        std::cin>>::ss[y].g.sstock.summa2;
        std::cout<<"SNS BANKING:\n";
        std::cout<<"Operator:\n";
        std::cin>>::ss[y].g.sorder.oper;
        std::cout<<"Bank:\n";
        std::cin>>::ss[y].g.sorder.bank;
        std::cout<<"Nomer kart':\n";
        std::cin>>::ss[y].g.sorder.N_kart;
        std::cout<<"Nomer telefona:\n";
        std::cin>>::ss[y].g.sorder.N_tel;
        std::cout<<"Vvedenaja summa:\n";
        std::cin>>::ss[y].g.sorder.summa3;
        ss[y].sp=1;
    }
    else std::cout<<"Zapolnena\n";
}
 
void menu()
{
    std::cout<<"\n1. Add info.\n2. Delete info.\n3. Show the list.\n4. Exit\n"; 
}
 
void del()
{
    int a;
    std::cout<<"\nNumber of the string for delete is: ";
    std::cin>>a;
    ss[a-1].sp=0;
    return;
}
Добавлено через 38 секунд
Написал, работает
1
0 / 0 / 0
Регистрация: 02.02.2022
Сообщений: 2
02.02.2022, 23:53
Я конечно понимаю, что опоздал на 12 лет, но если тут вдруг будут те, кому еще актуально это задание, то вот. Это доработка версии господина Дима-Дима(спасибо, что спас меня), но в которой есть буквально ВСЁ, что прописано в задании и к тому же моя версия более читабельная. На данный момент меня и моих сил совсем не хватило закомментировать это, однако, надеюсь, вы поймёте и так))

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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
#include<iostream>
 
using namespace std;
 
enum karta {
    type1 = 1,
    type2,
    type3,
    type4
};
struct nalich {
    char nalich_currency_type[30];
    int nalich_summa;
    bool flag;
};
struct card {
    karta typ;
    char card_number[20];
    char card_name_holder[20];
    int card_summa;
    bool flag;
};
struct sms_banking {
    char sms_mobile_operator[20];
    char sms_bank_name[20];
    char sms_card_number[20];
    char sms_phone_number[20];
    int sms_summa;
    bool flag;
};
struct platezhi {
    nalich nalich;
    card card;
    sms_banking sms_banking;
}ss[5];
 
void menu(); void enter(); void del(); void list();
 
 
int main() {
    for (;;) {
        int ch;
        menu();
        cin >> ch;
        switch (ch) {
        case 1: enter(); break;
        case 2: del(); break;
        case 3: list(); break;
        case 4: exit(0);
        default: cout << "Enter correct menu option\n\n";
        }
    }
}
 
 
void menu() {
    cout << "MENU\n1-Add info    2-Delete info    3-Show the list     4-Exit\n";
}
void enter() {
    int type, ind, x;
    for (;;) {
        for (;;) {
            cout << "Enter number of cell to input:  ";
            cin >> ind;
            if (ind > 5) {
                cout << "\nEnter correct cell\n\n";
            }
            else {
                ind--; break;
            }
        }
        for (;;) {
            cout << "Enter type of operation\n1-Cash      2-Card      3-sms\n";
            cin >> x;
            if (x == 1) {
                for (;;) {
                    if (ss[ind].nalich.flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nCash operations:\n";
                        cout << "Sum:  ";
                        cin >> ::ss[ind].nalich.nalich_summa;
                        cout << "Type of currency:  ";
                        cin >> ::ss[ind].nalich.nalich_currency_type;
                        cout << "\n\n";
                        ss[ind].nalich.flag = true;
                        break;
                    }
                }
                break;
            }
            else if (x == 2) {
                for (;;) {
                    if (ss[ind].card.flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nCard operations:  ";
                        for (;;) {
                            cout << "\nChoose type of card: 1-type1    2-type2     3-type3     4-type4:\n";
                            cin >> type;
                            if (type == 1 || type == 2 || type == 3 || type == 4) {
                                switch (type) {
                                case 1: {::ss[ind].card.typ = type1; break; }
                                case 2: {::ss[ind].card.typ = type2; break; }
                                case 3: {::ss[ind].card.typ = type3; break; }
                                case 4: {::ss[ind].card.typ = type4; break; }
                                }
                                break;
                            }
                            else { cout << "Enter correct cell for delete\n\n"; }
                        }
                        cout << "Card number:  ";
                        cin >> ::ss[ind].card.card_number;
                        cout << "Second name of holder:  ";
                        cin >> ::ss[ind].card.card_name_holder;
                        cout << "Sum:  ";
                        cin >> ::ss[ind].card.card_summa;
                        cout << "\n\n";
                        ss[ind].card.flag = true;
 
                    }
                }
                break;
            }
            else if (x == 3) {
                for (;;) {
                    if (ss[ind].sms_banking.flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nSMS-banking:  ";
                        cout << "\nMobile operator:  ";
                        cin >> ::ss[ind].sms_banking.sms_mobile_operator;
                        cout << "Bank:  ";
                        cin >> ::ss[ind].sms_banking.sms_bank_name;
                        cout << "Card number:  ";
                        cin >> ::ss[ind].sms_banking.sms_card_number;
                        cout << "Phone number:  ";
                        cin >> ::ss[ind].sms_banking.sms_phone_number;
                        cout << "Sum:  ";
                        cin >> ::ss[ind].sms_banking.sms_summa;
                        cout << "\n\n";
                        ss[ind].sms_banking.flag = true;
                        break;
                    }
                }
                break;
            }
            else {
                cout << "Choose correct cell\n\n\n";
                break;
            }
        }
        break;
    }
}
void del() {//удаляет флажок заполненности
    int a, b;
    cout << "Enter operation to delete it\n1-Cash     2-Card      3-SMS-banking\n";
    cin >> b;
    cout << "\nNumber of the cell for delete is: ";
    cin >> a;
    if (b == 1) {
        if (ss[a - 1].nalich.flag == false) {
            cout << "There are no one note\n\n";
        }
        else ss[a - 1].nalich.flag = false;
    }
    else if (b == 2) {
        if (ss[a - 1].card.flag == false) {
            cout << "There are no one note\n\n";
        }
        else ss[a - 1].card.flag = false;
    }
    else if (b == 3) {
        if (ss[a - 1].sms_banking.flag == false) {
            cout << "There are no one note\n\n";
        }
        else ss[a - 1].sms_banking.flag = false;
    }
    else cout << "Enter correct cell for delete\n\n";
 
}
void list() {
    cout << "\n\n\nCash operations:\n";
    for (int j = 0; j < 5; j++) {
        if (ss[j].nalich.flag == true) {
            cout << "Sum:  ";
            cout << ::ss[j].nalich.nalich_summa << "\n";
            cout << "Currency type:  ";
            cout << ::ss[j].nalich.nalich_currency_type << "\n";
        }
    }
 
    cout << "\n\nCard operations:\n";
    for (int j = 0; j < 5; j++) {
        if (ss[j].card.flag == true) {
            cout << "Card type:  ";
            cout << ::ss[j].card.typ << "\n";
            cout << "Card number:  ";
            cout << ::ss[j].card.card_number << "\n";
            cout << "Second name of holder:  ";
            cout << ::ss[j].card.card_name_holder << "\n";
            cout << "Sum on card:  ";
            cout << ::ss[j].card.card_summa << "\n\n";
        }
    }
 
    cout << "\n\nSMS-banking:\n";
    for (int j = 0; j < 5; j++) {
        if (ss[j].sms_banking.flag == true) {
            cout << "Mobile operator:  ";
            cout << ::ss[j].sms_banking.sms_mobile_operator << "\n";
            cout << "Bank:  ";
            cout << ::ss[j].sms_banking.sms_bank_name << "\n";
            cout << "Card number':  ";
            cout << ::ss[j].sms_banking.sms_card_number << "\n";
            cout << "Phone number:  ";
            cout << ::ss[j].sms_banking.sms_phone_number << "\n";
            cout << "Sum:  ";
            cout << ::ss[j].sms_banking.sms_summa << "\n\n";
        }
    }
    cout << "\n\n\n";
}
0
0 / 0 / 0
Регистрация: 02.02.2022
Сообщений: 2
16.02.2022, 00:06
Ding Dogen, как выяснилось, я немного некорректно понял условие(хотя в этом случае уж весьма неочевидно). Вот обновленный вариант(полностью рабочий):
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
#include<iostream>
 
using namespace std;
 
enum karta {
    type1 = 1,
    type2,
    type3,
    type4
};
struct nalich {
    char nalich_currency_type[30];
    int nalich_summa;
    bool flag;
};
struct card {
    karta typ;
    char card_number[20];
    char card_name_holder[20];
    int card_summa;
    bool flag;
};
struct sms_banking {
    char sms_mobile_operator[20];
    char sms_bank_name[20];
    char sms_card_number[20];
    char sms_phone_number[20];
    int sms_summa;
    bool flag;
};
union platezhi {
    nalich nalich;
    card card;
    sms_banking sms_banking;
    bool flag;
}ss[5];
 
void menu(); void enter(); void del(); void list();
 
 
int main() {
    for (;;) {
        int ch;
        menu();
        cin >> ch;
        switch (ch) {
        case 1: enter(); break;
        case 2: del(); break;
        case 3: list(); break;
        case 4: exit(0);
        default: cout << "Enter correct menu option\n\n";
        }
    }
}
 
 
void menu() {
    cout << "MENU\n1-Add info    2-Delete info    3-Show the list     4-Exit\n";
}
void enter() {
    int type, ind, x;
        for (;;) {
            cout << "Enter number of cell to input:  ";
            cin >> ind;
            if (ind > 5) {
                cout << "\nEnter correct cell\n\n";
            }
            else {
                ind--; break;
            }
        }
        for (;;) {
            cout << "Enter type of operation\n1-Cash      2-Card      3-sms\n";
            cin >> x;
            if (x == 1) {
                for (;;) {
                    if ( ss[ind].flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nCash operations:\n";
                        cout << "Sum:  ";
                        cin >> ::ss[ind].nalich.nalich_summa;
                        cout << "Type of currency:  ";
                        cin >> ::ss[ind].nalich.nalich_currency_type;
                        cout << "\n\n";
                        ss[ind].nalich.flag = true;
                        ss[ind].flag = true;
                        break;
                    }
                }
                break;
            }
            else if (x == 2) {
                for (;;) {
                    if (ss[ind].flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nCard operations:  ";
                        for (;;) {
                            cout << "\nChoose type of card: 1-type1    2-type2     3-type3     4-type4:\n";
                            cin >> type;
                            if (type == 1 || type == 2 || type == 3 || type == 4) {
                                switch (type) {
                                case 1: {::ss[ind].card.typ = type1; break; }
                                case 2: {::ss[ind].card.typ = type2; break; }
                                case 3: {::ss[ind].card.typ = type3; break; }
                                case 4: {::ss[ind].card.typ = type4; break; }
                                }
                                break;
                            }
                            else { cout << "Enter correct cell for delete\n\n"; }
                        }
                        cout << "Card number:  ";
                        cin >> ::ss[ind].card.card_number;
                        cout << "Second name of holder:  ";
                        cin >> ::ss[ind].card.card_name_holder;
                        cout << "Sum:  ";
                        cin >> ::ss[ind].card.card_summa;
                        cout << "\n\n";
                        ss[ind].card.flag = true;
                        ss[ind].flag = true;
                        break;
 
                    }
                }
                break;
            }
            else if (x == 3) {
                for (;;) {
                    if (ss[ind].flag == true) {
                        cout << "\nCell is full. Choose another cell\n\n";
                        break;
                    }
                    else {
                        cout << "\nSMS-banking:  ";
                        cout << "\nMobile operator:  ";
                        cin >> ::ss[ind].sms_banking.sms_mobile_operator;
                        cout << "Bank:  ";
                        cin >> ::ss[ind].sms_banking.sms_bank_name;
                        cout << "Card number:  ";
                        cin >> ::ss[ind].sms_banking.sms_card_number;
                        cout << "Phone number:  ";
                        cin >> ::ss[ind].sms_banking.sms_phone_number;
                        cout << "Sum:  ";
                        cin >> ::ss[ind].sms_banking.sms_summa;
                        cout << "\n\n";
                        ss[ind].sms_banking.flag = true;
                        ss[ind].flag = true;
                        break;
                    }
                }
                break;
            }
            else {
                cout << "Choose correct cell\n\n\n";
                break;
            }
        }
}
void del() {//удаляет флажок заполненности
    int a, b;
    cout << "Enter operation to delete it\n1-Cash     2-Card      3-SMS-banking\n";
    cin >> b;
    cout << "\nNumber of the cell for delete is: ";
    cin >> a;
    if (b == 1) {
        if (ss[a - 1].nalich.flag == false) {
            cout << "There are no one note\n\n";
        }
        else { 
            ss[a - 1].nalich.flag = false;
            ss[a - 1].flag = false;
        }
    }
    else if (b == 2) {
        if (ss[a - 1].card.flag == false) {
            cout << "There are no one note\n\n";
        }
        else {ss[a - 1].card.flag = false;
            ss[a - 1].flag = false;
        }
    }
    else if (b == 3) {
        if (ss[a - 1].sms_banking.flag == false) {
            cout << "There are no one note\n\n";
        }
        else {
            ss[a - 1].flag = false;
            ss[a - 1].sms_banking.flag = false;
        }
    }
    else cout << "Enter correct cell for delete\n\n";
 
    }
void list() {
    for (int j = 0, q=0; j < 5; j++) {
        if (q == 4) {
            cout << "There are no one notes\n\n";
            break;
        }
        if (ss[j].flag==false) {
            q++;
            continue;
        }
        else {
            if (ss[j].nalich.flag == true) {
                cout << "\nCash operations:\n";
                cout << "Sum:  " << ::ss[j].nalich.nalich_summa << "\n";
                cout << "Currency type:  "<< ::ss[j].nalich.nalich_currency_type << "\n";
            }
 
            else if (ss[j].card.flag == true) {
                cout << "\nCard operations:\n";
                cout << "Card type:  "<< ::ss[j].card.typ << "\n";
                cout << "Card number:  "<< ::ss[j].card.card_number << "\n";
                cout << "Second name of holder:  "<< ::ss[j].card.card_name_holder << "\n";
                cout << "Sum on card:  "<< ::ss[j].card.card_summa << "\n\n";
            }
 
            else if (ss[j].sms_banking.flag == true) {
                cout << "\nSMS-banking:\n";
                cout << "Mobile operator:  " << ::ss[j].sms_banking.sms_mobile_operator << "\n";
                cout << "Bank:  " << ::ss[j].sms_banking.sms_bank_name << "\n";
                cout << "Card number':  " << ::ss[j].sms_banking.sms_card_number << "\n";
                cout << "Phone number:  " << ::ss[j].sms_banking.sms_phone_number << "\n";
                cout << "Sum:  " << ::ss[j].sms_banking.sms_summa << "\n\n";
            }
        }
    }
}
0
 Аватар для SmallEvil
3898 / 2811 / 786
Регистрация: 29.06.2020
Сообщений: 10,273
16.02.2022, 02:07
Цитата Сообщение от Дима-Дима Посмотреть сообщение
Описать структуру для хранения данных о платежах
Цитата Сообщение от Дима-Дима Посмотреть сообщение
Нужно срочно написать, а не выходит
а мытьвы пробовали

Добавлено через 2 минуты
Цитата Сообщение от SmallEvil Посмотреть сообщение
Нужно
кому ?
Цитата Сообщение от SmallEvil Посмотреть сообщение
срочно
ага
ну и как вам пирожки ? :
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2022, 02:07
Помогаю со студенческими работами здесь

Для хранения данных о ноутбуках описать структуру (сортировка не идет)
//* //Для хранения данных о ноутбуках описать структуру. //Написать функцию, которая читает данные о ноутбуках из файла note.txt в...

Описать, используя структуру данных запись, камеру хранения
Ребят,помогите,пожалуйста Нужно написать программу,паскаль Описать, используя структуру данных запись, камеру хранения (шифр, индекс...

Описать структуру для хранения информации
1. Описать структуру для хранения следующей информации: - название продукции - стоимость за единицу - количество - дата...

Реализовать структуру данных для хранения координат прямоугольника
Ребята, помогите... Зачет по ОПП. Задание - реализовать структуру данных для хранения координат прямоугольника и вычисления его сторон....

Необходимо выбрать структуру (список, К-Ч дерево и т.д) для хранения данных
Решил описать задачку здесь, может кому тоже интересно будет, такие не каждый день на выдумывание хитрых алгоритмов дают, это не скучная...


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

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

Новые блоги и статьи
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
Как некоторые отстают в навыках поиска информации в сети. Дублирование страницы открытого адреса в сети.
Hrethgir 17.05.2025
. . . берём бразуер, для многих он является инструментом поиска информации в сети. Понятное дело, что чтобы переходить по сслыкам есть такая фишка - "открыть в новой вкладке", но, представим себе что вы. . .
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru