Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

last_wish

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
#include <iostream>
#include <algorithm>
#include <vector>
 
namespace krit
{
    int bit,count;
    char a;
}
 
class kvartira
{
public:
    kvartira(int obshS,int zilS,int kolEtaz,int cena,bool isSanuzel,bool isPanel);
    ~kvartira();
    int Get_obshS();
    int Get_zilS();
    int Get_kolEtaz();
    int Get_cena();
    bool isSanuzel();
    bool isPanel();
private:
    int _obshS,_zilS,_kolEtaz,_cena;
    bool _isSanuzel, _isPanel;        
};
 
kvartira::kvartira(int obshS,int zilS,int kolEtaz,int cena,bool isSanuzel,bool isPanel) :
    _obshS(obshS),_zilS(zilS),_kolEtaz(kolEtaz),_cena(cena),_isSanuzel(isSanuzel),_isPanel(isPanel)    
{}  
 
kvartira::~kvartira()  
{}
 
int kvartira::Get_cena()
{
    return _cena;
}
 
int kvartira::Get_kolEtaz()
{
    return _kolEtaz;
}
 
int kvartira::Get_obshS()
{
    return _obshS;
}
 
int kvartira::Get_zilS()
{
    return _zilS;
}
 
bool kvartira::isPanel()
{
    return _isPanel;
}
 
bool kvartira::isSanuzel()
{
    return _isSanuzel;
}
 
void kriterii(kvartira kv)
{
    switch (krit::a)
    {
        case 'a':
            if((krit::bit==0)&&(krit::count!=kv.Get_cena())) return;
            if((krit::bit==1)&&(krit::count>=kv.Get_cena())) return;
            if((krit::bit==-1)&&(krit::count<=kv.Get_cena())) return;
            break;
        case 'b':
            if((krit::bit==0)&&(krit::count!=kv.Get_kolEtaz())) return;
            if((krit::bit==1)&&(krit::count>=kv.Get_kolEtaz())) return;
            if((krit::bit==-1)&&(krit::count<=kv.Get_kolEtaz())) return;
            break;              
        case 'c':
            if((krit::bit==0)&&(krit::count!=kv.Get_zilS())) return;
            if((krit::bit==1)&&(krit::count>=kv.Get_zilS())) return;
            if((krit::bit==-1)&&(krit::count<=kv.Get_zilS())) return;
            break;              
        case 'd':
            if((krit::bit==0)&&(krit::count!=kv.Get_obshS())) return;
            if((krit::bit==1)&&(krit::count>=kv.Get_obshS())) return;
            if((krit::bit==-1)&&(krit::count<=kv.Get_obshS())) return;
            break;              
        case 'e':
            if(!kv.isSanuzel()) return;
            break;              
        case 'f':
            if(!kv.isPanel()) return;
            break;              
        case 'g':
            if(kv.isPanel()) return;
            break;
        default:
            return;              
    }
    std::cout << "==================" << '\n'
              << "Cena: " << kv.Get_cena() << '\n'
              << "Obsh.ploshad: " << kv.Get_obshS() << '\n'
              << "Zilploshad: " << kv.Get_zilS() << '\n'
              << "Kol-vo etazei: " << kv.Get_kolEtaz() << '\n'
              << "Panelnii: " << kv.isPanel() << '\n'
              << "San-Uzel: " << kv.isSanuzel() << std::endl;
}
 
int main()
{
    std::vector<kvartira> kvar;
    do
    {
        int obshS,zilS,etaz,cena;
        bool panel,sanuzel;
        std::cout << "Vvedite obsh. ploshad, 0 dlya vixoda" << std::endl;
        std::cin >> obshS;
        if (obshS<=0) break;
        std::cout << "Vvedite zil. ploshad" << std::endl;
        std::cin >> zilS;
        std::cout << "Vvedite kol-vo etazei" << std::endl;
        std::cin >> etaz;
        std::cout << "Vvedite cenu" << std::endl;
        std::cin >> cena;
        std::cout << "Nalicie sanuzla (1-da,0-net)?" << std::endl;
        std::cin >> sanuzel;
        std::cout << "Panelnii dom (1-da,0-net)?" << std::endl;
        std::cin >> panel;
        if(std::cin.fail()) return 1;
        kvartira kv(obshS,zilS,etaz,cena,sanuzel,panel);
        kvar.push_back(kv);  
    } while (true);
    //kriterii
    std::cout << "Vvedite kriterii: a) cena b) kol-vo etazei c) zilaya ploshad d) obshaya ploshad e) nalichie sanuzla \
            f) panelnii dom g) kirpicnii dom: ";
    std::cin >> krit::a; std::cin.ignore();
    if (krit::a>='a' && krit::a<='d')
    {
        std::cout << "Vvedite kolichestvo: ";
        std::cin >> krit::count;
        std::cin.ignore();
        std::cout << "Vvedite 1 - bolshe, -1 - menshe, 0 - ravno: ";
        std::cin >> krit::bit;  
    }
    std::cout << "+++++Naideno++++++" << std::endl;
    for_each(kvar.begin(),kvar.end(),kriterii);
    std::cout << "------------------";
    system("PAUSE");
     
    return 0;
}
 

Всего записей: 109 | Зарегистр. 26-10-2006 | Отправлено: 02:44 25-06-2007 | Исправлено: last_wish, 02:51 25-06-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru