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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2015, 14:50   #1
LittleMonkey
Пользователь
 
Регистрация: 24.09.2014
Сообщений: 16
Стрелка Модификация кода

Добрый день! Помогите, пожалуйста, немного модифицировать код:
Код:
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;

class publication
{
string name;
float cost;
public:
virtual void getdata() = 0
{
cout « "Введите стоимость книги и ее название:" « endl;
cin » cost » name;
}
virtual void putdata() const = 0
{
cout « "Cтоимость книги и ее название:" « endl;
cout « cost « ' ' « name « endl;
}
virtual bool isOveersize() = 0
{
cout « "Превышение размера!" « endl;
return 0;
}
};

class book : public publication
{
short pages, count;
public:
void getdata()
{
publication::getdata();
cout « "Введите кол-во страниц в книге:" « endl;
cin » pages;
count = pages;
}
void putdata() const
{
publication::putdata();
cout « "Ее стоимость:\n" « pages « endl;
cout « "Кол-во страниц:\n" « count « endl;
}
bool isOveersize()
{
if (count > 800)
publication::isOveersize();
else
return 1;
}
};

class tape : public publication
{
float time;
float count;
public:
void getdata()
{
publication::getdata();
cout « "Введите время записи:" « endl;
cin » time;
count = time;
}
void putdata() const
{
publication::putdata();
cout « "Время записи книги:\n" « time « endl;
cout « "Кол-во страниц:\n" « count « endl;
}
bool isOveersize()
{
if (count > 90)
publication::isOveersize();
else
return 1;
}
};

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const short MAX(2);
publication* mas[MAX];
for (short i(0); i < MAX;)
{
cout « "Ввести данные о книге(1) или о записи(2)?" « endl;
char ch; cin » ch;
if (ch == '1')
{
mas[i] = new book;
mas[i++]->getdata();
}
else if (ch == '2')
{
mas[i] = new tape;
mas[i++]->getdata();
}
else
cout « "Введена некорректная цифра. Повторите ввод.\n";
cin.clear();
cin.sync();
cout « endl;
}
for (short i(0); i < MAX; i++)
{
mas[i]->putdata();
mas[i]->isOveersize();
cout « endl;
}
system("pause");
return 0;
}
Нужно сделать так, чтоб ошибка о превышении количества страниц/минут книги появлялась сразу после ввода данных о конкретной книге, а не после вывода данных о всех книгах.

Помогите, пожалуйста, реализовать!! Буду очень благодарна за помощь!
LittleMonkey вне форума Ответить с цитированием
Старый 05.05.2015, 06:01   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Ну перенесите вызов isOveersize туда, куда вам нужно. Или попросите того, кто этот код написал.
p51x вне форума Ответить с цитированием
Старый 05.05.2015, 19:47   #3
LittleMonkey
Пользователь
 
Регистрация: 24.09.2014
Сообщений: 16
По умолчанию

К сожалению, если просто перенести, работать как мне нужно не будет(
LittleMonkey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модификация программы на с++ Yulia_sko.kz Помощь студентам 0 11.04.2012 17:48
модификация TApplication xrob Компоненты Delphi 0 16.09.2011 04:23
Модификация рандома RayGGG Общие вопросы C/C++ 2 17.02.2011 03:43
Модификация сканера gamer123 Общие вопросы C/C++ 1 30.10.2010 22:45
модификация программы olla-la Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.05.2008 14:01