Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [c++] mmpi: сбор требований и дизайн  (Прочитано 4938 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« : 26-09-2009 08:44 » 

[c++] mmpi: сбор требований и дизайн

хочу для тренировки написать на с++ простенький mmpi опросник http://ru.wikipedia.org/wiki/MMPI, ситуация точно такая же как и с https://forum.shelek.ru/index.php/topic,21292.0.html, тупого кодинга на час полтора если знаешь, что писать, но ничего с первого раза без отладки не запустится, если накосячить на этапе планирования

хотя в данном случае, наверное вопрос не в том каким из 3х алгоритмов воспользоваться... a

реализацию каких задач следует описать перед кодингом?

может ли это сразу потребовать использования библиотек, кроме libstdc++?

по какому принципу лучше разделить реализацию задач на классы?

как описать интерфейс между классами так, чтобы при добавлении нового потомка класса, требовалось перекомпилить только модуль фабрики классов?

зы еще раз повторюсь задачка учебная, основные цели: заценить возможности полиморфизма при масштабировании проекта: добавлением новых шкал опросника, дальнейшим переносом взаимодействия с пользователем с консоли на гуй библиотеку, портированием кода с линуха на винду


+8h

решил раскидать задачи по 3м классам:
Код:
class io { // пользовательский интерфейс
 show_question(); // показывает вопрос
 get_answer(); // возвращает ответ
)
/* учитывая большое число вопросов, помимо ответов да\нет\возможно, будет еще возвращать
 * сохранить\загрузить ответы
 * возможно стоило передать указатель на контейнер для вызова методов сохранения\загрузки ответов?
*/
class container {
 T data[num_quest];
 string quest[num_quest];
 save();
 load();
 set_tru();
 const T& operator[](size_t);
 io* pio;
}
map cio<answer,container::method>;
/* контейнер хранит вопросы и ответы, полученный ответ преобразовывается в ссылку на метод, который
 * устанавливает ответ в data[] или вызывает save\load
*/
map<string,int> scale;
class count;
/* как реализовать еще не определил
 * можно сделать по методу для расчета каждой шкалы
 * можно сделать синтаксическим анализатором, который задаст
 * в ассоциативном списке для каждой описанной в конфигурационном файле шкалы
 * ее значение в  соответствии с  container::data
*/

вроде бы io должен использовать виртуальные функции, тк является пользовательским интерфейсом?
каким типом в него лучше передавать вопрос, и получать ответ?
( не могу определится с типом аргументов и возвращаемых значений у show_question и get_answer )

container вроде бы должен быть шаблоном в который передаются число вопросов и тип ответов?
но с другой стороны может возвращать его из фабрики считав тип теста из конфигурационного файла?
(если захочется заставить прогу работать с другим опросником)


« Последнее редактирование: 26-09-2009 16:12 от Mayor » Записан

1n c0de we trust
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 28-09-2009 06:55 » 

люди иногда только думают, что горят с кем-то, на сам деле они говорят с собой.
Записан

Странно всё это....
Mayor
Специалист

ru
Offline Offline

« Ответ #2 : 28-09-2009 17:04 » 

та же самая ситуация, что и с алгоритмами - если народ не в теме, на всякий случай посщу ответ, может кому интересно будет или успеет раскритиковать решение, до провала\реализации

ну а на самом деле, из интересующих меня тем, тут только сильные с++ кодеры обитают, алгоритмы третьего уровня сложности тут никто не решит, а  второй я и сам уже зачастую без подсказок решаю

а ветка технологии разработки программ почти мертва
Записан

1n c0de we trust
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 28-09-2009 17:31 » 

Mayor, А в чем сложность реализации? Такие задачи решаются с применением массивов. Строится матрица ответов. Остается только дело за малым, взять ответы испытуемого и соотнести их с матрицей. Подсчитать результаты по каждой категории. Какие тут могут быть "алгоритмы третьего уровня сложности"?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines