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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 13:11   #41
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

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

Цитата:
я убрала этот оператор, программа откомпилировалась, но на консоли пустой экран
И? Во-первых, что у Вас в main()? Во-вторых, разве не это требовалось? То есть, по идее, программа должна принимать нажатия клавиш и что-то написать только по [Esc], перед выходом. Ну, добавьте в начале main вывод какого-нибудь приветствия.
Abstraction вне форума Ответить с цитированием
Старый 19.02.2013, 16:59   #43
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Вот именно что по нажатию нужных клавиш, ничего не выходит...
Пожалуйста проверьте алгоритм...
Код:
#include <cstdlib>
#include <iostream>

using namespace std;

class ToolBooth 
{
private:
  unsigned int a; // chislo avtomobilei
  double s; //summarnaya viruchka
public:
 ToolBooth(void): a(0), s(0)
 {}
 void PayingCar(void)
 { ++a, s += 0.5f;
}
 void NopayCar(void)
 
      {
 ++a;
}
 void Display(void) const;
}; 
      void ToolBooth::Display(void) const
 {    
  std::cout << "Najmite klavishu space" <<a << std::endl;

}
int main(void){
  
  ToolBooth c; 
  while(true){
    switch(std::cin.get()){
    case 27: //27 - êîä [Esc]
      c.Display();
      return 0;
    case 'l': //Êîä êëàâèøè [l]
      c.PayingCar();
      break;
    case 'r':
      c.PayingCar();
      break;
    }
  }
}
Diana528 вне форума Ответить с цитированием
Старый 19.02.2013, 17:32   #44
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

1) У Вас тоже клавиши 'l' и 'r'? И для обоих, считается, что проехала заплатившая машина?
2) Что Вы выводите, по-Вашему, в методе Display()? Зачем Вы просите в нём пользователя нажать клавишу "пробел"?

Вообще, у Вас, по всей видимости, проблема, которую один знакомый преподаватель описал как "студенты обращаются с программами как с заклинаниями школы огня - не дай бог изменить хоть букву". Это серьёзно, очень серьёзно: если Вы написали код, который не в состоянии изменять - Вы написали бесполезный код; что хорошо (но скверно для Вас) - приличный преподаватель это тоже понимает. Поймите, что я привожу пример исключительно синтаксический - его не надо (читайте - нельзя) копировать, его надо прочитать, отложить в сторону и написать код самостоятельно.
Попробуйте так: вначале в каждом методе и каждой функции вообще не пишите кода, кроме финального return <что-нибудь>. Пишите комментарии - что должен будет делать этот кусочек программы. Уточняйте комментарии, делайте их более подробными. Ещё уточняйте. И ещё - пока Вам не станет проще вместо комментария написать строку кода. Вот сейчас сотрите содержимое метода Display и напишите один комментарий:
Код:
void ToolBooth::Display(void) const
{    
  //Метод display() выводит оба значения на экран.
}
А теперь уточните эту фразу - так, как Вы её понимаете. Просто пишите словами - как Вы хотите "выводить оба значения на экран". Так подробно, как только сможете.
То же самое с main(): уберите тело и замените его комментарием:
Код:
int main(void){
  /*Программа должна предложить пользователю нажать одну клавишу для того,
чтобы сымитировать заплатившего автолюбителя, и другую клавишу, чтобы
сымитировать недобросовестного водителя. Нажатие клавиши Esc должно привести
к выдаче текущих значений количества машин и выручки и завершению
программы.*/
  return 0;
}
И попробуйте вместо этого комментария - русскими словами, а не "волшебным" кодом! - описать то же самое, только подробнее.
Abstraction вне форума Ответить с цитированием
Старый 19.02.2013, 17:50   #45
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

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

using namespace std;

class ToolBooth 
{
private:
  unsigned int a; // chislo avtomobilei
  double s; //summarnaya viruchka
public:
 ToolBooth(void): a(0), s(0)
 {}
 void PayingCar(void)
 { ++a, s += 0.5f;
}
 void NopayCar(void)
 
      {
 ++a;
}
 void Display(void) const;
 {// Ìåòîä display âûâîäèò îáà çíà÷åíèÿ íà ýêðàí. Íóæíî âûâåñòè ñóììàðíóþ âûðó÷êó
}; 
      void ToolBooth::Display(void) const
 {    
  std::cout << "Najmite klavishu space" <<a << std::endl;

}
int main(void){
 //ïðîãðàììà äîëæíà ïðåäëîæèòü íàæàòü ïîëüçîâàòåëþ êëàâèøó space, äëÿ òîãî, ÷òîáû ñûìèòèðîâàòü
 //çàïëàòèâøåãî êëèåíòà, è êëàâèøó Shift, ÷òîáû ñûìèòèðîâàòü íåäîáðîñîâåñòíîãî âîäèòåëÿ.
 // ïðè íàæàòèè êëàâèøè Esc, ïðîãðàììà âûäàåò ñóììàðíóþ âûðó÷êó.
  
      return 0;
}
Diana528 вне форума Ответить с цитированием
Старый 19.02.2013, 17:54   #46
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

#include <cstdlib>
#include <iostream>

using namespace std;

class ToolBooth
{
private:
unsigned int a; // chislo avtomobilei
double s; //summarnaya viruchka
public:
ToolBooth(void): a(0), s(0)
{}
void PayingCar(void)
{ ++a, s += 0.5f;
}
void NopayCar(void)

{
++a;
}
void Display(void) const;
{
// этот метод выводит оба значения на экран. То есть нужно вывести автолюбителя и суммарную выручку.
};
void ToolBooth::Display(void) const
{
std::cout << "Najmite klavishu space" <<a << std::endl;

}
int main(void){
//программа должна предложить пользователю нажать клавишу space, для того, чтобы сымитировать заплатившего клиента.
//и клавишу Shift, чтобы сымитировать недобросовестного водителя.
// при нажатии клавиши Esc, программа выдает суммарную выручку.

return 0;
}
Diana528 вне форума Ответить с цитированием
Старый 19.02.2013, 17:58   #47
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

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

using namespace std;

class ToolBooth 
{
private:
unsigned int a; // chislo avtomobilei
double s; //summarnaya viruchka
public:
ToolBooth(void): a(0), s(0)
{}
void PayingCar(void)
{ ++a, s += 0.5f;
}
void NopayCar(void)

{
++a;
}
void Display(void) const;
{
// этот метод выводит оба значения на экран. То есть нужно вывести автолюбителя и суммарную выручку.
}; 
void ToolBooth::Display(void) const
{ 
std::cout << "Najmite klavishu space" <<a << std::endl;

}
int main(void){
//программа должна предложить пользователю нажать клавишу space, для того, чтобы сымитировать заплатившего клиента.
//и клавишу Shift, чтобы сымитировать недобросовестного водителя.
// при нажатии клавиши Esc, программа выдает суммарную выручку.

return 0;
}
Diana528 вне форума Ответить с цитированием
Старый 19.02.2013, 17:59   #48
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Компилятор должен был намекнуть Вам, что Вы в чём-то неправы - а именно, в том, что метод ToolBooth::Display определён дважды (у него получилось два тела).

Попробуйте написать подробнее - что понимается под
Код:
этот метод выводит оба значения на экран. То есть нужно вывести автолюбителя и суммарную выручку.
Как вариант, представьте, что вы отдаёте приказы роботу: "Как только вызовут Display, нужно...". Робот тупой, ему всё надо объяснять очень подробно.
В нынешнем варианте робот спрашивает: "что значит 'вывести автолюбителя'?"
Abstraction вне форума Ответить с цитированием
Старый 19.02.2013, 18:06   #49
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
void Display(void) const;
{
// этот метод выводит оба значения на экран. То есть нужно вывести автолюбителя и суммарную выручку. Честный автолюбитель, который заплатил за проезд, и не честный, который проехал неоплатный проезд...
//В дальнейшем, вывести суммарную выручку, которая была оплачена честными автолюбителями.
}; 
void ToolBooth::Display(void) const
{ 
std::cout << "Najmite klavishu space" <<a << std::endl;

}
int main(void){
//программа должна предложить пользователю нажать клавишу space, для того, чтобы сымитировать заплатившего клиента.
//и клавишу Shift, чтобы сымитировать недобросовестного водителя.
// при нажатии клавиши Esc, программа выдает суммарную выручку.

return 0;
}
Diana528 вне форума Ответить с цитированием
Старый 19.02.2013, 18:24   #50
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
То есть нужно вывести автолюбителя и суммарную выручку. Честный автолюбитель, который заплатил за проезд, и не честный, который проехал неоплатный проезд...
Что значит - "вывести автолюбителя"? Вывести из себя? Вывести (на экран) можно число. Суммарная выручка - число, его можно вывести. "Автолюбитель" - не фигурировало в условии задачи такого числа.
Это, конечно, не моё дело, но я правильно понимаю, что русский язык для Вас не родной?
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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