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

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

Войти
Регистрация
Восстановить пароль
 
LenaSV
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 22
#1

контроллер видеомагнитофона - C++

31.05.2009, 10:03. Просмотров 433. Ответов 3
Метки нет (Все метки)

Пусть имеется магнитофон с записью операций
Требуется определить самую часто воспроизводимую кассету
то есть такую для которой операция воспроизведения производилась наиболее часто
помогите доделать
Код
#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;
        }
};
struct Kassete
{
  Kassete() : InsertCount(0),  id(unique_id++){ }
    int InsertCount;
    int id;;
    static int unique_id;
};
int Kassete::unique_id = 0;

bool cmp_fcn(const Kassete &k1, const Kassete &k2) {
  return k1.InsertCount > k2.InsertCount;
}

int main() {
 magnitofon mag;
        mag.insert();
        mag.m_play();
        mag.m_rec();
        mag.m_rew(1);
        mag.m_stop();
        mag.get();

        mag.outListDat();

  std::partial_sort(kassete, kassete + 1, kassete + 100, cmp_fcn);
  int max_number = kassete[0].InsertCount;
  int id_kassette = kassete[0].id;
int max=0;
for (int i=0; i<100; ++i) проходим весь список касет.
   if (kassete[i].InsertCount > kassete[max].InsertCount) max=i;

std::cout << "Больше всех (а именно "<< kassete[max].InsertCount) "раз) была вставлена кассета с id " << max;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2009, 10:03     контроллер видеомагнитофона
Посмотрите здесь:

C++ контроллер видеомагнитофона
контроллер видеомагнитофона C++
C++ класс для представления понятия "контроллер видеомагнитофона"
SM контроллер шины, сетевой контроллер и ethernet контроллер
Контроллер периферийного устройства и контроллер прерываний
Контроллер
Разработать класс "Контролер видеомагнитофона" C++
Writefile() & String - В контроллер приходит не то, что было отправлено C++
Контроллер PS/2
Контроллер Java EE
Отцифровка с видеомагнитофона Toshiba V-852EW Софт

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
31.05.2009, 13:46     контроллер видеомагнитофона #2
Гонишь). Ты собираешься магнитофон к компу подключать, и вычислять этой программой ? =)
Жесть...
LenaSV
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 22
31.05.2009, 17:09  [ТС]     контроллер видеомагнитофона #3
ты это серьёзно?
Search..
31.05.2009, 17:38     контроллер видеомагнитофона
  #4

Не по теме:

ыыы

Yandex
Объявления
31.05.2009, 17:38     контроллер видеомагнитофона
Ответ Создать тему
Опции темы

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