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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2014, 16:29   #1
katy_tema_love
Новичок
Джуниор
 
Регистрация: 14.05.2014
Сообщений: 1
Восклицание сделать справочник коммерческих банков. задача в с++

Справочник коммерческих банков. База содержит наименование банка, его статус (форма собственности), условия хранения средств на лицевом счете (годовые проценты для различных видов вкладов). Программа осуществляет выбор банка с наибольшим процентом для заданного типа вклада.
ВОТ СПИСОК БАНКОВ
Госбанк ОАО «АСБ Беларусбанк» г.Минск, пр.Дзержинского, 18
Гарантированный доход от 25 %
Накопительный 30%
Сберегательный 19%

Госбанк ОАО "Приорбанк" г. Минск, ул. В.Хоружей, 31-А
Гарантированный доход от 27%
Накопительный 29%
Сберегательный 21%
Частный банк ЗАО «МТБанк» пр-т Партизанский, 6а
Гарантированный доход от 28%
Накопительный 28%
Сберегательный 22%
Частный банк ЗАО «Дельта Банк» ул. Розы Люксембург, 95
Гарантированный доход от 29%
Накопительный 32%
Сберегательный 23%
katy_tema_love вне форума Ответить с цитированием
Старый 14.05.2014, 16:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Сколько платите? Сроки?
p51x вне форума Ответить с цитированием
Старый 14.05.2014, 17:52   #3
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

как-нибудь так

Код:
#include "stdio.h"
#include "stdlib.h"
#include "memory"
#include "string"
#include "map"
#include "list"

class CBnkBase
{
public:
   enum percType
   {
       garantIncome = 1,
       commIncome,
       savingIncome,
   };      
   typedef std::map<int, unsigned long> PercentMap;    
   struct BankStruct
   {   
       char name[160];
       short status;
       PercentMap* percents;
       BankStruct()
       {
           percents = new PercentMap();
       }
       ~BankStruct()
       {
          if(percents)
          { 
            delete percents;
            percents = NULL;
          }
       }
   };
private:
   typedef std::list<BankStruct*> BankList;
   BankList _banks;
public:
    ~CBnkBase()
    {
        for(BankList::iterator it = _banks.begin(); it != _banks.end(); it++)        
           delete *it;
    }
    void insert(const char* name, short status, unsigned long garantIncomeVal, unsigned long commIncomeVal, unsigned long savingIncomeVal)
    {
        BankStruct* bs = new BankStruct();        
        strcpy(bs->name, name);
        bs->status = status;
        
        bs->percents->insert(PercentMap::value_type(garantIncome, garantIncomeVal));
        bs->percents->insert(PercentMap::value_type(commIncome, commIncomeVal));
        bs->percents->insert(PercentMap::value_type(savingIncome, savingIncomeVal));
        _banks.push_back(bs);
    }

    const BankStruct* getMaxByType(int type)
    {
        BankStruct* tmp;    
        unsigned long max_percent = 0;
        for(BankList::const_iterator it = _banks.begin(); it != _banks.end(); ++it)
        {
            PercentMap::const_iterator iit = (*it)->percents->find(type);
            if(iit != (*it)->percents->end())
            {
                if(max_percent < iit->second)
                {
                    max_percent = iit->second;
                    tmp = (*it);
                }
            }
        }
        return tmp;
    }
};

int main(int argc, char *argv[])
{ 
    CBnkBase bb;
    bb.insert("Госбанк ОАО \"АСБ Беларусбанк\" г.Минск, пр.Дзержинского, 18", 0, 25, 30, 19);
    bb.insert("Госбанк ОАО \"Приорбанк\" г. Минск, ул. В.Хоружей, 31-А", 0, 27, 29, 21);
    bb.insert("Частный банк ЗАО \"МТБанк\" пр-т Партизанский, 6а", 0, 28, 28, 22);
    bb.insert("Частный банк ЗАО \"Дельта Банк\" ул. Розы Люксембург, 95", 0, 29, 32, 23);
    const CBnkBase::BankStruct* b = bb.getMaxByType(CBnkBase::savingIncome);
    printf("Bank: %s", b->name);
    return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать справочник в Office Visual Basic (VBA) khamal Помощь студентам 1 15.01.2013 21:59
Идеи для коммерческих программ zumm Свободное общение 2 02.11.2012 21:47
Кто может сделать КОНСОЛЬНЫЙ ТЕЛЕФОННЫЙ СПРАВОЧНИК на С# hike7 Помощь студентам 1 10.10.2010 17:12