Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> классы 
:(
    Опции темы
elenSV
Дата 31.5.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



помогите доделать
Рассмотреть модификацию магнитофона, который запоминает у себя в памяти все выполняемые пользователем действия. Считается что видиокассета обладает уникальным числовым идентификатором. В качестве тестовой программы рассмотреть задачу выполнения просмотра кассеты на магнитофоне, точный вид которого не определен. Просмотр сосстоит в последовательности след. операций: вставить кассету, перемотать кассету в начало, включить воспроизведение, выполнить останов и извлечь кассету.
Код

#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;
}



PM MAIL   Вверх
mes
Дата 31.5.2009, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(elenSV @  31.5.2009,  08:01 Найти цитируемый пост)
помогите доделать

a что Вам нужно доделать форумчане должны сами догадаться ?!  smile 


--------------------
PM MAIL WWW   Вверх
zim22
Дата 31.5.2009, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(elenSV @  31.5.2009,  09:01 Найти цитируемый пост)
помогите доделать

вы прикалываетесь, да?

это уже четвёртая копия темы под названием "классы":
http://forum.vingrad.ru/forum/topic-257715.html
http://forum.vingrad.ru/forum/topic-257677.html
http://forum.vingrad.ru/forum/topic-258813.html

Это сообщение отредактировал(а) zim22 - 31.5.2009, 09:52


--------------------
PM MAIL   Вверх
elenSV
Дата 31.5.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



название то одно - задачи разные
 smile 
 smile 
PM MAIL   Вверх
zim22
Дата 31.5.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(elenSV @  31.5.2009,  10:49 Найти цитируемый пост)
название то одно - задачи разные

задачи идентичные  smile 


--------------------
PM MAIL   Вверх
elenSV
Дата 31.5.2009, 10:58 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



я даже не хочу с тобой разговаривать smile 
PM MAIL   Вверх
azesmcar
Дата 31.5.2009, 11:01 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



zim22

5 если быть точным, одну MAKCim закрыл как дубликат.

Цитата(elenSV @  31.5.2009,  10:58 Найти цитируемый пост)
я даже не хочу с тобой разговаривать smile  

мне так думается грустить он по этому поводут не будет smile 

по теме, доставать касету было бы логичнее методом eject
Цитата(elenSV @  31.5.2009,  09:01 Найти цитируемый пост)
 void get()                                              // Метод достаёт кассету



Это сообщение отредактировал(а) azesmcar - 31.5.2009, 11:05
PM   Вверх
elenSV
Дата 31.5.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



не он точно будет грустить smile 
PM MAIL   Вверх
mes
Дата 31.5.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(azesmcar @  31.5.2009,  10:01 Найти цитируемый пост)
по теме, доставать касету было бы логичнее методом eject

также приставка m_ у открытых методов лишняя, а вот приватным дата-членам она бы не помешала.

Добавлено @ 11:43
Цитата(elenSV @  31.5.2009,  08:01 Найти цитируемый пост)
помогите доделать

Цитата(zim22 @  31.5.2009,  08:32 Найти цитируемый пост)
это уже четвёртая копия темы 

Цитата(azesmcar @  31.5.2009,  10:01 Найти цитируемый пост)
5 если быть точным

и все же, интересно, что требуется доделать elenSV, чтоб ей не пришлось заводить 6ю тему.  smile 

Это сообщение отредактировал(а) mes - 31.5.2009, 11:44


--------------------
PM MAIL WWW   Вверх
elenSV
Дата 5.6.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



а если серьёзно
 класс для представления понятия "контроллер видеомагнитофона"(обеспечивает програмное управление видеомагнитофоном, который может осуществлять запись,вставить, извлечь кассету и проверить наличие кассеты, выполнять воспроизведение кассеты и осуществлть перемотку в указанном направлении
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;

} 


как исправить чтобы выводил на экран всё что надо
как и что выводить в поток cout   smile 
поможите или  заводить 6ю тему.  smile 

Это сообщение отредактировал(а) elenSV - 5.6.2009, 21:42
PM MAIL   Вверх
azesmcar
Дата 5.6.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(elenSV @  5.6.2009,  21:40 Найти цитируемый пост)

что бы выводил на экран всё что надо
как и что выводить в поток cout   smile  

Замечательный вопрос..это вы нас спрашиваете?
а что требует выводить на экран задача?

Добавлено через 4 минуты и 13 секунд
Цитата(elenSV @  5.6.2009,  21:40 Найти цитируемый пост)
поможите или  заводить 6ю тему

Тогда вам сам господь бог не поможет smile
PM   Вверх
elenSV
Дата 5.6.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



 cout << "  Контроллер видеомагнитофона" << endl;
 cout<<"Кассета отсутствует"<<endl;
и так далее
как это записать
если можно без "Тогда вам сам господь бог не поможет "

PM MAIL   Вверх
azesmcar
Дата 5.6.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



elenSV, 
Цитата(elenSV @  5.6.2009,  21:55 Найти цитируемый пост)
 cout << "  Контроллер видеомагнитофона" << endl;
 cout<<"Кассета отсутствует"<<endl;
и так далее
как это записать

т.е.? вот так и записать. Вначале функции main добавить.
setlocale(LC_ALL, "rus");

примерно так
Код

int main()
{
    setlocale(LC_ALL, "rus");
    cout << "Жизнь прекрасна!" << endl;
}


Это сообщение отредактировал(а) azesmcar - 5.6.2009, 22:08
PM   Вверх
elenSV
Дата 5.6.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.4.2009

Репутация: -1
Всего: -1



Код

main()
{
cout<<"----------Menu----------"<<endl;
cout<<"1. вставить кассету"<<endl;
cout<<"2.  извлечь кассету'"<<endl;
cout<<"3. проверить наличие кассеты"<<endl;
cout<<"4. запись"<<endl;
cout<<"5. перемотать на указанный интервал"<<endl;
cin>>x;
switch(x)
{
case 1: 
case 2:
case 3: 
case 4: 
case 5

ну вот допустим - создаю меню - как в case записать?
помогите нубу
PM MAIL   Вверх
azesmcar
Дата 5.6.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Код

int main()
{
    setlocale(LC_ALL, "rus");
    int x;
    cout<<"----------Menu----------"<<endl;
    cout<<"1. вставить кассету"<<endl;
    cout<<"2. извлечь кассету'"<<endl;
    cout<<"3. проверить наличие кассеты"<<endl;
    cout<<"4. запись"<<endl;
    cout<<"5. перемотать на указанный интервал"<<endl;
    cin>>x;

    int interval;

    magnitofon m;

    switch(x)
    {
    case 1: m.insert(); break;
    case 2: m.get(); break;
    case 3: m.check(); break;
    case 4: m.m_rec(); break;
    case 5:
        cout << "interval=";
        cin >> interval;
        m.m_rew(interval);
        break;
    }
}

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.