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

Поиск:

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


Шустрый
*


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

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



класс для представления понятия "контроллер видеомагнитофона"(обеспечивает програмное управление видеомагнитофоном, который может осуществлять запись,вставить, извлечь кассету и проверить наличие кассеты, выполнять воспроизведение кассеты и осуществлть перемотку в указанном направлении
как здесь объявить копирующий конструктор, перегруженный оператор присваивания, inline и const в объявлениях методов и операторов
и манипулятор ввода и вывода в виде дружественных функций
magnitofon.h
Код

#ifndef MAGNITOFON_H
#define MAGNITOFON_H
#include <iostream>
#include <string>
#include <vector>
#include <clocale>
using namespace std;
class magnitofon
{
 private: 
   magnitofon();           // Конструктор    
   ~magnitofon(); //деконструктор 
   bool play, stop, rec, kasset, kaseta;        // Процессы: воспроизведение, запись и наличие кассеты
   int rew;                // Процесс перемотки (положительное число - вперёд на заданный интервал, 
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;    // По-умолчванию кассеты нет
   }
magnitofon::~magnitofon()           // деконструктор
{
} 
 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(int id)              // Метод вставляет кассету
{
    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;
int x;
cout<<"----------Menu----------"<<endl;
cout<<"0. воспроизведение"<<endl;
cout<<"1. вставить кассету"<<endl;
cout<<"2.  извлечь кассету'"<<endl;
cout<<"3. проверить наличие кассеты"<<endl;
cout<<"4. запись"<<endl;
cout<<"5. перемотать на указанный интервал"<<endl;
cout<<"6. стоп"<<endl;
while (true)
{
   cin>>x;
   switch(x)
   { 
      case 0:
         m.play();
         break;
      case 1:
         m.insert();
         break; 
      case 2:
         m.get();
         break;
      case 3:
         if (m.check)
         { cout<<"Кассета есть"<<endl; }
         else
         { cout<<"Кассеты нет"<<endl; }
         break;
      case 4:
         m.m_rec();
         break;
      case 5:
         cout<<"Интервал: ";
         cin>>x;
         m.m_rew(x);
         break;
      case 6:
         m.stop();
         break;
   }

никак не получается это сделать
выходит только что-то вроде этого:
magnitofon.h
Код

..............................
magnitofon();
    magnitofon(unsigned a,unsigned b);
    magnitofon(const controller&original);
   friend std::istream & operator >> (std::istream&is,magnitofon & count);
    friend std::ostream& operator<<(std::ostream& os,const magnitofon & count);
    bool   ??
    inline ??
};


inline unsigned magnitofon::full()const{
    ???
}

magnitofon.cpp
Код

magnitofon::magnitofon(const magnitofon& orig):??
{}



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


Шустрый
*


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

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



помогите кто чем может smile 
PM MAIL   Вверх
azesmcar
Дата 11.6.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(elenSV @  11.6.2009,  13:22 Найти цитируемый пост)
помогите кто чем может smile  

Вы уже пятую тему не можете обяснить что конкретно нужно. Тут вы задали вопрос, я на него ответил..вы как либо прокомментировали мой ответ и замечания? нет, вы явились через неделю и задаете какой-то другой вопрос похожий на старый. Никто тут толком не понимает что вам надо и чего вы хотите. Так с чего же вам помогать? Я на протяжении всего этого времени вижу периодически ваши посты непонятного содержания. В них всегда один и тот же код и нет вопроса. 
Цитата(elenSV @  8.6.2009,  23:08 Найти цитируемый пост)
никак не получается это сделать
выходит только что-то вроде этого:

что никак не получается сделать? Вы хоть сами понимаете чего хотите?
PM   Вверх
zim22
Дата 11.6.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



azesmcar, я думаю elenSV это новый, экспериментальный вид спам-бота.


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


uploading...
****


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

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



Цитата(zim22 @  11.6.2009,  14:09 Найти цитируемый пост)
azesmcar, я думаю elenSV это новый, экспериментальный вид спам-бота. 

 smile настараживает слово "эксперементальный". И на ком же эксперементы проводят?
PM   Вверх
zim22
Дата 11.6.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(azesmcar @  11.6.2009,  14:11 Найти цитируемый пост)
И на ком же эксперементы проводят?

догадайтесь  smile 


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


uploading...
****


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

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



Цитата(zim22 @  11.6.2009,  14:12 Найти цитируемый пост)
догадайтесь  smile  

Даже пытаться не хочу..боюсь угадать smile 
PM   Вверх
elenSV
Дата 11.6.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



мне надо объявить копирующий конструктор, перегруженный оператор присваивания, inline и const в объявлениях методов и операторов
и манипулятор ввода и вывода в виде дружественных функций
а что не понятного то?
PM MAIL   Вверх
zim22
Дата 11.6.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(elenSV @  11.6.2009,  14:19 Найти цитируемый пост)
мне надо объявить

они у вас уже объявлены  smile 
можете помечать тему решённой!  smile 


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


Шустрый
*


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

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



копирующий конструктор, перегруженный оператор присваивания, inline и const в объявлениях методов и операторов
и манипулятор ввода и вывода в виде дружественных функций
неужели никто по теме написать ничего не может  smile 
PM MAIL   Вверх
azesmcar
Дата 11.6.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



elenSV

Про копи-конструкторы я тут писал
http://forum.vingrad.ru/forum/topic-262056...y1887548/0.html
оператор присваивания
Код

magnitofon& magnitofon::operator = (const magnitofon& r) {
  ...
}

но они вам не нужны. они автоматически генерируются.

Добавлено через 1 минуту и 3 секунды
Цитата(elenSV @  11.6.2009,  14:26 Найти цитируемый пост)
неужели никто по теме написать ничего не может  smile  


zim22
уже написал
Цитата(zim22 @  11.6.2009,  14:22 Найти цитируемый пост)
они у вас уже объявлены  smile 


PM   Вверх
elenSV
  Дата 11.6.2009, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот скажем  копирующий конструктор, перегруженный оператор присваивания, inline и const в объявлениях методов и операторов, манипулятор ввода и вывода в виде дружественных функций для контроллера
как мне записать это в случае с моим классом
ну пожалуйста  smile 
Код

//contr.h
#ifndef CONTR_H_INCLUDED
#define CONTR_H_INCLUDED
#include<iostream>
class controller{
    private:
    unsigned  valuetrashcam;
    unsigned valuetrashcont;
    unsigned maxvaluecam;
    unsigned maxvaluecont;
    public:
    controller();
    controller(unsigned a,unsigned b);
    controller(const controller&original);
   friend std::istream & operator >> (std::istream&is,controller & count);
    friend std::ostream& operator<<(std::ostream& os,const controller & count);
    bool insert(unsigned  size);
    bool move();
    inline unsigned full()const;
    inline void clean();
};


inline unsigned controller::full()const{
    unsigned result=100*valuetrashcont/maxvaluecont;
    return result;
    }
inline void controller::clean(){
    valuetrashcont=0;
    return;
}
#endif // CONTR_H_INCLUDED
//contr.cpp
#include <iostream>
#include "contr.h"
using namespace std;

controller::controller():valuetrashcam(0),valuetrashcont(0),maxvaluecam(0),maxvaluecont(0)
{}
controller::controller(unsigned a,unsigned b):
valuetrashcam(0),valuetrashcont(0),maxvaluecam(a),maxvaluecont(b){}

controller::controller(const controller& orig):valuetrashcam(orig.valuetrashcam),
valuetrashcont(orig.valuetrashcont),maxvaluecam(orig.maxvaluecam),maxvaluecont(orig.maxvaluecont)
{}

std::ostream & operator<<(std::ostream& os,const controller & count){
    os<<count.valuetrashcam<<" "<<count.valuetrashcont<<" "
    <<count.maxvaluecam<<" "<<count.maxvaluecont<<std::endl;
    return os;
}

std::istream & operator >> (std::istream& is,controller & count)
    {
        is>>count.valuetrashcam>>count.valuetrashcont;
    return is;
    }


bool controller::insert(unsigned  size){
    if(maxvaluecam!=0&&maxvaluecont!=0&&size<=maxvaluecam&&valuetrashcam<=maxvaluecam)
    {   if(valuetrashcam==0)
        {
            valuetrashcam+=size;
        return true;
        }
        else {
            bool success=move();
            if(!success){return false;}
        valuetrashcam=size;
        return true;
              }
                  }
    else return false;
}
bool controller::move(){
    if(maxvaluecam!=0&&maxvaluecont!=0&&valuetrashcam!=0&&maxvaluecont>=(valuetrashcont+valuetrashcam))
    {
    valuetrashcont+=valuetrashcam;
    valuetrashcam=0;
    return true;
    }
    else return false;
}


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


uploading...
****


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

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



Цитата(elenSV @  11.6.2009,  14:43 Найти цитируемый пост)
вот скажем  копирующий конструктор, перегруженный оператор присваивания, inline и const в объявлениях методов и операторов, манипулятор ввода и вывода в виде дружественных функций для контроллера
как мне записать это в случае с моим классом
ну пожалуйста  smile 

А ведь и вправду похоже на спам бот.
1. Это абсолютно другой код, сейчас какой-то контроллер, до этого был магнитофон.
2. Уже три раза сказано что копирующий конструктор и оператор присваивания АВТОМАТИЧЕСКИ ГЕНЕРИРУЕТСЯ, вам его писать НЕ НАДО.

Цитата(elenSV @  11.6.2009,  14:43 Найти цитируемый пост)
манипулятор ввода и вывода в виде дружественных функций для контроллера

вон они, написаны.

Цитата(elenSV @  11.6.2009,  14:43 Найти цитируемый пост)
inline и const в объявлениях методов и операторов

Цитата

inline unsigned full()const;

вот инлайн и конст..чего вам надо вообще?
PM   Вверх
mes
Дата 11.6.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(azesmcar @  11.6.2009,  13:47 Найти цитируемый пост)
2. Уже три раза сказано что копирующий конструктор и оператор присваивания АВТОМАТИЧЕСКИ ГЕНЕРИРУЕТСЯ, вам его писать НЕ НАДО.

а если в задании стоит, что надо обязательно определить ?
 smile 



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


uploading...
****


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

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



Цитата(mes @  11.6.2009,  14:59 Найти цитируемый пост)
а если в задании стоит, что надо обязательно определить ?

Для этого существует русский и могучий на котором можно обяснить а не писать в каждом посте тоже самое smile 
Но даже на этот случай я ответил

Цитата(azesmcar @  11.6.2009,  14:32 Найти цитируемый пост)
magnitofon& magnitofon::operator = (const magnitofon& r) {
  ...
}


Цитата(azesmcar @  11.6.2009,  14:32 Найти цитируемый пост)
Про копи-конструкторы я тут писал
http://forum.vingrad.ru/forum/topic-262056...y1887548/0.html
оператор присваивания

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

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

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

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

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


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

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


 




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


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

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