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

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

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

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

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

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

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

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

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

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

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

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

· вывод всех записей массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2010, 11:03
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 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
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 11:50 4
Дима-Дима А у тебя хоть какие то идеи есть как это делать или все по нулям?
0
3 / 3 / 1
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 11:55  [ТС] 5
как написать меню, то по нулям. с таким я еще не сталкивался

Добавлено через 3 минуты
я с одной структурой писал, а тут их дофига.
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:05 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
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  [ТС] 7
еще вопрос как что писать в void init_list(void) и как в данном случае обращаться к элементам структуры?
0
2 / 2 / 0
Регистрация: 10.12.2010
Сообщений: 29
10.12.2010, 12:13 8
Меню примерно так:
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
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:15 9
обращение к элементам структуры очень простое
есть глобальный массив 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  [ТС] 10
не понял как это ко мне привязать

Добавлено через 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
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
10.12.2010, 12:50 11
Ну например обнулить наличные платежи можно так:
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  [ТС] 12
ниче не получается

Добавлено через 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 13
Я конечно понимаю, что опоздал на 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 14
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
2682 / 2151 / 674
Регистрация: 29.06.2020
Сообщений: 7,960
16.02.2022, 02:07 15
Цитата Сообщение от Дима-Дима Посмотреть сообщение
Описать структуру для хранения данных о платежах
Цитата Сообщение от Дима-Дима Посмотреть сообщение
Нужно срочно написать, а не выходит
а мытьвы пробовали

Добавлено через 2 минуты
Цитата Сообщение от SmallEvil Посмотреть сообщение
Нужно
кому ?
Цитата Сообщение от SmallEvil Посмотреть сообщение
срочно
ага
ну и как вам пирожки ? :
0
16.02.2022, 02:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2022, 02:07
Помогаю со студенческими работами здесь

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

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

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

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

Организовать структуру данных Heap для хранения целых чисел
Помогите пожалуйста решить задачую Заранее спасибо! В этой задаче вам необходимо организовать...

Описать шаблон класса для хранения данных
Описать шаблон класса для хранения данных. Данные должны храниться, например, в виде массива....

Построить структуру данных для хранения слов в виде двумерного массива
Помогите пожалуйста сделать лабораторную. Очень надеюсь на вашу помощь. я в этом нуб. ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru