magnitofon.h
#ifndef MAGNITOFON_H
#define MAGNITOFON_H
class magnitofon
{
bool play, stop, rec, kasset, kaseta; // Процессы: воспроизведение, запись и наличие кассеты
int rew; // Процесс перемотки (положительное число - вперёд на заданный интервал,
// отрицательное число - назад на заданный интервал, 0 - бездействие)
public:
magnitofon(); // Конструктор
void m_stop(); // Метод останавливает все процессы видеомагнитофона
void m_play(); // Метод включает воспроизведение кассеты
void m_rew(int interval); // Метод перематывает кассету в заданном направление
void m_rec(); // Метод начинает запись
void insert(); // Метод вставляет кассету
void get(); // Метод достаёт кассету
bool check(); // Метод проверяет, есть ли кассета
};
#endif // MAGNITOFON_H
magnitofon.cpp
magnitofon::magnitofon() // Конструктор
{
play = false;
stop = false; // По-умолчанию все процессы выключены
rec = false;
rew = 0;
kasset = false; // По-умолчванию кассеты нет
}
void magnitofon::m_stop() // Метод останавливает все процессы видеомагнитофона
{
play = false;
rec = false;
rew = 0;
}
void magnitofon::m_play() // Метод включает воспроизведение кассеты
{
m_stop(); // Может быть активен только один процесс, поэтому вызывается метод "Stop"
play = true;
}
void magnitofon::m_rew(int interval) // Метод перематывает кассету в заданном направление
{
m_stop();
rew = interval; // Перемотка на заданный интервал
}
void magnitofon::m_rec() // Метод начинает запись
{
if (play) rec = true; // Запись возможна только при включённом процессе play
}
void magnitofon::insert() // Метод вставляет кассету
{
m_stop();
kasset = true;
}
void magnitofon::get() // Метод достаёт кассету
{
m_stop();
kaseta = false;
}
bool magnitofon::check() // Метод проверяет, есть ли кассета
{
return kasset; // Возвращает true, если кассета есть, в противном случае false.
}
main.cpp
#include "magnitofon.h"
int main()
{
magnitofon m;
return 0;
}
контроллер видеомагнитофона
Код:
если у кого есть KDevelop можете попробовать собрать проект- а то у меня сейчас его нет
И для этого задания:
Рассмотреть модификацию магнитофона, который запоминает у себя в памяти все выполняемые пользователем действия. Считается что видиокассета обладает уникальным числовым идентификатором. В качестве тестовой программы рассмотреть задачу выполнения просмотра кассеты на магнитофоне, точный вид которого не определен. Просмотр сосстоит в последовательности след. операций: вставить кассету, перемотать кассету в начало, включить воспроизведение, выполнить останов и извлечь кассету.
можно это использовать:
Код:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class magnitofon
{
bool play, rec, kasset, stop; // Процессы: воспроизведение, запись и наличие кассеты
int rew; // Процесс перемотки (положительное число - вперёд на заданный интервал,
// отрицательное число - назад на заданный интервал, 0 - бездействие)
vector<string> ListDat; // Запоминает все действия
public:
magnitofon() // Конструктор
{
play = false;
stop = false; // По-умолчанию все процессы выключены
rec = false;
rew = 0;
kasset = false; // По-умолчванию кассеты нет
}
void m_stop() // Метод останавливает все процессы видеомагнитофона
{
play = false;
rec = false;
rew = 0;
ListDat.push_back("m_stop");
}
void m_play() // Метод включает воспроизведение кассеты
{
m_stop(); // Может быть активен только один процесс, поэтому вызывается метод "Stop"
play = true;
ListDat.push_back("m_play");
}
void m_rew(int interval) // Метод перематывает кассету в заданном направление
{
m_stop();
rew = interval; // Перемотка на заданный интервал
ListDat.push_back("m_rew");
}
void m_rec() // Метод начинает запись
{
if (play) rec = true; // Запись возможна только при включённом процессе play
ListDat.push_back("m_rec");
}
void insert() // Метод вставляет кассету
{
m_stop();
kasset = true;
ListDat.push_back("insert");
}
void get() // Метод достаёт кассету
{
m_stop();
kasset = false ;
ListDat.push_back("get");
}
bool check() // Метод проверяет, есть ли кассета
{
return kasset; // Возвращает true, если кассета есть, в противном случае false.
}
void outListDat()
{
vector<string>::iterator it;
for(it = ListDat.begin(); it != ListDat.end(); ++it)
cout<<*it<<endl;
}
};
int main()
{
magnitofon mag;
mag.insert();
mag.m_play();
mag.m_rec();
mag.m_rew(1);
mag.m_stop();
mag.get();
mag.outListDat();
system("pause");
return 0;
}
#include <string>
#include <vector>
using namespace std;
class magnitofon
{
bool play, rec, kasset, stop; // Процессы: воспроизведение, запись и наличие кассеты
int rew; // Процесс перемотки (положительное число - вперёд на заданный интервал,
// отрицательное число - назад на заданный интервал, 0 - бездействие)
vector<string> ListDat; // Запоминает все действия
public:
magnitofon() // Конструктор
{
play = false;
stop = false; // По-умолчанию все процессы выключены
rec = false;
rew = 0;
kasset = false; // По-умолчванию кассеты нет
}
void m_stop() // Метод останавливает все процессы видеомагнитофона
{
play = false;
rec = false;
rew = 0;
ListDat.push_back("m_stop");
}
void m_play() // Метод включает воспроизведение кассеты
{
m_stop(); // Может быть активен только один процесс, поэтому вызывается метод "Stop"
play = true;
ListDat.push_back("m_play");
}
void m_rew(int interval) // Метод перематывает кассету в заданном направление
{
m_stop();
rew = interval; // Перемотка на заданный интервал
ListDat.push_back("m_rew");
}
void m_rec() // Метод начинает запись
{
if (play) rec = true; // Запись возможна только при включённом процессе play
ListDat.push_back("m_rec");
}
void insert() // Метод вставляет кассету
{
m_stop();
kasset = true;
ListDat.push_back("insert");
}
void get() // Метод достаёт кассету
{
m_stop();
kasset = false ;
ListDat.push_back("get");
}
bool check() // Метод проверяет, есть ли кассета
{
return kasset; // Возвращает true, если кассета есть, в противном случае false.
}
void outListDat()
{
vector<string>::iterator it;
for(it = ListDat.begin(); it != ListDat.end(); ++it)
cout<<*it<<endl;
}
};
int main()
{
magnitofon mag;
mag.insert();
mag.m_play();
mag.m_rec();
mag.m_rew(1);
mag.m_stop();
mag.get();
mag.outListDat();
system("pause");
return 0;
}