Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2014, 17:07   #1
bilbo
 
Регистрация: 12.09.2014
Сообщений: 9
По умолчанию Создание структуры в с++

Создать структуру, содержащую сведения по учету растений.Программа должна производить:
1)Подсчет количества растений указанного семейства.
2)вывод в виде таблицы информации о растениях, цветущих осенью
Структура содержит следующие поля:1)название растения,2)климатический пояс,3)семейство,4)время цветения,5)средняя масса соцветия,6)необходимая температура почвы.
bilbo вне форума Ответить с цитированием
Старый 12.09.2014, 18:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Попытки были? А то ща шаблоны и Эстээлы дадут )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2014, 20:20   #3
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
#include <stdio.h>
#include <vector>
#include <stdlib.h>
#include <algorithm>
#include <functional>

enum climatic_zone
{
  temperate,
  tropic,
};

enum flower_kinds
{
    kind_1,
    kind_2,
};

enum flowering_times
{
    summer,
    fall,
    spring,
    winter, 
};

std::string zone_tostr(climatic_zone x)
{
    switch(x){
    case temperate : return "temperate";
    case tropic : return "tropic";
    default : return "?";
    }
}

std::string kind_tostr(flower_kinds x)
{
    switch(x)
    {
    case kind_1 : return "kind_1";
    case kind_2 : return "kind_2";
    default: return "?";
    }
}

std::string fltime_tostr(flowering_times x)
{
    switch(x)
    {
    case summer : return "summer";
    case fall: return "fall";
    case spring : return "spring";
    case winter : return "winter";
    default : return "?";
    }
}


typedef struct
{
    char _name[160];
    climatic_zone _zone;
    flower_kinds _kind;
    flowering_times _fltime;
    unsigned long _aver_mass;
    long _ground_temp; 
} FLOWER_INFO;



bool is_kind(FLOWER_INFO inf, flower_kinds knd)
{ 
  return inf._kind == knd; 
}

void prn(FLOWER_INFO inf, flowering_times tm)
{
    if(inf._fltime == tm)
        printf("%10s%10s%10s%10s%10d%4d\n",inf._name,zone_tostr(inf._zone).c_str(),
kind_tostr(inf._kind).c_str(),fltime_tostr(inf._fltime).c_str(),inf._aver_mass,inf._ground_temp);
}


int main()
{  
    std::vector<FLOWER_INFO> _fl_list;
#define ADD_INFO(name) \
    FLOWER_INFO stt##name;\
    memset(&stt##name, 0, sizeof(stt##name));\
    strcpy(stt##name._name, #name);\
    stt##name._zone = (climatic_zone)(rand() % 1);\
    stt##name._kind = (flower_kinds)(rand() % 1);\
    stt##name._fltime = (flowering_times)(rand() % 3);\
    stt##name._aver_mass = rand() % 10 + 1;\
    stt##name._ground_temp = rand() % 30 - 10;\
    _fl_list.push_back(stt##name);
    ADD_INFO(vasilek)
    ADD_INFO(romashka)
    ADD_INFO(tulpan)
    int count = std::count_if(_fl_list.begin(), _fl_list.end(), std::bind2nd(std::ptr_fun(&is_kind), kind_1));    
    printf("count of kind_1 flowers:%d\n", count);
    printf("--------------------------------------------------------------------------------\n");
    printf("|   name  |   zone   |   kind   |  fltime |avg.mass|temp|\n");
    std::for_each(_fl_list.begin(), _fl_list.end(),std::bind2nd(std::ptr_fun(&prn), fall));
    return 0;
}
Помог? Оставляем отзыв =)

Последний раз редактировалось Stilet; 12.09.2014 в 21:50.
Helloween вне форума Ответить с цитированием
Старый 16.09.2014, 20:30   #4
bilbo
 
Регистрация: 12.09.2014
Сообщений: 9
По умолчанию

Завтра опробую,но при любом раскладе спасибо большое что уделили время.
bilbo вне форума Ответить с цитированием
Старый 16.09.2014, 20:36   #5
bilbo
 
Регистрация: 12.09.2014
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Helloween Посмотреть сообщение
Код:
#include <stdio.h>
#include <vector>
#include <stdlib.h>
#include <algorithm>
#include <functional>

enum climatic_zone
{
  temperate,
  tropic,
};

enum flower_kinds
{
    kind_1,
    kind_2,
};

enum flowering_times
{
    summer,
    fall,
    spring,
    winter, 
};

std::string zone_tostr(climatic_zone x)
{
    switch(x){
    case temperate : return "temperate";
    case tropic : return "tropic";
    default : return "?";
    }
}

std::string kind_tostr(flower_kinds x)
{
    switch(x)
    {
    case kind_1 : return "kind_1";
    case kind_2 : return "kind_2";
    default: return "?";
    }
}

std::string fltime_tostr(flowering_times x)
{
    switch(x)
    {
    case summer : return "summer";
    case fall: return "fall";
    case spring : return "spring";
    case winter : return "winter";
    default : return "?";
    }
}


typedef struct
{
    char _name[160];
    climatic_zone _zone;
    flower_kinds _kind;
    flowering_times _fltime;
    unsigned long _aver_mass;
    long _ground_temp; 
} FLOWER_INFO;



bool is_kind(FLOWER_INFO inf, flower_kinds knd)
{ 
  return inf._kind == knd; 
}

void prn(FLOWER_INFO inf, flowering_times tm)
{
    if(inf._fltime == tm)
        printf("%10s%10s%10s%10s%10d%4d\n",inf._name,zone_tostr(inf._zone).c_str(),
kind_tostr(inf._kind).c_str(),fltime_tostr(inf._fltime).c_str(),inf._aver_mass,inf._ground_temp);
}


int main()
{  
    std::vector<FLOWER_INFO> _fl_list;
#define ADD_INFO(name) \
    FLOWER_INFO stt##name;\
    memset(&stt##name, 0, sizeof(stt##name));\
    strcpy(stt##name._name, #name);\
    stt##name._zone = (climatic_zone)(rand() % 1);\
    stt##name._kind = (flower_kinds)(rand() % 1);\
    stt##name._fltime = (flowering_times)(rand() % 3);\
    stt##name._aver_mass = rand() % 10 + 1;\
    stt##name._ground_temp = rand() % 30 - 10;\
    _fl_list.push_back(stt##name);
    ADD_INFO(vasilek)
    ADD_INFO(romashka)
    ADD_INFO(tulpan)
    int count = std::count_if(_fl_list.begin(), _fl_list.end(), std::bind2nd(std::ptr_fun(&is_kind), kind_1));    
    printf("count of kind_1 flowers:%d\n", count);
    printf("--------------------------------------------------------------------------------\n");
    printf("|   name  |   zone   |   kind   |  fltime |avg.mass|temp|\n");
    std::for_each(_fl_list.begin(), _fl_list.end(),std::bind2nd(std::ptr_fun(&prn), fall));
    return 0;
}

Завтра опробую,но при любом раскладе спасибо большое что уделили время.
bilbo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание структуры таблиц БД lolwto Помощь студентам 0 23.10.2013 16:28
Создание сложной структуры XML artemavd Общие вопросы Delphi 24 19.11.2010 19:57
Создание структуры (С++) Cehn Помощь студентам 3 19.06.2010 23:43
C++ структуры: создание теста. Blondy Общие вопросы C/C++ 3 20.12.2009 23:02
Создание структуры Word VladimirVB Microsoft Office Word 4 02.05.2009 10:52