3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 33
|
|
Написать программу, которая по коду строит схему классов03.02.2014, 20:55. Показов 948. Ответов 4
Метки нет Все метки)
(
задача состоит в том, чтобы написать программу, которая по коду построить схему классов. На начальном этапе хотел считывать код с файла(потом уж всё красиво оформить как полноценную прогу, а пока так), но понял, что считывание слов и строк очень муторно и вообще разочаровался в этой идеи. посоветуйте каким способом можно подойти к решению этой задачи. как бы вы поступили. хочу полностью сам написать, поэтому к фрилансерам не обращаюсь.
1
|
03.02.2014, 20:55 | |
Ответы с готовыми решениями:
4
Написать программу, которая строит дерево Хаффмана Написать программу, которая строит двоичный каталог Написать программу, которая строит графики функций |
![]() 101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
|
|
03.02.2014, 21:13 | |
klik07, вообще MS Visual Studio отлично справляется с этой задачей ). Если хотите сами, то я предложил использовать регулярные выражения. Считываете весь текст - ищите зарезервированные слова (class). По найденным классам строить граф наследования.
1
|
96 / 12 / 3
Регистрация: 10.01.2014
Сообщений: 30
|
|
03.02.2014, 22:41 | |
Не обязательно. Вам ведь в конечном счете надо находить только слово class, и для каждого из них искать те классы, которые он наследует. Напишите функцию для решения этого. Впрочем, С++ уже предоставляет готовые функции для подобных задач, а именно по работе с регулярными выражениями.
1
|
![]() |
|
03.02.2014, 23:55 | |
mf909, именно, что муторно! Си плюс Плюсы предоставляют 100500 фишек с классами, которые все придётся предусмотреть автору.
Даже если он решит ограничиться выуживанием из исходника исключительно имён классов, перед ним встанет множество способов их объявления: - классы, объявленные как структуры - классы, объявленные внутри классов и их видимость - классы, объявленные внутри неймспейсов и их видимость - проблемы с распознаванием наследования: приватное/публичное, виртуальное, наследование от шаблонного класса, и.т.д. - отличие самих объявлений классов от их forward declaration (это к слову о том, что якобы "достаточно произвести поиск по тексту слова class") - отличие объявлений самих классов и структур от объявлений функций и переменных этого типа (это к слову о том же) - возможное наличие шаблонов в коде увеличивает этот список проблем в N раз - и ещё в N раз этот список увеличивается, т.к. я наверняка много всего забыл!
0
|
03.02.2014, 23:55 | ||||||
Помогаю со студенческими работами здесь
5
Написать программу, которая строит матрицу бинарного отношения Написать программу, которая строит любые тригонометрические функции Написать программу, которая строит график параметрической функции Написать программу, которая строит график функции: x=C1*(t-1/2*sin2t)+C2, y=C1*sin^2t
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
|
Async/await в Swift: Асинхронное программирование в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
|
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
|
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
|
C++26: Индексирование пакетов и метапрограммирование
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
|
Состояние гонки в C#: подводные камни многопоточного программирования
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
|
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
|
JUnit или TestNG: Выбираем Java-фреймворк для тестирования
Javaican 20.03.2025
История тестовых фреймворков в Java началась в конце 90-х, когда Кент Бек и Эрих Гамма разработали JUnit - инструмент, который перевернул представление разработчиков о модульном тестировании. JUnit. . .
|
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
|