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

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

Войти
Регистрация
Восстановить пароль
 
 
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
#1

Разработать класс "Контролер видеомагнитофона" - C++

13.01.2013, 17:50. Просмотров 466. Ответов 15
Метки нет (Все метки)

Разработать класс для представления понятия " Контролер видеомагнитофона" Контроллер обеспечивает программное управление видеомагнитофоном, который может осуществлять запись, выполнять воспроизведение кассеты и осуществлять перемотку на указанный интервал в обоих направлениях. Требуется реализовать следующие операции с объектами класса:
1) Вставить кассету
2) Извлечь кассету
3) Проверить наличие кассеты
4) включить запись
5) включить воспроизведение
6) выполнить останов
7) перемотать кассету на заданный интервал времени
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 17:50     Разработать класс "Контролер видеомагнитофона"
Посмотрите здесь:

класс для представления понятия "контроллер видеомагнитофона" - C++
класс для представления понятия "контроллер видеомагнитофона"(обеспечивает програмное управление видеомагнитофоном, который может...

Разработать класс "Счет физического лица" и обеспечить возможность работы с ним - C++
-продумать атрибуты класса и инкапсулировать их в закрытой части интерфейса класса; -определить в классе по крайней мере три...

Разработать класс "Product" с полями Наименование, Производитель, Цена, Срок хранения, Дата выпуска - C++
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. Написать...

Разработать класс "Информация о поездах" с функционалом для консольного и файлового ввода/вывода результатов - C++
Добрый вечер, уважаемые форумчане. Новичок нуждается в вашей помощи. Есть задание на работу с файлами. Условие:у администратора...

Разработать класс "Машина" с полями: марка, страна-производитель, максимальная скорость, объём двигателя - C++
Разобрать класс машина, который содержит поля: марка машини, страна производителя, макс. скорость, обьем двигателя. Разобрать конструкторы,...

Разработать класс "Записная книжка" - C++
Разработать класс "Записная книжка". Используйте массив для хранения записей.Реализуйте методы добавления, удаления, поиска телефона по...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
13.01.2013, 17:53     Разработать класс "Контролер видеомагнитофона" #2
Не могу разобраться с классами
в чем именно у классов вы разобратся не можете?
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
13.01.2013, 17:54     Разработать класс "Контролер видеомагнитофона" #3
Выкладывайте свой код и опишите что именно не получается. Писать за вас программу вряд ли кто-то захочет.
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 13:22  [ТС]     Разработать класс "Контролер видеомагнитофона" #4
Вот код посмотрите правильно ли я сделал.
Сомневаюсь в мейне и операции перемотки.
Вложения
Тип файла: rar lab.rar (3.6 Кб, 5 просмотров)
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 13:41     Разработать класс "Контролер видеомагнитофона" #5
а нельзя ли его выложить ввиде кода?
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 13:44  [ТС]     Разработать класс "Контролер видеомагнитофона" #6
Main.cpp
#include <iostream>
#include "video.h"
#include "cassette.h"
using namespace std;

int main(void)
{
video val;
cout << "input name video player: ";
cin >> val;
cassette album;
album.name = "demo";
album.duration = 90;
val.insert(album);
cout << "play: " << val.play() << endl;
cout << "stop: " << val.stop() << endl;
cout << "record: " << val.record() << endl;
cout << "stop: " << val.stop() << endl;
cout << "rewind: " << val.rewind(album.duration / 2) << endl;
cout << "extract: " << val.extract() << endl;
cout << "check: " << val.check() << endl;
video oth;
oth = val;
oth.insert(album);
cout << oth;
return 0;
}










video.h
#include <iostream>
#include <string>
#include "cassette.h"

class video //контролер видеомагнитофона
{
public:
video();
video(const std::string&);
video(const video&);
~video();
video& operator= (const video&); //оператор присвоения
bool insert(const cassette&); //вставить кассету
bool extract(); //извлечь кассету
bool check() const; //проверить наличие кассеты
bool record(); //включить запись
bool play(); //включить воспроизведение
bool stop(); //выполнить останов
bool rewind(size_t); //перемотать кассету на заданный интервал времени
friend std::istream& operator>> (std::istream&, video&); //оператор ввода
friend std::ostream& operator<< (std::ostream&, const video&); //оператор вывода
private:
void clear(); //вспомогательная функция для работы с кассетами
cassette* v; //кассета
int mode; //режим работы
enum {S, P, R};
std::string name; //название видеомагнитофона

};

inline bool video::check() const
{
return v != NULL;
}






video.cpp
#include "video.h"

video::video(): v(NULL)
{
}

video::video(const std::string& n): v(NULL), mode(), name(n)
{
}

video::video(const video& oth): mode(oth.mode), name(oth.name)
{
if (oth.v != NULL)
v = new cassette(*oth.v);
}
video::~video()
{
clear();
}

void video::clear()
{
if (v != NULL)
{
delete v;
v = NULL;
}
}

video& video::operator= (const video& oth)
{
if (this != &oth)
{
clear();
if (oth.v != NULL)
v = new cassette(*oth.v);
mode = oth.mode;
name = oth.name;
}
return *this;
}
bool video::insert(const cassette& oth)
{
if (v != NULL)
return false;
else
v = new cassette(oth);
return true;
}

bool video::extract()
{
if (v != NULL)
{
clear();
return true;
}
return false;
}

bool video::record()
{
if (v->time < v->duration)
{
mode = R;
++v->time;
return true;
}
else
return false;
}

bool video:lay()
{
if (v->time < v->duration)
{
mode = P;
++v->time;
return true;
}
else
return false;
}


bool video::stop()
{
if (mode != S)
{
mode = S;
return true;
}
else
return false;
}

bool video::rewind(size_t t)
{
if (t <= v->duration)
{
v->time = t;
return true;
}
else
{
v->time = v->duration;
return false;
}
}

std::istream& operator>> (std::istream& stream, video& oth)
{
stream >> oth.name;
return stream;
}

std::ostream& operator<< (std::ostream& stream, const video& oth)
{
stream << "name: " << oth.name << std::endl;
stream << "availability of cassettes: " << oth.check() << std::endl;
if (oth.check())
stream << "name cassette: " << oth.v->name << std::endl;
return stream;
}



cassette.h
#include <string>

struct cassette //кассета
{
cassette();
cassette(const cassette& oth);
std::string name; //название кассеты
size_t duration; //длительность кассеты
size_t time; //текущий момент времени кассеты
};

cassette.cpp
#include "cassette.h"

cassette::cassette(): name(), duration(), time()
{
}

cassette::cassette(const cassette& oth): name(oth.name),
duration(oth.duration), time(oth.time)
{
}
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 13:45     Разработать класс "Контролер видеомагнитофона" #7
для удобства отрекдактируйте тегами кода в окне сообщения сверху найдите С++ и внутрь [CPP ] тут код [/CPP] вставте
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 13:48  [ТС]     Разработать класс "Контролер видеомагнитофона" #8
ого спасибо. еще полностью не разобрался с возможностями сайта

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
Main.cpp
#include <iostream>
#include "video.h"
#include "cassette.h"
using namespace std;
 
int main(void)
{
                video val;
    cout << "input name video player: ";
    cin >> val;
    cassette album;
    album.name = "demo";
    album.duration = 90;
    val.insert(album);
    cout << "play: " << val.play() << endl;
    cout << "stop: " << val.stop() << endl;
    cout << "record: " << val.record() << endl;
    cout << "stop: " << val.stop() << endl;
    cout << "rewind: " << val.rewind(album.duration / 2) << endl;
    cout << "extract: " << val.extract() << endl;
    cout << "check: " << val.check() << endl;
    video oth;
    oth = val;
    oth.insert(album);
    cout << oth;
    return 0;
}
 
 
 
 
 
 
 
 
 
 
video.h
#include <iostream>
#include <string>
#include "cassette.h"
 
class video                           //контролер видеомагнитофона
{
public:
    video();
    video(const std::string&);
    video(const video&);
    ~video();
    video& operator= (const video&);                                 //оператор присвоения
    bool insert(const cassette&);                                  //вставить кассету
    bool extract();                                                 //извлечь кассету
    bool check() const;               //проверить наличие кассеты
    bool record();                                 //включить запись       
    bool play();                       //включить воспроизведение
    bool stop();                                     //выполнить останов
    bool rewind(size_t);          //перемотать кассету на заданный интервал времени
    friend std::istream& operator>> (std::istream&, video&);           //оператор ввода
    friend std::ostream& operator<< (std::ostream&, const video&);  //оператор вывода
private:
    void clear();            //вспомогательная функция для работы с кассетами
    cassette* v;                      //кассета
    int mode;             //режим работы
    enum {S, P, R};
    std::string name;               //название видеомагнитофона
 
};
 
inline bool video::check() const
{
    return v != NULL;
}
 
 
 
 
 
 
video.cpp
#include "video.h"
 
video::video(): v(NULL)
{
}
 
video::video(const std::string& n): v(NULL), mode(), name(n)
{
}
 
video::video(const video& oth): mode(oth.mode), name(oth.name)
{
    if (oth.v != NULL)
    v = new cassette(*oth.v);
}
video::~video()
{
    clear();
}
 
void video::clear()
{
    if (v != NULL)
    {
        delete v;
        v = NULL;
    }
}
 
video& video::operator= (const video& oth)
{
    if (this != &oth)
    {
        clear();
        if (oth.v != NULL)
           v = new cassette(*oth.v);
           mode = oth.mode;
           name = oth.name;
    }
    return *this;
}
bool video::insert(const cassette& oth)
{
    if (v != NULL)
        return false;
    else
        v = new cassette(oth);
    return true;
}
 
bool video::extract()
{
    if (v != NULL)
    {
        clear();
        return true; 
    }
    return false;
}
 
bool video::record()
{
    if (v->time < v->duration)
    {
        mode = R;
        ++v->time;
        return true;
    }
    else
        return false;
}
 
bool video::play()
{
    if (v->time < v->duration)
    {
        mode = P;
        ++v->time;
        return true;
    }
    else
        return false;
}
 
 
bool video::stop()
{
    if (mode != S)
    {
        mode = S;
        return true;
    }
    else
        return false;
}
 
bool video::rewind(size_t t)
{
    if (t <= v->duration)
    {
        v->time = t;
        return true;
    }
    else
    {
        v->time = v->duration;
        return false;
    }
}
 
std::istream& operator>> (std::istream& stream, video& oth)
{
    stream >> oth.name;
    return stream;
}
 
std::ostream& operator<< (std::ostream& stream, const video& oth)
{
    stream << "name: " << oth.name << std::endl;
    stream << "availability of cassettes: " << oth.check() << std::endl;
    if (oth.check())
        stream << "name cassette: " << oth.v->name << std::endl;
    return stream;
}
 
 
 
cassette.h
#include <string>
 
struct cassette                 //кассета
{
    cassette();
    cassette(const cassette& oth);  
    std::string name;                                          //название кассеты
    size_t duration;                           //длительность кассеты
    size_t time;                     //текущий момент времени кассеты
};
 
cassette.cpp
#include "cassette.h"
 
cassette::cassette(): name(), duration(), time()
{
}
 
cassette::cassette(const cassette& oth): name(oth.name), 
    duration(oth.duration), time(oth.time)
{
}
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 13:55     Разработать класс "Контролер видеомагнитофона" #9
компилятор поругал, уже
C++
1
2
3
4
5
6
7
8
9
10
11
bool video::play() // тут было написано lay() и не хватает :
 {
 if (v->time < v->duration)
 {
 mode = P;
 ++v->time;
 return true;
 }
 else
 return false;
 }
Добавлено через 6 минут
вроде все работает, а в чем проблема?
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 13:57  [ТС]     Разработать класс "Контролер видеомагнитофона" #10
Извиняюсь наверно не корректно скопировалось
в коде так как и сказили ( bool video:lay() ), компилирует без ошибок.

Добавлено через 58 секунд
Ааа сори он в смалик это просто превращает
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 13:58     Разработать класс "Контролер видеомагнитофона" #11
точно ) так а вопрос собственно в чем?
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 14:03  [ТС]     Разработать класс "Контролер видеомагнитофона" #12
Преподаватель просит сделать что бы друж функции ввода и вывода должны были взаимообратны.
Что нужно исправить?
Не допонял как это а времени уже нет разбираться
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 14:11     Разработать класс "Контролер видеомагнитофона" #13
что он понимает под взаимообратные?

Добавлено через 35 секунд
так то класс рабочий , все вроде в норме,и ффункции ввода ввывода
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 14:15  [ТС]     Разработать класс "Контролер видеомагнитофона" #14
Ну ладно тогда обращусь если появятся вопросы, Спасибо вам за помощь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 14:25     Разработать класс "Контролер видеомагнитофона"
Еще ссылки по теме:

Разработать класс "Ведомость группы" - C++
В файле ведомость группы, в каждой строке задается: Фамилия студента, пять полей с результатами экзаменов, пять полей с результатами...

Разработать класс "Разреженная матрица" - C++
Разреженная матрица хранится в виде &lt;номер строки, номер столбца, значение&gt;. Если запрашивается значение, которое не хранится, возвращается...

Разработать класс "Графопостроитель" - C++
Разработать класс для представления понятия &quot;Графопостроитель&quot;.Примем,что состояние объектов этого класса определяется совокупностью...

Разработать класс "Стек" - C++
Здравствуйте,программисты.У меня к вам вопрос.Что-то задача не решается.Есть намётки,но нет самого решения.Если не сложно...


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

Или воспользуйтесь поиском по форуму:
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.01.2013, 14:25     Разработать класс "Контролер видеомагнитофона" #15
да собственно ничего и не сделал )
Yandex
Объявления
14.01.2013, 14:25     Разработать класс "Контролер видеомагнитофона"
Ответ Создать тему
Опции темы

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