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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Дима-Дима
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 63
#1

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

10.12.2010, 11:03. Просмотров 1879. Ответов 11
Метки нет (Все метки)

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

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

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

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

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

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

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

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

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

· вывод всех записей массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать структуру для хранения следующей информации (C++):

Сформировать структуру AEROFLOT для хранения следующей информации номер рейса название пункта назначения рейса тип самолета - C++
Сформировать структуру AEROFLOT для хранения следующей информации: · номер рейса; · название пункта назначения рейса; · тип...

Создать структуру для хранения информации о матрице переменных размерностей - C++
помогите, пожалуйста, разобраться с заданием создать структуру для хранения информации о матрице переменных размерностей Struct Matr { ...

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

Разработать объектную структуру для хранения информации в титульном листе зачетной книжки - C++
#include <iostream> #include <string> using namespace std; struct Zacetka {int nomer_zacetki; int nomer_prikaza; ...

Описать абстрактный класс для хранения информации геометрических фигурах. - C++
Описать абстрактный класс для хранения информации геометрических фигурах.Использовать его тестовой программе. я попробовал описать с...

Определите структуру Complex для хранения комплексных чисел - C++
Условия задачи: Определите структуру Complex для хранения комплексных чисел: struct Complex { double re; //вещественная...

11
solar_wind
756 / 747 / 42
Регистрация: 06.07.2009
Сообщений: 2,970
Завершенные тесты: 1
10.12.2010, 11:27 #2
Дима-Дима А что не выходит?
Ты хочешь что бы тебе помогли или все написали за тебя?
0
Дима-Дима
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);

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

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

Определите структуру Complex для хранения комплексных чисел - C++
Помоги пожалуйста не могу разобраться. Нужно определить типы и функции и в функции main() реализовать демонстрацию работы созданных...

Определите структуру Complex для хранения комплексных чисел - C++
Я чего-то совсем запутался, может кто поможет. =определить типы и функции в соответствии с вариантом задания; =в функции main()...

Определите структуру Complex для хранения комплексных чисел - C++
Не могу осилить задание, помогите! Определите структуру Complex для хранения комплексных чисел: struct Complex { ...

Класс для хранения персональной информации - C++
Из 5 пунктов должна получится программа. (можно с#) 1. Объявите класс CPerson, используемый для хранения информации о конкретном...


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

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

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