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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 05:44   #1
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию Что я делаю не так?

Исправьте пожалуйста меня или скажите где я что то забыл
Часть 1
Код:
#include "iostream"
#include <string.h>

using namespace std;

class Base     // bazovyy class soderzhit vse obschie
{              // polya i methody
protected:
          char  Model[50];
          char Tip_topliva[50];
          int Ves_gruza_kg;
          int Rashod;  
          int Max_Speed;
          int Dalnost_peremechenia;
          int Max_kolichestvo_passagirov;
           int Max_visota;
          
public:
       Base(void);                    // constructor
       virtual void Input(void) = 0;  // method vvoda
       virtual void Print(void) = 0;  // method vyvoda

       /* opisanie drugih methodov, naprimer: */
           virtual int Type(void) = 0;    // tip objecta (Cat=1, Dog=2)
           int GetMax_Speed(void);            // uznat' Vlagnost
           int LessThan(Base * p);          // sravnit' nicki (menshe chem)
           char Marka[50];
           char Cvet[50];  
                 
};

Base::Base(void)  : Rashod(0), Max_Speed(0), Dalnost_peremechenia(0), Max_kolichestvo_passagirov(0)
{
                   Model[0] = 0;
                   Tip_topliva[0] = 0;
}
int Base::GetMax_Speed(void)
{
    return Rashod, Max_Speed, Dalnost_peremechenia, Max_kolichestvo_passagirov;
}

int Base::LessThan(Base*p)
{
    return Max_kolichestvo_passagirov<(p->Max_kolichestvo_passagirov);
}

class Auto : public Base
{
      
private:
        char Marka[50];
        char Cvet[50]; /*да или нет*/
public:
       Auto(void);
       void Input(void);
       void Print(void);
       int Type(void) {return 1; }
};

class Samolet : public Base
{
private:
        int Kolichestvo_chlenov_ekipaga[20];
        int Max_visota[10];
        int Kolichestvo_dvigateley[10];
public:
       Samolet(void);
       void Input(void);
       void Print(void);
       int Type(void) { return 2; }
};

Auto::Auto(void)
{
       Marka[0] = 0;
       Cvet[0] = 0;
       
}

void Auto::Input(void)
{
     cout << "Please, input Auto info\nAuto\t| Marka: ";
     cin >> Marka;
     cout << "\t| Cvet:  ";
     cin >> Cvet;
     cout << "\t| Model:  ";
     cin >> Model;
     cout << "\t| Tip_topliva: ";
     cin >> Tip_topliva;
     cout << "\t| Rashod: ";
     cin >> Rashod;
     cout << "\t| Max_Speed:  ";
     cin >> Max_Speed;
     cout << "\t| Dalnost_peremechenia:  ";
     cin >> Dalnost_peremechenia;
     cout << "\t| Max_kolichestvo_passagirov:  ";
     cin >> Max_kolichestvo_passagirov;
     cout << "\t| Ves_gruza_kg:  ";
     cin >> Ves_gruza_kg;
}

void Auto::Print(void)
{
     cout << "\nAuto\t| Marka:  " << Marka
     << "\n\t| Cvet: " << Cvet
     << "\n\t| Model:  " << Model
     << "\n\t| Tip_topliva: " << Tip_topliva
     << "\n\t| Rashod: " << Rashod
     << "\n\t| Max_Speed: " << Max_Speed
     << "\n\t| Dalnost_peremechenia: " << Dalnost_peremechenia
     << "\n\t| Max_kolichestvo_passagirov: " << Max_kolichestvo_passagirov
     << "\n\t| Ves_gruza_kg: " << Ves_gruza_kg
     <<"\n" ;
}

Samolet::Samolet(void)
{
                Model[0] = 0;
                Tip_topliva[0] = 0;
                
}

void Samolet::Input(void)
{
     cout << "Please, input Samolet info\nSamolet\t| Model: ";
     cin >> Model;
     cout << "\t| Tip_topliva: ";
     cin >> Tip_topliva;
     cout << "\t| Rashod: ";
     cin >> Rashod;
     cout << "\t| Max_Speed:  ";
     cin >> Max_Speed;
     cout << "\t| Max_visota:   ";
     cin >> Max_visota;
     cout << "\t| Dalnost_peremechenia:  ";
     cin >> Dalnost_peremechenia;
     cout << "\t| Max_kolichestvo_passagirov:  ";
     cin >> Max_kolichestvo_passagirov;
     cout << "\t| Ves_gruza_t:  ";
     cin >> Ves_gruza_t;
     cout << "\t| Kolichestvo_chlenov_ekipaga:  ";
     cin >> Kolichestvo_chlenov_ekipaga;
     cout << "\t| Kolichestvo_dvigateley:  ";
     cin >> Kolichestvo_dvigateley;
     
}

void Samolet::Print(void)
{
      cout << "\nSamolet\t| Model:  " << Model
     << "\n\t| Tip_topliva: " << Tip_topliva
     << "\n\t| Rashod: " << Rashod
     << "\n\t| Max_Speed: " << Max_Speed
     << "\n\t| Max_visota: " << Max_visota
     << "\n\t| Dalnost_peremechenia: " << Dalnost_peremechenia
     << "\n\t| Max_kolichestvo_passagirov: " << Max_kolichestvo_passagirov
     << "\n\t| Ves_gruza_t: " << Ves_gruza_t
      << "\n\t| Kolichestvo_chlenov_ekipaga:  " <<Kolichestvo_chlenov_ekipaga
      << "\n\t| Kolichestvo_dvigateley:  " << Kolichestvo_dvigateley
     <<"\n" ;
}
Kot070 вне форума Ответить с цитированием
Старый 15.04.2014, 05:45   #2
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Часть 2
Код:
void Sort (Base * A[], int N)
{
int i, j;
Base * p;

  for (i = N-1; i > 0; i--)
    for (j = 0; j < i; j++)
      if (A[i]->LessThan(A[j]))       // sravnenie objectov pri
      {                               // pomoschi metoda
        p = A[i];
        A[i] = A[j];
        A[j] = p;
      }
}

void Filter(Base * A[], int N)        // vyvod po priznaku
{
int i, j;

  cout << "Vvedite Max_Speed: ";
  cin >> j;
    for (i = 0; i < N; i++)
      if (A[i]->GetMax_Speed() == j)
      A[i]->Print();
}

void FilterType(Base * A[], int N, int tip) // vyvod po tipu
{
int i, j;

  for (i = 0; i < N; i++)
    if (A[i]->Type() == tip)          // proverka tipa
      A[i]->Print();
}

int main(void)
{
Base * A[20];
int N =0;

char key, key2;
Base * p;
int i, j;

   do
   {
       cout << "\n\n  1 dobavit'\n  2 udalit'\n  3 pechatat'\n"
            "  4 iskat'\n  5 sortirovat'\n  0 vyhod\n>>";
    cin >> key;

    switch (key)            // proverka nazhatoy klavishi
    {
      case '1':         // dobavlenie
        if (N >= 20)
        {
          cout << "net mesta!\n";
          break;
        }
        
        cout << "Dobavit':\n  1 Auto\n  2 Samolet\n>>";
        cin >> key2;
        if (key2 == '1')
          p = new Auto;      // sozdaem object Rastenie
        else
          if (key2 == '2')
            p = new Samolet;    // sozdaem object Riba
          else
          {
            cout << "nepravilno nazhali!\n";
            break;          // i vyhodim
          }

           if (p)              // yesly object sozdalsa, to
        {
          p->Input();       // vyzyvaem vvod objecta s klaviatury
          A[N] = p;         // zanosim ego v massiv
          N++;              // uvelichivaem kolichestvo objectov
        }
        else
          cout << "pamyaty ne hvataet!\n";
        break;
        
        case '2':         // udalenie
        cout << "Udalit':\nvvedite nomer ot 0 do " << N-1 << ": ";
        cin >> i;
        if (i < 0 || i >= N)
          cout << "nepravilnyy nomer!\n";
        else
        {
          delete A[i];          // unichtozhaem element
          for (; i < N-1; i++)  // sdvigaem ostalnye chtob
            A[i] = A[i+1];      //   v massive nebylo "dyrki"
          N--;                  // umenshaem kolichestvo objectov
        }
        break;
        
        case '3':         // prosmotr
        if (!N)                   // yesli net objectov - soobschaem
          cout << "Prosmotr: net objectov!\n";
        else
          for (i = 0; i < N; i++) // dlya vseh objectov
            A[i]->Print();        // vyzyvaem method vyvoda
        break;
        
        case '4':         // poisk
        cout << "Poisk:\n  1 vse Auto\n  2 vse Samolet\n  3 po Max_Speed\n>>";
        cin >> key2;
        if (key2 == '1')
          FilterType(A, N, 1);  // vyvod vseh Rastenii
        else
        if (key2 == '2')
          FilterType(A, N, 2);  // vyvod vseh Rib
        else
        if (key2 == '3')
          Filter(A, N);         // filtraciya po priznaku
        else
          cout << "nepravilno nazhali!\n";
        break;
        
        case '5':         // sortirovka
        Sort(A, N);
        break;

      case '0':         // vyhod
        break;
        
         default:
        cout << "nepravilno nazhali!\n";
        break;
    }
  }
  while (key != '0'); // rabotaem poka ne nazhat 0

  for (i = 0; i < N; i++)   // unichtozhaem vse objecty
    delete A[i];

  cout << "Poka!\n";
}
Kot070 вне форума Ответить с цитированием
Старый 15.04.2014, 05:47   #3
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

журнал компиляции
Вложения
Тип файла: txt журнал.txt (15.5 Кб, 134 просмотров)
Kot070 вне форума Ответить с цитированием
Старый 15.04.2014, 10:35   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

все не так. ошибок куча
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 15.04.2014, 12:53   #5
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

это я понимаю что ошибок куча, ошибка в том что я где то не тот тип переменной указал, но я не понимаю где (делал по примеру)
можете поправить?
Kot070 вне форума Ответить с цитированием
Старый 15.04.2014, 13:14   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Kot070
не только в этом.

раз
Код:
cin >> Ves_gruza_t; // что такое Ves_gruza_t?
два
Код:
int Kolichestvo_dvigateley[10];
...
cin >> Kolichestvo_dvigateley;
дальше мне ясно, что код полное гавно (то что он просто гавно ясно и так) и смотреть дальше смысла нет
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 15.04.2014, 13:22   #7
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

исправил) тему можно закрывать
Kot070 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так делаю? ratqa Общие вопросы C/C++ 2 13.12.2012 16:54
Что не так я делаю? volha_alina Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2012 13:05
Что я делаю не так rj-45 Microsoft Office Excel 7 22.11.2011 10:21
Что не так делаю? L6go1as Общие вопросы C/C++ 5 28.10.2011 07:54
не пойму что не так делаю Crudelis Общие вопросы C/C++ 3 23.04.2010 11:09