|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.10.2013, 20:38 | #1 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 28
|
Объекты и классы
нужна помощь..
есть пример программы, мне нужна помощь в переписывание кода под задание.. получилось так что пришел новый преподаватель дал пример этой проги и задание и сказал, что нужно сделать до Пт.. времени мало, а разбираться времени мало.. помогите пожалуйста) вот пример проги: const int MAXPAPER = 100; const int MAXINK = 50; const float ERRORPROB = 0.05; enum PrinterState {OFF, READY, NOINK, NOPAPER, ERROR}; const char PrinterStateName[5][10] = {"OFF", "READY", "NOINK", "NOPAPER", "ERROR"}; class Printer { bool Power; int State; int Paper; float Ink; // приватний метод, що встановлює заданий стан // метод призначено для внутрішнього використання іншими методами // (користувач не може самовільно змінити стан принтера: // для цього необхідно використовувати доступні методи) void SetState (int); public: void Reset (void); void TurnOn (void); void TurnOff (void); bool GetPower (void) {return Power;} int LoadPaper (int); int UnloadPaper (int); int GetPaper (void) {return Paper;} int LoadInk (int); int GetInk (void) {return Ink;} int Print (int, int); int GetState (void); const char* const GetStateName () {return PrinterStateName[State];} }; // вміст файлу printer.cpp #include <stdlib.h> #include “printer.hpp” void Printer::Reset (void) { Power = false; SetState (OFF); Paper = 0; Ink = 50; } void Printer::TurnOn (void) { if (!Power) { Power = true; SetState (READY); } randomize (); } void Printer::TurnOff (void) { if (Power) { Power = false; SetState (OFF); } } int Printer::LoadPaper (int Sheets) { if (Sheets < 0) return 0; int NewPaper = Paper + Sheets; if (NewPaper > MAXPAPER) { Paper = MAXPAPER; return MAXPAPER - Sheets; } Paper = NewPaper; return Sheets; } int Printer::UnloadPaper (int Sheets) { if (Sheets < 0) return 0; int OldPaper = Paper; int NewPaper = Paper - Sheets; if (NewPaper < 0) { Paper = 0; return OldPaper; } Paper = NewPaper; return Sheets; } int Printer::LoadInk (int Drops) { if (Power) return 0; if (Drops < 0) return 0; int NewInk = Ink + Drops; if (NewInk > MAXINK) { Ink = MAXINK; return MAXINK - Drops; } Ink = NewInk; return Drops; } void Printer::SetState (int NewState) { State = NewState; } int Printer::Print (int Sheets, int Fill) { if (!Power || State != READY) return 0; if (Sheets < 0 || Fill < 0 || Fill > 100) return 0; int LuckSheets; if (random (100) < ERRORPROB * 100) LuckSheets = random (Sheets); else LuckSheets = Sheets; int PosSheetsByInk = Ink * 50 / Fill, PosPaper; if (PosSheetsByInk < LuckSheets) { PosPaper = PosSheetsByInk; SetState (NOINK); } else if (Paper < LuckSheets) { PosPaper = Paper; SetState (NOPAPER); } else { PosPaper = LuckSheets; SetState (READY); } if (State == NOINK) Ink = 0; else Ink -= PosPaper * Fill / 50; UnloadPaper (PosPaper); if (LuckSheets < Sheets) SetState (ERROR); return PosPaper; } int Printer::GetState (void) { return State; } // вміст файлу testprn.cpp #include <conio.h> #include <stdio.h> #include “printer.hpp” // основна програма void main () { Printer Canon; Canon.Reset (); do { clrscr (); printf ("--------Object-oriented printer model--------\n"); printf ("---------------------------------------------\n"); printf ("----Select one of these options [e - exit]---\n"); printf ("[0 - Turn off] [1 - Turn on] [2 - Load paper]\n"); printf ("[3 - Unload paper] [4 - Load ink] [5 - Print]\n"); printf ("---------------------------------------------\n"); gotoxy (1, 8); printf ("State of printer:\n"); printf ("Power: %d State: %s ", Canon.GetPower (), Canon.GetStateName()); printf ("Paper: %d Ink: %d", Canon.GetPaper(), Canon.GetInk()); int key = getch (); gotoxy (1, 7); switch (key) { case '0': Canon.TurnOff (); break; case '1': Canon.TurnOn (); break; case '2': { int Sheets; printf ("Input the number of sheets to load: "); scanf ("%d", &Sheets); Canon.LoadPaper (Sheets); break; } case '3': { int Sheets; printf ("Input the number of sheets to unload: "); scanf ("%d", &Sheets); Canon.UnloadPaper (Sheets); break; } case '4': { int Drops; printf ("Input the volume of ink to load: "); scanf ("%d", &Drops); Canon.LoadInk (Drops); break; } case '5': { int Sheets, Fill; printf ("Input the number of sheets and fill: "); scanf ("%d%d", &Sheets, &Fill); Canon.Print (Sheets, Fill); break; } case 'e': { return; } default: printf ("Invalid option! Press any key to continue..."); getch (); } } while (true); } |
14.10.2013, 20:39 | #2 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 28
|
а вот мое задание:
Пилосос з регулятором потужності Властивості: • стан електромережі (увімкн./вимкн.); • стан двигуна (увімкн./вимкн.); • стан індикатора переповнення контейнера пилу (увімкн./вимкн.); • потужність (1000 … 1500 Вт); • об’єм пилу в контейнері (0 … 2 л). Метод Правила роботи метода Підключення до електромережі -- Встановлює відповідний стан. Відключення від електромережі--- Вимикає двигун. Вмикання --- Вмикає двигун; якщо контейнер пилу заповнений більше ніж на 90 % вмикається індикатор переповнення; якщо рівень пилу досягає або перевищує 100 % двигун не вмикається. Вимикання ------- Вимикає двигун; збільшує об’єм пилу в контейнері на величину, яка обчислюється за виразом: V = S • k, де V – об’єм пилу, л; S – площа обробленої поверхні, м2; k – коефіцієнт запиленості поверхні, л/м2. Випорожнення контейнера пилу ------ Скидає рівень заповненості контейнера пилу до нуля. |
14.10.2013, 21:31 | #3 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
И в чем проблема? Вам уже подробно в задании описали свойства и методы класса.
|
15.10.2013, 21:23 | #4 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 28
|
помочь исправить код под задание.
|
16.10.2013, 08:27 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Переведите, пожалуйста, задание. Ничего не понял.
P.S. Забавные слова: потужності, властивості, двигун. Название классно звучит "Пилосос з регулятором потужності". Украинский - очень позитивный язык Последний раз редактировалось 8Observer8; 16.10.2013 в 08:37. |
16.10.2013, 18:58 | #6 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 28
|
а вот мое задание:
Пылесос с регулятором мощности Свойства: • состояние электросети ( вкл . / Выкл .) • состояние двигателя ( вкл . / Выкл .) • состояние индикатора переполнения контейнера пыли ( вкл . / Выкл .) • мощность (1000 ... 1500 Вт ) ; • объем пыли в контейнере (0 ... 2 л) . Метод Правила работы метода Подключение к электросети - устанавливает соответствующее состояние . Отключение от электросети --- Выключает двигатель. Включение --- Включает двигатель; если контейнер пыли заполнен более чем на 90 % включается индикатор переполнения ; если уровень пыли достигает или превышает 100 % двигатель не работает. Выключение ------- Выключает двигатель , увеличивает объем пыли в контейнере на величину , которая вычисляется по выражению: V = S • k , где V - объем пыли , л ; S - площадь обработанной поверхности , м2 ; k - коэффициент запыленности поверхности , л/м2. Стул контейнера пыли ------ Сбрасывает уровень заполненности контейнера пыли к нулю. |
17.10.2013, 23:09 | #7 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 28
|
Ребята, помогите пожалуйста!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
КЛАССЫ И ОБЪЕКТЫ В С++ | amneziya | Помощь студентам | 1 | 04.10.2011 20:32 |
классы и объекты | vanek1 | Помощь студентам | 1 | 03.05.2011 23:58 |
С++ объекты и классы | Шиншилка | Помощь студентам | 9 | 22.04.2011 20:19 |
Классы и объекты | Valera | Помощь студентам | 8 | 22.04.2011 09:38 |
TurboPascal: объекты и классы | ulala | Помощь студентам | 1 | 28.10.2009 17:20 |