Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Работа с Pattern'ами

Ответить
Настройки темы
C/C++ - Работа с Pattern'ами

Аватара для Glareone

Старожил


Сообщения: 281
Благодарности: 46


Конфигурация

Профиль | Отправить PM | Цитировать


Доброго времени суток.
Задача:

Написать набор классов для генерации тестовых данных.
Структура представляется в виде совокупности объектов различного класса.
Д.б. классы для выбора, циклов и других элементов.
У всех классов д.б. метод generate, выводящий в файл результат генерации.
Класс последовательность Seq(), в которую можно добавлять (.add())
следующие элементы:
целое число, ссылку на переменную или строку,
указанное значение выводится при генерации
Объекты классов:
Any(строка)
при генерации выводится случайный символ из строки
Per(строка)
при генерации выводится случайная перестановка символов строки
Format(число или переменная, строка)
при генерации выводится значение по указанному формату
Rep(целое число или переменная, элемент)
действие повторяется заданное число раз
While(переменная, элемент)
действие повторяется пока значение переменной не нулевое
другие последовательность или
Select().add(элемент [,целое число=1]).add(...
группа выбора, элемент из группы выбирается с вероятностью
прямо пропорциональной числу
Assign(переменная, выражение)
при генерации переменной присваивается выражение
выражение строится из объектов
Random(целое число или переменная,целое число или переменная)
случайное значение в указанном диапазоне
целых чисел и переменных,
соединяемых знаками операций +, -, *, /, %

Пример работы:

Var N;
Seq s1;
s1.add(Assign(N,Random(1,100))).add(N).add("\n");
// присвоить N случайное число от 1 до 100, вывести N, вывести "\n"
s1.add(Rep(N,Seq().add(Rep(10,Any("ABC"))).add("\n"));
// выполнить N раз вывод строки из 10 случайных символов A,B или C
s1.generate();
// сгенерировать тест, результат выводится в cout

Пример сгенерированного теста:
3
ABBACCAAAB
ACBBBACAAC
BBACCCCAAA

Вопрос:

Подскажите, какова структура должна быть классов,чтобы решить подобную задачу.
Что я должен почитать,где посмотреть примеры реализации подобного?
Какие паттерны мне надо использовать? (пока догадался только о "Composite",тк без него тут не сделать вовсе,утону или в шаблонах или в виртуальных методах)

-------
Имеющий глаза,да узрит, Имеющий уши,да внемлет.


Отправлено: 16:22, 17-06-2010

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Работа с Pattern'ами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проблема с некоторыми UIN'ами в ICQ на кпк CJ F.A.N. Мобильные ОС, смартфоны и планшеты 3 29-12-2009 03:06
Верстка DIV'ами (разлазится в IE6) darksmoke Вебмастеру 5 27-12-2009 13:54
Прочие БД - sql-запрос с join'ами M1sha Программирование и базы данных 9 27-08-2009 21:02
Cisco - доступ между Vlan-ами temich77 Сетевое оборудование 1 23-06-2008 12:57
Проблема с Wi-Fi сеткой между двумя Acer'ами Trali vali Сетевое оборудование 9 16-05-2008 19:00




 
Переход