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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файлы. Программа, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread760576.html
Помогите пожалуйста! Такая проблема, есть программа: #include "stdafx.h" #include <stdio.h> #include <string.h> #include <ctype.h> #include <locale> #define GLAS...
C++ Решето Эратосфена В общем задание посчитать количество простых чисел до заданного числа N. Написал такой алгоритм, работает только до 11 :cry: Уже час не могу понять почему.... Подскажите пожалуйста что не так. ... http://www.cyberforum.ru/cpp-beginners/thread760575.html
Числовые прямые (имеется ли у отрезков общая часть не нулевой длинны?) C++
Здравствуйте! Помогите пожалуйста решить задачу. Сижу, карпею над учебниками, но боюсь что к завтрашнему мне не осилить. Очень надеюсь на вашу помощь форумчане. Задача: На вещественной числовой...
C++ Добавить конструктор инициализации, определяющий размерность таблицы умножения
Добавить конструктор инициализации, определяющий размерность таблицы умножения, отличающуюся от размерности по умолчанию (например, 5х5) и написать метод класса, возвращающий среднее значение таблицы...
C++ Продублировать в массиве элементы с четными номерами http://www.cyberforum.ru/cpp-beginners/thread760554.html
Дан массив N. Продублировать в нем элементы с четными номерами (2, 4 и т.д.). Условный оператор не использовать. Вот мой код, но у меня получилось только переписывать элементы через один....
C++ Функция удаления из списка помогите разобраться почему не работает функция удаления? плз #include <iostream> using namespace std; class Node{ public: int data; Node * next; Node *prev; подробнее

Показать сообщение отдельно
13Inferno13
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 25
14.01.2013, 13:44  [ТС]
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)
{
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru