Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
biterman
8 / 0 / 1
Регистрация: 20.03.2013
Сообщений: 7
#1

Программа по ООП(виртуальный двд плеер) - C++

07.11.2013, 13:17. Просмотров 398. Ответов 6
Метки нет (Все метки)

Нужно создать объектно ориентированную модель dvd плеера.
Со свойствами:
1.состояние (вкл./выкл.);
2.наличие диска ;
3.активный трек (1 … X), где X – количество треков на диску;
4.Состояние плеера (нет диска/бездействие/проигрывание/конец диска).
Методы:
вкл/выкл
вставка/вытягивание диска
Старт проигрывания
Завершение проигрывания: Увеличивает номер трека на единицу;
Смена трека.
Программа должна состоять с 3 файлов: maindvd.cpp maindvd.h testdvd.cpp
Вот примерно таким должно быть меню
C++
1
2
3
4
5
6
printf ("--------объектно ориентированная модель dvd плеера--------\n");
        printf ("------------------------------------------------------\n");
        printf ("--------Выберете одну из опций [e - выход]-------------\n");
        printf ("----[0 - Выключить] [1 - Включить] [2 - Вставить диск]\n");
        printf ("---[3 - Высунуть диск] [4 - Загрузить диск] [5 - Играть]\n");
        printf ("------------------------------------------------------\n");
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 13:17     Программа по ООП(виртуальный двд плеер)
Посмотрите здесь:

ООП учебная программа - C++
Учебная программа должна выполнять след функции - регистрацию студента; - представление материала к обучению; - обеспечение контроля...

Первая в курсе программа из ООП - C++
Нам почти ничего не объяснили, а после завтра уже сдавать Создать класс CVector. Функциональные возможности: – Конструкторы: ...

Программа в стиле ООП - ошибки - C++
Ошибки: Крякозябры вместо русского При выводе списка с большим количеством - крах Не удаляет заявки (Функция del) #include...

ООП, программа склад, застрял, нужен совет - C++
Всем привет, пишу не большую программку типа склада, есть 3 поля (наименование,цена и кол-во,есть абстрактный класс Item, от которого...

виртуальный деструктор - C++
есть такой пример, у меня вопрос, почему здесь деструктор декларирован просто как деструктор, а не виртуальный (и является ли он в данном...

Виртуальный метод - C++
Здравствуйте! Помогите, пожалуйста, найти ошибку в коде. #include "stdafx.h" class Person{ protected: char *name; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
07.11.2013, 15:00     Программа по ООП(виртуальный двд плеер) #2
почему бы не обратиться во фриланс?
newbie666
07.11.2013, 15:13
  #3

Не по теме:

Цитата Сообщение от Jazz411 Посмотреть сообщение
почему бы не обратиться во фриланс?
потому что наглый студент и надеется на хялаву

SatanaXIII
07.11.2013, 15:20
  #4
 Комментарий модератора 
newbie666, прошу воздержаться от высказываний в таком роде.

Не по теме:

Это и так всем понятно.

biterman
8 / 0 / 1
Регистрация: 20.03.2013
Сообщений: 7
08.11.2013, 02:19  [ТС]     Программа по ООП(виртуальный двд плеер) #5
Да я наглый студент не отрицаю,но все же не могу разобраться в логике программы. Написал сюда чтобы посмотреть как ее сделают любители или профессионалы.
MrGluck
Модератор
Эксперт CЭксперт С++
7171 / 4337 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
08.11.2013, 02:31     Программа по ООП(виртуальный двд плеер) #6
Попробуйте хотя бы описать класс и его методы, желающие помочь найдутся.
На деле - задачка несложная и небанальная, тут можно и пофантазировать и результаты видимые получить.

Не по теме:

Если бы не надо было вставать через 5 часов...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 14:58     Программа по ООП(виртуальный двд плеер)
Еще ссылки по теме:

Виртуальный деструктор - C++
Всем привет! Объясните пожалуйста новичку в ООП, вопрос чисто теоретический поэтому код не прилагаю. Мне сказали что если я в классе...

Виртуальный operator() - C++
Есть такая иерархия классов. class Network { ...... }; class Server : public Network

Виртуальный метод - C++
class A { virtual void Print()=0; } class B : public A { virtual void Print() { //Печатаем в...

виртуальный деструтор - C++
нужно ли вообще деструктор класса делать виртуальным? class base_class1 { public: base_class1() { data = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
biterman
8 / 0 / 1
Регистрация: 20.03.2013
Сообщений: 7
19.11.2013, 14:58  [ТС]     Программа по ООП(виртуальный двд плеер) #7
Ну вот что получилось:
1 файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <conio.h>
#include <stdio.h>
#include<clocale>
#include "maindvd.h"
// основна програма
 
void main ()
    {
    setlocale(LC_CTYPE, "RUSSIAN");
    // оголошення об’єкта класу     
    dvd Sony;
    Sony.Reset ();
    // бескінечний цикл обробки команд з клавіатури
    do
    {
        // вивід запрошення
         
        printf ("--------об'єктно-орiєнтована модель DVD-плеєра--------\n");
        printf ("------------------------------------------------------\n");
        printf ("--------Виберiть одну з опцiй [e - вихiд]-------------\n");
        printf ("----[0 - Вимкнути] [1 - Ввiмкнути] [2 - Вставити диск]\n");
        printf ("---[3 - Витягти диск] [4 - Загрузити диск] [5 - Грати]\n");
        printf ("------------------------------------------------------\n");
        // вивід стану плеєра
        
        printf ("===============Стан плеєра:\n");
        printf ("Power: %d Диск: %s ", Sony.GetPower (), Sony.GetStateName());
        printf ("Диск: %d №Треку: %d", Sony.GetDisk(), Sony.GetInk());
        // прийом команди з клавіатури
        int key = getch ();
    
        switch (key)
        {
            case '0': Sony.TurnOff (); break;
            case '1': Sony.TurnOn (); break;
            case '2':
            {
                int Sheets;
                printf ("Вставте диск: ");
                scanf ("%d", &Sheets);
                Sony.LoadDisk (Sheets);
                break;
            }
            case '3':
            {
                int Sheets;
                printf ("Введiть номер дорiжки для програвання: ");
                scanf ("%d", &Sheets);
                Sony.UnloadDisk (Sheets);
                break;
            }
            case '4':
            {
                int Drops;
                printf ("Виберіть диск: ");
                scanf ("%d", &Drops);
                Sony.LoadInk (Drops);
                break;
            }
            case '5':
            {
                int Sheets, Fill;
                printf ("Введіть № доріжки: ");
                scanf ("%d%d", &Sheets, &Fill);
                Sony.Play (Sheets, Fill);
                break;
            }
            case 'e':
            {
                return;
            }
            default:
                printf ("Invalid option! Press any key to continue...");
                getch ();
        }
    } while (true);       
}
2 файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// константи, які задають найбільшу кількість дисків
const int MAXDISK = 5;
// перелічення можливих станів плеєра
enum dvdState {OFF, READY, NOINK, NODISK, ERROR};
const char DvdStateName[5][10] = {"OFF", "READY", "NOINK", "NODISK", "ERROR"};
 
// оголошення класу плеєра
class dvd
{
    bool Power;
    int State;
    int Disk;
    float Ink;
    void SetState (int);
    public:
    // ініціалізація змінних класу початковими значеннями
    void Reset (void);
    // управління живленням
    void TurnOn (void);
    void TurnOff (void);
// inline-реалізація простого метода
    bool GetPower (void) {return Power;}
    // управління диском
    int LoadDisk (int);
    int UnloadDisk (int);
    int GetDisk (void) {return Disk;}
    // управління треками
    int LoadInk (int);
    int GetInk (void) {return Ink;}
    // програвання
    int Play (int, int);
    // визначення коду і назви стану
    int GetState (void);
    const char* const GetStateName () {return DvdStateName[State];}
 
};
3 файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdlib.h>
#include "maindvd.h"
// реалізація класу принтера
void dvd::Reset (void)
{
    Power = false;
    SetState (OFF);
    Disk = 0;
    Ink = 50;
}
void dvd::TurnOn (void)
{
    if (!Power)
    {
        Power = true;
        SetState (READY);
    }
    // для імітації подальшого випадкового виникнення помилок при 
    rand ();
}
void dvd::TurnOff (void)
{
    if (Power)
    {
        Power = false;
        SetState (OFF);
    }
}
int dvd::LoadDisk (int Sheets)
{
    if (Sheets < 0) return 0;
    int NewDisk = Disk + Sheets;
    // перевірка, чи не перевищує кількість доріжок найбільшу можливу
    if (NewDisk > MAXDISK)
    {
            Disk = MAXDISK;
        return MAXDISK - Sheets;
    }
    Disk = NewDisk;
    return Sheets;
}
int dvd::UnloadDisk (int Sheets)
{
    if (Sheets < 0) return 0;
    int OldDisk = Disk;
    int NewDisk = Disk - Sheets;
    // перевірка, чи не перевищує кількість треків наявну
    if (NewDisk < 0)
    {
        Disk = 0;
        return OldDisk;
    }
    Disk = NewDisk;
    return Sheets;
}
int dvd::LoadInk (int Drops)
{
    if (Power) return 0;
    if (Drops < 0) return 0;
    int NewInk = Ink + Drops;
    return Drops;
}
void dvd::SetState (int NewState)
{
    State = NewState;
}
int dvd::Play (int Sheets, int Fill)
{
    // перевірка працездатності плеєра та коректності заданих параметрів
    if (!Power || State != READY) return 0;
    if (Sheets < 0 || Fill < 0 || Fill > 100) return 0;
    int LuckSheets;
    // зменшення 
    // обнулення “Ink = 0” потрібне для усунення похибки, яка
    // може виникати 
}
int dvd::GetState (void)
{
    return State;
}
Yandex
Объявления
19.11.2013, 14:58     Программа по ООП(виртуальный двд плеер)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru