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

Создать массив структур - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
mix1965
 Аватар для mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
13.04.2010, 19:49     Создать массив структур #1
Создать массив структур и выполнить задание согласно своему варианту.

Дана информация о шести вкладчиках в сберкассы. Структура имеет вид: фамилия, район, социальное положение, величина вклада. Вывести данные о том, сколько среди вкладчиков служащих, рабочих и колхозников.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mix1965
 Аватар для mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
16.04.2010, 10:32  [ТС]     Создать массив структур #2
Кто нибудь!!!!! Аууу!
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
16.04.2010, 12:19     Создать массив структур #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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>
using namespace std;
 
enum ClientType
{
  ctClerk = 0,
  ctWorker = 1,
  ctFarmer = 2
};
 
struct Client
{
  char* name;
  char* area;
  ClientType type;
  double deposit;
};
 
Client clients[]={
  {"Петя","город",ctClerk,1200.45},
  {"Вася","пригород",ctWorker,3400.67},
  {"Федя","село",ctFarmer,432.78},
  {"Егор","село",ctFarmer,67.05},
  {"Маша","пригород",ctWorker,67008.89},
  {"Леня","деревня",ctFarmer,125.35},
  {0, 0, ctClerk, 0},
};
 
int GetCount(Client* client_array,ClientType type)
{
  int result = 0;
  for(size_t i=0;client_array[i].name != 0;i++)
    if(client_array[i].type == type)
      result++;
  return result;
}
 
int main(void)
{
  cout << "Clerk count = " << GetCount(&clients[0], ctClerk) << endl;
  cout << "Worker count = " << GetCount(&clients[0], ctWorker) << endl;
  cout << "Farmer count = " << GetCount(&clients[0], ctFarmer) << endl;
  return 0;
}
mix1965
 Аватар для mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
16.04.2010, 13:20  [ТС]     Создать массив структур #4
BornLeader, Спасибо!!!
Извени я не написал.....
Мне вот на Си/чистом надо/, а это С++ кажется. Можно переделать?
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
16.04.2010, 14:10     Создать массив структур #5
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
#include <stdio.h>
#include <stdlib.h>
 
enum ClientType
{
  ctClerk = 0,
  ctWorker = 1,
  ctFarmer = 2
};
 
struct Client
{
  char* name;
  char* area;
  int type;
  double deposit;
} clients[]={
  {"Петя","город",ctClerk,1200.45},
  {"Вася","пригород",ctWorker,3400.67},
  {"Федя","село",ctFarmer,432.78},
  {"Егор","село",ctFarmer,67.05},
  {"Маша","пригород",ctWorker,67008.89},
  {"Леня","деревня",ctFarmer,125.35},
  {0, 0, ctClerk, 0},
};
 
int GetCount(int type)
{
  int result = 0;
  int i;
  for(i=0; clients[i].name != 0;i++)
    if(clients[i].type == type)
      result++;
  return result;
}
 
int main(void)
{
  printf("Clerk count = %d\n", GetCount(ctClerk));
  printf("Worker count = %d\n",GetCount(ctWorker));
  printf("Farmer count = %d\n",GetCount(ctFarmer));
  return 0;
}
mix1965
 Аватар для mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
16.04.2010, 16:36  [ТС]     Создать массив структур #6
BornLeader, конкретный тебе респект!
Здорово у тебя получается! Ты наверное работаешь с Си постоянно?
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
16.04.2010, 16:38     Создать массив структур #7
Цитата Сообщение от mix1965 Посмотреть сообщение
Ты наверное работаешь с Си постоянно?
Постоянно на С++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2010, 16:53     Создать массив структур
Еще ссылки по теме:

C++ как создать массив структур?
C++ Создать указатель на массив структур ZODIAK.
C++ создать массив структур из 10 элементов

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

Или воспользуйтесь поиском по форуму:
mix1965
 Аватар для mix1965
2 / 2 / 0
Регистрация: 13.04.2010
Сообщений: 23
16.04.2010, 16:53  [ТС]     Создать массив структур #8
BornLeader, ,
а я элекроникой платы, винты ,видеокарты, бп,моники-проги писать скорее всего не придётся,
сети как бы профиль определён уже..
Не сочти за наглость,я тебе оч признателен, может глянешь ещё одну штуку...
Есть исходник по моему заданию, но он не работает.
Разбираться мне придётся вплотную либо с ним либо другой писать т.к. нужно схему и коментарии к этому заданию.
Никто ответ дать не может, а мне это важно. Надо чтоб на Си /чистом/ было
Задание такое:
Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами:

1. Создание списка.
2. Просмотр списка.
3. Добавление в конец списка новой структуры.
4. удаление записи.
5. Выход.
Структура содержит название, цену, количество товара. Удалить из списка заданный товар.
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
#include<string.h>
#include<conio.h>
#include<io.h>
struct tov{
   char nazvanie[10];
   float cena;
   int kol;
   tov * nextElement;
   tov * lastElement;
};
//=======================================
    tov * firstElement,   //первый
         * endElement,     //последний
         * currentElement, //текущий
         * nextElement,    //следующий
         * lastElement,    //предыдущий
         * tempElement;
    int allElement=0;
    FILE *save; 
//=======================================
    void Menu(void);
    void sozdanie_SP(void);
    void prosmotr_SP();
    void dobavlenie_SP();
    void udalenie_EL();
 
int main(){
    firstElement=0;
    endElement=0;
    Menu();
    getche();
    return 0;
 } 
 //===================  для ввода данных ===================
void enterElement(tov * element){ 
    printf(" vvedite nazvanie tovara  : ");
    scanf("%s",&element->nazvanie);
    printf(" vvedite cenu tovara  : ");
    scanf("%f",&element->cena);
    printf(" vvedite kolichestvo tovara  : ");
    scanf("%d",&element->kol);
    }
void sozdanie_SP(void){
    tov * newElement;     //новый
    do{
        allElement++;
        newElement = new tov;
        enterElement(newElement);
        if (firstElement!=0){
                newElement->nextElement=firstElement;
                firstElement->lastElement=newElement;
                firstElement=newElement;
            } else firstElement=endElement=newElement;
    }while(getche()!=27);
    newElement->lastElement=endElement;
    endElement->nextElement=newElement;
    Menu();
 }  
 //============================== Удаление одной записи ===================================
void udalenie_EL(tov * delRec){
    delRec->lastElement->nextElement=delRec->nextElement;
    delRec->nextElement->lastElement=delRec->lastElement;
    delete delRec;
}
 //============================== Добавление записи ===================================
void dobavlenie_SP(tov * lastRec, tov * nextRec){
    tov *tempLast=lastRec;
    tov *tempNext=nextRec;
    do{
        
        allElement++;
        tov * newElement;
        newElement = new tov;
        enterElement(newElement);
        newElement->lastElement=lastRec;
        newElement->nextElement=nextRec;
        lastRec->nextElement=newElement;
        nextRec->lastElement=newElement;
        lastRec=newElement;
    }while(getche()!=27);
 
} 
//============================== Создание меню ===================================
void Menu(void) {
 
    
    printf(" MENU \n");
 
    printf(" F1 - VVEDITE NAZVANIE TOVARA                \n");
    printf(" F2 - PROSMOTR                               \n");
    printf(" F3 - DOBAVLENIE                             \n");
    printf(" Del - UDALENIE                              \n");
    printf(" Esc - VYHOD                                 \n");
    switch (getch()){
         case 59: sozdanie_SP();break;
        case 60: prosmotr_SP();break;
        case 61: prosmotr_SP();break;
        case 62: dobavlenie_SP();break;
        case 63: udalenie_EL();break;
        case 27: break;
        default: Menu();
        
    }
}
Yandex
Объявления
16.04.2010, 16:53     Создать массив структур
Ответ Создать тему
Опции темы

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