class Record {
/* Я так представляю что "запись на кассете" содержит в себе какие-то элементы. Допустим слова.
Тогда:
*/
typedef std::string word;/* Элемент описывающий слово в записи. */
std::vector<word> words;
};
class Cassete {
/* Кассета представляет собой коллекцию записей приведенных выше.
*/
std::vector<Record> records;
};
иерархия классов
иерархия классов и динамический полиморфизм
разработать програмную модель для заданной преподователем иерархии понятий
в программе должны быть задействованы все разработанные классы и продеманстрировано использование динамического полиморфизма
Рассмотреть модификацию магнитофона, который запоминает у себя в памяти все выполняемые пользователем действия. Считается что видиокассета обладает уникальным числовым идентификатором. В качестве тестовой программы рассмотреть задачу выполнения просмотра кассеты на магнитофоне, точный вид которого не определен. Просмотр сосстоит в последовательности след. операций: вставить кассету, перемотать кассету в начало, включить воспроизведение, выполнить останов и извлечь кассету.
Код:
Код:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
typedef std::string word;
typedef std::vector<word> words;
/***************************************************************************/
class Record {
words words;
public:
Record():words() {}
Record(const std::string& b):words() { load(b); }
~Record() {}
/* */
void load(const std::string& b) {
std::stringstream buf(b);
word word;
while ( buf.eof() ) {
buf >> word;
words.push_back(word);
}
}
void save(std::string& b) {
std::stringstream buf;
words::iterator it = words.begin();
while ( it != words.end() ) {
buf << *it << (it == words.end()) ? "" : " ";
++it;
}
b = buf.get();
}
void add(const word& w) {
if ( w.empty() ) return;
words.push_back(w);
}
bool contains(const word& w) const {
words::const_iterator it = words.begin();
while ( it != words.end() ) {
if ( *it == w ) return true;
++it;
}
return false;
}
};
/***************************************************************************/
int main(int argc, char** argv) {
std::string str;
std::fstream in("records.txt", std::ios::in);
if ( !in ) {
std::cout << "Can`t open records file. Terminate!\n";
return 1;
}
Record rec;
while ( !in.eof() ) {
std::getline(in, str);
rec.load(str);
}
return 0;
}
/***************************************************************************/
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
typedef std::string word;
typedef std::vector<word> words;
/***************************************************************************/
class Record {
words words;
public:
Record():words() {}
Record(const std::string& b):words() { load(b); }
~Record() {}
/* */
void load(const std::string& b) {
std::stringstream buf(b);
word word;
while ( buf.eof() ) {
buf >> word;
words.push_back(word);
}
}
void save(std::string& b) {
std::stringstream buf;
words::iterator it = words.begin();
while ( it != words.end() ) {
buf << *it << (it == words.end()) ? "" : " ";
++it;
}
b = buf.get();
}
void add(const word& w) {
if ( w.empty() ) return;
words.push_back(w);
}
bool contains(const word& w) const {
words::const_iterator it = words.begin();
while ( it != words.end() ) {
if ( *it == w ) return true;
++it;
}
return false;
}
};
/***************************************************************************/
int main(int argc, char** argv) {
std::string str;
std::fstream in("records.txt", std::ios::in);
if ( !in ) {
std::cout << "Can`t open records file. Terminate!\n";
return 1;
}
Record rec;
while ( !in.eof() ) {
std::getline(in, str);
rec.load(str);
}
return 0;
}
/***************************************************************************/
Код:
class Magnitofon {
/* Ну и сам Магнитофон, который все перечисленым выше, управляет.
*/
};
/* Ну и сам Магнитофон, который все перечисленым выше, управляет.
*/
};
Цитата: elenSV
помогите доделать
Помочь доделать что? Что не получается?
class Cassete не получается