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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 18:38   #11
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
1) Код оформляется тегом CODE (кнопочка-"решётка" в интерфейсе отправки сообщения).
2) Число переменных правильное. Типы - по-прежнему int. Давайте мы их всё-таки приведём в соответствие с заданием: число автомобилей - unsigned int, суммарная выручка - double.
Abstraction вне форума Ответить с цитированием
Старый 14.02.2013, 16:06   #12
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

а что делать дальше, подскажите пожалуйста?
Diana528 вне форума Ответить с цитированием
Старый 14.02.2013, 16:13   #13
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
#include <cstdlib>
#include <iostream>

using namespace std;

class toolBooth
{
private:
unsigned int a; // chislo avtomobilei

double s; //summarnaya viruchka
};
Diana528 вне форума Ответить с цитированием
Старый 14.02.2013, 16:25   #14
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

теперь в раздел public вписывайте методы. Первый как-то так:
Код:
class ToolBooth {
private:
  unsigned int a; // chislo avtomobilei
  double s; //summarnaya viruchka
public:
  void payingCar();
};
void ToolBooth::payingCar() {
  ++a, s += 0.5f;
}
следующие 2 метода попробуйте написать по примеру )

Еще, полям стоит давать осмысленные названия, имена "a" и "s" ниочем не говорят. nAuto и cash - пример нормальных имен для вашего случая.
И еще, не пишите комментарии транслитом )

Последний раз редактировалось rrrFer; 14.02.2013 в 16:27.
rrrFer вне форума Ответить с цитированием
Старый 14.02.2013, 16:29   #15
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

вопрос, а почему вот так? - void ToolBooth:ayingCar() {
++a, s += 0.5f;
Diana528 вне форума Ответить с цитированием
Старый 14.02.2013, 16:48   #16
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
а что делать дальше, подскажите пожалуйста?
Следующий пункт:
Цитата:
Конструктор должен инициализировать оба поля нулевыми значениями.
Конструктор - особый метод класса, название которого совпадает с названием класса. Тело конструктора (как и любого метода) можно "вынести" за пределы класса, как показал rrrFer... но для мелких методов это, как правило, излишне. Ещё одна особенность конструктора - списки инициализации. Для учёного кота:
Код:
//Учёный кот
class WonderfulCat {
private: 
  int m_numSongs; //Число спетых песен. 

  int m_numTales; //Число рассказанных сказок

  int m_totalGone; //"Смещение" кота от начальной позиции. Если значение
  //отрицательное - это смещение влево, положительное - вправо

public: //Спецификатор доступа "доступно всем". Это - интерфейс класса:
//методы, которые будет использовать остальная программа.

  //Конструктор создаёт новый объект. В нашем случае, аргументов нет, void
  WonderfulCat(void) : m_numSongs(0), m_numTales(0), m_totalGone(0) //Список инициализации - указываем, кого и чем инициализируем
  {} //Тело конструктора. Поскольку ничего кроме инициализации мы не делаем, оно пустое
};
Abstraction вне форума Ответить с цитированием
Старый 14.02.2013, 16:52   #17
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
class ToolBooth 
{
private:
  unsigned int a; // chislo avtomobilei
  double s; //summarnaya viruchka
public:
 ToolBooth(void): a(0), s(0)
 {}
};
Diana528 вне форума Ответить с цитированием
Старый 14.02.2013, 17:16   #18
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Метод payingCar() инкрементирует число машин и увеличивает на 0,50 суммарную выручку. Другой метод, nорауСаг(), увеличивает на единицу число автомобилей, но оставляет без изменения выручку. Метод display() выводит оба значения на экран.
Метод - это, по сути, та же функция, но с одним "невидимым" аргументом, указателем на объект нашего класса. Поэтому внутри метода можно обращаться не только к его (метода) аргументам, но и к полям класса.
У учёного кота можно предусмотреть три метода: GoLeft(), GoRight() и Display(). Все они предназначены для использования в остальном коде, поэтому спецификатор доступа - public (в принципе, могут быть и private-методы, и даже private-конструкторы). Тела простых методов GoLeft() и GoRight() мы запишем внутри класса, а Display() вынесем, оставив в классе только заголовок:
Код:
//Учёный кот
class WonderfulCat {
private: 
  int m_numSongs; //Число спетых песен. 

  int m_numTales; //Число рассказанных сказок

  int m_totalGone; //"Смещение" кота от начальной позиции. Если значение
  //отрицательное - это смещение влево, положительное - вправо

public: //Спецификатор доступа "доступно всем". Это - интерфейс класса:
//методы, которые будет использовать остальная программа.

  //Конструктор создаёт новый объект. В нашем случае, аргументов нет, void
  WonderfulCat(void) : m_numSongs(0), m_numTales(0), m_totalGone(0) 
  {} 

  //Метод "пойти налево". Обратите внимание - метод (не конструктор и не деструктор) должен обозначить возвращаемое значение, как функция.
  void GoLeft(void) {
    //Идём налево - +1 к сказкам (гм...), -1 к смещению
    ++m_numTales; --m_totalGone;
  }

  //Аналогично, "пойти направо"
  void GoRight(void){
    //+1 к песням, +1 к смещению
    ++m_numSongs; ++m_totalGone;
  }

  //Метод "отобразить статистику кота". Здесь - только заголовок, кончающийся ;
  //const в конце относится к тому самому "невидимому" указателю - 
  //мы гарантируем, что от отображения статистики кот не изменится
  void Display(void) const;
};

//Поскольку за пределами класса непонятно, к какому классу относится
//Display(), используется оператор области видимости ::
//Это означает - "метод Display()const класса WondefrulCat":
void WonderfulCat::Display(void) const {
  //Тело метода
  std::cout << "Songs sung - " << m_numSongs << std::endl;
  std::cout << "Tales told - " << m_numTales << std::endl;

  if(m_totalGone > 0)
    std::cout << "Gone right " << m_totalGone << " steps total." << std::endl;
  else if(m_totalGone < 0)
    std::cout << "Gone left " << -m_totalGone << " steps total." << std::endl;
  else
    std::cout << "Is standing at starting point." << std::endl;
}
Abstraction вне форума Ответить с цитированием
Старый 14.02.2013, 17:37   #19
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

что значит тут std и std::endl
Diana528 вне форума Ответить с цитированием
Старый 14.02.2013, 17:45   #20
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

и еще вопрос, в программе нужно нажимать клавиши, их куда вводить?
Diana528 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в C++ Etete Помощь студентам 0 21.05.2012 21:36
Программа на С#. Классы MarihuanaP Фриланс 12 14.12.2011 05:48
С++,ООП,программа на классы VampIrchik Помощь студентам 1 25.01.2011 20:11
Классы в С++ Stager Помощь студентам 4 05.05.2009 10:05