| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > классы |
| Автор: elenSV 1.5.2009, 18:34 | ||
| проверьте пожлста Рассмотреть модификацию магнитофона, который запоминает у себя в памяти все выполняемые пользователем действия. Считается что видиокассета обладает уникальным числовым идентификатором. В качестве тестовой программы рассмотреть задачу выполнения просмотра кассеты на магнитофоне, точный вид которого не определен. Просмотр сосстоит в последовательности след. операций: вставить кассету, перемотать кассету в начало, включить воспроизведение, выполнить останов и извлечь кассету.
А как это в KDevelop оформить как cpp и h файл - какие директивы подключать и ещё подскажите как это сделать: Пусть имеется магнитофон с записью операций Требуется определить самую часто воспроизводимую кассету то есть такую для которой операция воспроизведения производилась наиболее часто |
| Автор: elenSV 1.5.2009, 18:45 |
| Я просто не оч понимаю как модифицировать методы и поле kasset так, что бы вставлялась каасета с именем, и при воспроизведении счётчик для вставленной кассеты увеличивался. |
| Автор: bsa 1.5.2009, 18:45 |
| создай проект c++ hello world и замени файл main.cpp своим. Как вариант, запусти консоль (терминал) и скомпилируй вручную: g++ -o myprog myprog.cpp, затем останется только запустить ./myprog |
| Автор: mes 1.5.2009, 18:57 | ||||
можно так к примеру :
|
| Автор: zim22 1.5.2009, 19:03 | ||
|
| Автор: mes 1.5.2009, 19:07 |
| |
| Автор: elenSV 1.5.2009, 19:11 | ||
Я не оч поняла зачем вот это:
почему в main'e А как определить самую часто воспроизводимую кассету? |
| Автор: zim22 1.5.2009, 19:22 | ||
потому что main выступает в качестве программы-драйвера для тестирования классов Mmagnitofon и Kassette Добавлено @ 19:23 отсортировать массив kassette. алгоритм partial_sort из <algorithm> подойдёт
|
| Автор: mes 1.5.2009, 19:23 | ||||
определяй, где тебе удобнее примерно, так определяем самую часто вставляемую кассету :
для самой воспроизводимой нужно завести еще одно поле, которое будет изменяться в magnitofon::play (изменять можно на единицу при каждом включении или например по длине времени воспроизведения - это уж на свой вкус) P.S. все приведенные коды даны с допущениями. В частности предполагается, что поле InsertCount изначально обнулено. Добавлено через 6 минут и 30 секунд
тогда id потеряется, так как в приведенном примере оно основывается на позиции элемента в массиве. Кстати возможность таких последствий говорит, о том что решение не самое красивое. (но зато отн. легкое ) |
| Автор: elenSV 1.5.2009, 19:31 | ||
то есть здесь кроме этого ничего не надо:
али что - я на измене |
| Автор: zim22 1.5.2009, 19:38 | ||
я это уже понял и изменил вhttp://forum.vingrad.ru/index.php?showtopic=257715&view=findpost&p=1857950 структуру Kassete |
| Автор: mes 1.5.2009, 19:56 |
В принципе в магнитофон необходимо добавить только лишь изменение свойств кассеты при каком нужно действии. ну и конечно описать саму структуру/класс кассеты и создать их список/массив. |
| Автор: EvilsInterrupt 2.5.2009, 09:20 | ||||
Я бы переписал на:
инициализация должна быть в месте иницализации, а в конструкторе после constructor_name(): [section initialiation] {} |
| Автор: zim22 2.5.2009, 10:07 | ||||||
Хорошо. Допустим, мне нужно проинициализировать массив char значением "hello". Как вы перепишете код, чтобы buffer инициализировался в initializer list?
Так не получается:
|
| Автор: mes 2.5.2009, 10:32 | ||
буду использовать std::string или другой подходящий контейнер. |
| Автор: elenSV 2.5.2009, 10:40 | ||||||
Я что то немного запуталась - а где инициализировать
|
| Автор: zim22 2.5.2009, 11:01 | ||
допустим, что нельзя использовать string или другие контейнеры Я бы в теле конструктора конечно strcpy вызвал, но если нужно в initializer list, то так:
|
| Автор: mes 2.5.2009, 11:25 | ||
понятно, вместо того чтоб вовремя выйти на ровную тропу, делаем еще один шаг вглубь, так еще и новичкам пример показываем. |
| Автор: elenSV 2.5.2009, 15:22 | ||
ребятушки расскажите пожлста как это работает:
|
| Автор: zim22 2.5.2009, 15:29 |
когда создаётся объект класса Kassette ему с помощью статической переменной unique_id присваивается уникальное значение. оно нужно для того, чтобы после применения алгоритма partial_sort сохранились индексы элементов. алгоритм partial_sort принимает функцию сравнения cmp_fcn, с помощью которой происходит сортировка элементов по убыванию. т.е. на первом месте (нулевой индекс массива) будет элемент с макс.значением поля InsertCount ну а после сортировки мы получаем max_number(сколько раз вставляли кассету) и id кассеты id_kassette |
| Автор: EvilsInterrupt 2.5.2009, 20:08 |
| >>Как вы перепишете код, чтобы buffer инициализировался в initializer list? Если постараться, то шубу в трусы тоже можно заправить, но по мне кроме майки лучше в трусы ничего не заправлять ) Секция инициализация, соглассно книгам и Скоту Майерса, была задумана для инициализации переменных унарных типов, а-ля bool, int, short int, float, etc . А для массива, это уже тело ф-ции(а конструктор тоже функция, только специальная). |
| Автор: elenSV 3.5.2009, 14:59 | ||
| Посмотрите пжлста для этой программы: разработать класс для представления понятия "контроллер видеомагнитофона"(обеспечивает програмное управление видеомагнитофоном, который может осуществлять запись, выполнять воспроизведение кассеты и осуществлть перемотку в указанном направлении):
А как это в KDevelop оформить как cpp и h файл - какие директивы подключать |