Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рисование графа 
:(
    Опции темы
becks
Дата 10.12.2010, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Добрый день. Начинаю более детальное знакомство с С++ с такого проекта, прошу подсказать правильно ли я для себя представляю задачу, этапы и ее реализацию:
 Необходимо сделать что-то вроде графического редактора для создания и редактирования графов. Т.е. как я понимаю, необходимо предусмотреть 3 визуальных объекта Круг (вершины графа), Стрелка (ветви графа) и текстовый блок.  Причем объект Круг (вершина графа) должен иметь порядковый номер внутри, а Стрелка иметь такое понятие как вес, получаемое в зависимости от того из какой вершины и в какую направлена. Необходимо реализовать возможность перетаскивания объектов и групп объектов. Итоговый граф необходимо сохранять в файле некоторого формата. Сделать возможность открытия файлов этого формата и редактирования их в программе. Так же необходимо чтоб файл сохранял информацию о матрице смежности графа и некоторых других матрицах.

Возникают след. вопросы. 
1)Как это реализовать в среде Microsoft Visual Studio 2008 на языке C++ более наглядно, необходимо ли использовать библиотеку MFC?
2) правильно ли я определил этапы реализации. (в начале пишем простой редактор, потом прикручиваем возможность редактировать его сохранять в файл и загружать из файла, потом прикручиваем к файлу информацию о матрицах ) ?
3) Как к графическому файлу прикрутить информацию о матрицах??? (Это необходимо для того чтобы в другая программа работающая с таким же форматом фалов могла работать с этими матрицами. Т.е. они по сути являются входной информацией для другой программы).

Буду очень благодарен за любую помощь словесную, источники, предложения. Прошу писать только по делу, так как есть желание разобраться во всем этом деле. Спасибо.
PM MAIL   Вверх
bsa
Дата 10.12.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(becks @  10.12.2010,  13:13 Найти цитируемый пост)
1)Как это реализовать в среде Microsoft Visual Studio 2008 на языке C++ более наглядно, необходимо ли использовать библиотеку MFC?
Если есть возможность, выбери более "живую" библиотеку. Например, Qt.
Цитата(becks @  10.12.2010,  13:13 Найти цитируемый пост)
2) правильно ли я определил этапы реализации. (в начале пишем простой редактор, потом прикручиваем возможность редактировать его сохранять в файл и загружать из файла, потом прикручиваем к файлу информацию о матрицах ) ?
Сначала нужно распланировать архитектуру программы. А так же придумать формат файла. А потом уже писать. Причем, писать нужно так, чтобы сначала у тебя была базовая функциональность, а остальное дописывалось постепенно.
Цитата(becks @  10.12.2010,  13:13 Найти цитируемый пост)
3) Как к графическому файлу прикрутить информацию о матрицах??? (Это необходимо для того чтобы в другая программа работающая с таким же форматом фалов могла работать с этими матрицами. Т.е. они по сути являются входной информацией для другой программы).
Вариантов куча. Например, в начале файла указываешь таблицу размещения данных. В ней задается положение и размер каждого блока данных.

PM   Вверх
becks
Дата 10.12.2010, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Спасибо за ответы.

Цитата(bsa @  10.12.2010,  13:49 Найти цитируемый пост)
Сначала нужно распланировать архитектуру программы. А так же придумать формат файла. А потом уже писать. Причем, писать нужно так, чтобы сначала у тебя была базовая функциональность, а остальное дописывалось постепенно.


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

И вот еще, как раз с придумыванием форматов файлов у меня затык, с этим я ниразу не встречался, есть ли какие-нибудь общие советы или рекомендации непосредственно к моей задаче или достаточно будет открыть какой-нить мануал и условно говоря прочитав "сделать по образцу"?
Спасибо.
PM MAIL   Вверх
bsa
Дата 12.12.2010, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



becks, под архитектурой понимается взаимодействие различных частей программы.
Ты как хочешь можешь писать. Если математика сложная, то лучше действительно ее отладить на простом проекте.
Вообще-то, формат файла определяется из конкретных задач. Самый простой способ - сохранить массив данных в файл.
PM   Вверх
xvr
Дата 13.12.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Еще можно взять какую нибудь существующую библиотеку по работе с графами, что бы не изобретать велосипед (boost::graph например). И потом на ее базе дописывать недостающий функционал (GUI например)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.