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

Описать структуру для хранения следующей информации - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 11:03     Описать структуру для хранения следующей информации #1
Нужно срочно написать, а не выходит((((
Описать структуру для хранения следующей информации (при необходимости используйте перечисления):

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

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

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

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

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

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

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

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

· вывод всех записей массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 11:03     Описать структуру для хранения следующей информации
Посмотрите здесь:

C++ Сформировать структуру AEROFLOT для хранения следующей информации номер рейса название пункта назначения рейса тип самолета
C++ Определите структуру Complex для хранения комплексных чисел
Определите структуру Complex для хранения комплексных чисел C++
Определите структуру Complex для хранения комплексных чисел C++
Описать абстрактный класс для хранения информации геометрических фигурах. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
10.12.2010, 11:27     Описать структуру для хранения следующей информации #2
Дима-Дима А что не выходит?
Ты хочешь что бы тебе помогли или все написали за тебя?
Дима-Дима
1 / 1 / 0
Регистрация: 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);

как дальше не пойму(((
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
10.12.2010, 11:50     Описать структуру для хранения следующей информации #4
Дима-Дима А у тебя хоть какие то идеи есть как это делать или все по нулям?
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 11:55  [ТС]     Описать структуру для хранения следующей информации #5
как написать меню, то по нулям. с таким я еще не сталкивался

Добавлено через 3 минуты
я с одной структурой писал, а тут их дофига.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
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, просто составной.
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63
10.12.2010, 12:08  [ТС]     Описать структуру для хранения следующей информации #7
еще вопрос как что писать в void init_list(void) и как в данном случае обращаться к элементам структуры?
Eliont
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 для своего языка программирования в минимальном варианте написать. Полную версию проги можешь здесь глянуть, многовато в пост вставлять.
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
10.12.2010, 12:15     Описать структуру для хранения следующей информации #9
обращение к элементам структуры очень простое
есть глобальный массив plateg, его элемент получаешь plateg[1] например.
номер карты например 3-го платежа получаешь так plateg[2].k.nom_kart
так же можешь обращаться к любому элементу структур.
в init_list можешь например пробежаться по всем данным структур всех платежей и обнулить их.
По условию, как я понял, у тебя может быть только 5 платежей, поэтому массив статический.
В общем случае массив plateg делают динамическим и тогда выделять под него память можно в init_list
Дима-Дима
1 / 1 / 0
Регистрация: 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);
}
}
}
пока вот что вышло
solar_wind
 Аватар для solar_wind
740 / 731 / 39
Регистрация: 06.07.2009
Сообщений: 2,937
Завершенные тесты: 1
10.12.2010, 12:50     Описать структуру для хранения следующей информации #11
Ну например обнулить наличные платежи можно так:
for(int i=0;i<5;i++)
{
plateg[i].n.vid_nal="";
plateg[i].n.sum=0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 07:56     Описать структуру для хранения следующей информации
Еще ссылки по теме:

Определите структуру Complex для хранения комплексных чисел C++
Разработать объектную структуру для хранения информации в титульном листе зачетной книжки C++
C++ Разработать объектную структуру для хранения информации о зачетной книжке

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

Или воспользуйтесь поиском по форуму:
Дима-Дима
1 / 1 / 0
Регистрация: 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 секунд
Написал, работает
Yandex
Объявления
11.12.2010, 07:56     Описать структуру для хранения следующей информации
Ответ Создать тему
Опции темы

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