Доброго времени суток.
Задача:
Написать набор классов для генерации тестовых данных.
Структура представляется в виде совокупности объектов различного класса.
Д.б. классы для выбора, циклов и других элементов.
У всех классов д.б. метод 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",тк без него тут не сделать вовсе,утону или в шаблонах или в виртуальных методах)
C/C++ - Работа с Pattern'ами
Ответить
Сообщений: 1
• Страница 1 из 1
Вернуться в «Программирование и базы данных»
Перейти
- Forum-OSzone.ru
- ↳ Информация
- Клиентские ОС Microsoft
- ↳ Microsoft Windows 95/98/Me (архив)
- ↳ Microsoft Windows 2000/XP
- ↳ Microsoft Windows Vista
- ↳ Microsoft Windows 7
- ↳ Microsoft Windows 8 и 8.1
- ↳ Microsoft Windows 10
- ↳ Microsoft Windows 11
- Linux и FreeBSD
- ↳ Общий по Linux
- ↳ Общий по FreeBSD
- ↳ Программное обеспечение Linux и FreeBSD
- ↳ Железо в Linux
- ↳ Новости и флейм из мира *nix
- ↳ Железо во FreeBSD
- ↳ Программирование в *nix
- Общий
- ↳ Флейм
- ↳ О сайте и форуме
- ↳ Юмор
- Компьютеры + Интернет
- ↳ Вебмастеру
- ↳ Хочу все знать
- ↳ Игры
- ↳ Мобильные ОС, смартфоны и планшеты
- ↳ Сетевые технологии
- Зона тестирования
- ↳ Тест-форум
- Железо
- ↳ Поиск драйверов, прошивок и руководств
- ↳ Непонятные проблемы с Железом
- ↳ Процесcоры
- ↳ Материнские платы и память
- ↳ Видеокарты
- ↳ Разгон, охлаждение и моддинг
- ↳ Накопители (SSD, HDD, USB Flash)
- ↳ Оптические приводы
- ↳ Сетевое оборудование
- ↳ Прочее железо
- ↳ Выбор отдельных компонентов компьютера и конфигурации в целом
- ↳ Ноутбуки
- ↳ Металлолом
- Автоматическая установка Windows
- ↳ Автоматическая установка Windows 2000/XP/2003
- ↳ Автоматическая установка приложений
- ↳ Наборы обновлений для Windows XP/2003/Windows 7
- ↳ Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista
- ↳ Проект WinStyle
- Информационная безопасность
- ↳ Защита компьютерных систем
- ↳ Лечение систем от вредоносных программ
- Архив
- ↳ Новости железа
- ↳ Новости информационных технологий
- ↳ Новости и события Microsoft
- ↳ Новости программного обеспечения
- Цифровые технологии
- ↳ Видео и аудио: обработка и кодирование
- ↳ Цифровое изображение
- Серверные продукты Microsoft
- ↳ Microsoft Windows NT/2000/2003
- ↳ Microsoft Exchange Server
- ↳ Windows Server 2008/2008 R2
- ↳ ISA Server / Microsoft Forefront TMG
- ↳ WSUS
- ↳ Другие серверные продукты
- ↳ Windows Server 2012/2012 R2
- ↳ Windows Server 2016/2019/2022
- Программирование, базы данных и автоматизация действий
- ↳ Программирование и базы данных
- ↳ Скриптовые языки администрирования Windows
- ↳ AutoIt
- Сфера Microsoft
- ↳ Программное обеспечение Windows
- ↳ Лицензирование продуктов Microsoft
- ↳ Устранение критических ошибок Windows
- ↳ Microsoft Office (Word, Excel, Outlook и т.д.)
- Изменение внешнего вида Windows
- ↳ Оформление Windows 11/ 10 / 8 / 7 / Vista
- ↳ Оформление Windows XP