0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 5
1

Собрался изучить С# и написать программу, прошу советов и возможно ищу ментора

20.07.2017, 11:15. Показов 1731. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Когда-то давно изучал VB в юности. Уже забыл его, но в связи с производственной необходимостью хочу написать программу - определенный калькулятор геометрических характеристик поперечных сечений различного рода металлоконструкций (сопромат).
Для начала мне надо научиться задавать визуально поперечное сечение того, что я хочу считать следующим путем:
В форме должна быть таблица с координатами Х и У узлов.
Т.е. каждой паре координат - точке на пространстве (назову ее узлом) присваивается номер.
Во второй таблице я должен указывать узел начала и узел конца, чтобы где-то в picturebox рисовалась линия между указанными узлами. Помимо линии надо будет предусмотреть прорисовку сектора по узлам или сделать так, чтоб мы задавали узел начала и конца, а программа промежуточные узлы тоже задействовала и рисовала линию через несколько узлов.
Все это надо мочь сохранять в файл и считывать.
Возможно данные в таблице надо будет считывать в какой-то массив и работать с ним. Т.к. в будущем для каждой построенной линии надо будет посчитать ее площадь (будет указываться толщина линии во второй таблице), центр тяжести, момент инерции и эти данные надо будет хранить в каком-то массиве (?). А потом выводить общий центр тяжести нарисованной фигуры и другие ее характеристики. Я это все делаю в экселе, теперь надо сделать такую прогу.

Я пока только осваиваю сишарп и многого не знаю. Может кто-то подскажет, что мне надо выучить в первую очередь чтобы мочь написать такую программу?
Пока штудирую Шилдта и его C# 4.0 и гугл.

Приложу исходник того, что пока получилось.
Проблема на данном этапе такая - не могу (не знаю) как связать узлы между собой для прорисовки линии. Нужно далее научиться рисовать линию по узлам.
Прошу помощи.

Также наверно нужен ментор для изучения си , но строго в рамках того, что мне нужно для написания этой программы (чтоб быстрее прийти к конечной цели).
Надеюсь тут есть ребята, которые могут мне помочь за разумную цену.
Спасибо всем, кто откликнется!
Прошу писать потенциальным менторам в скайп del или сюда.

mycalc.rar
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2017, 11:15
Ответы с готовыми решениями:

Прошу советов по макросу
Есть документ в ворде состоящий из таблиц. Все таблицы пронумерованы, и имеют одинаковый...

Прошу советов по сборке PC
Материнская Плата-? Процессор-intel core i5-9600k Оперативная Память-DDR4 2x8Gb Corsair...

Прошу советов и помощи
В качестве общественной нагрузки занимаюсь развитием сайта www.equihelp.org (организация спасает...

Недорогой компьютер. Прошу советов
Приветствую. Собираю недорогой компьютер. Прикинул вот так: Материнская плата ASUS B75M-PLUS - 3...

4
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28044 / 15777 / 982
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
20.07.2017, 11:23 2
все обсуждения ведем на форуме, читаем правила.
0
0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 5
20.07.2017, 11:24  [ТС] 3
Простите за нарушение, тогда ведем в теме
0
0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 5
20.07.2017, 11:41  [ТС] 4
Вот так примерно должна выглядеть конечная программа:
Собрался изучить С# и написать программу, прошу советов и возможно ищу ментора
0
6217 / 2465 / 724
Регистрация: 11.04.2015
Сообщений: 3,983
Записей в блоге: 43
21.07.2017, 14:10 5
red_biker, тема, которую ты поднял - достаточно обширна и вопрос получился слишком общим, видимо поэтому и ответов нет. Пару советов все-таки дам ))

Рекомендую более тщательно изучить объекты DataSet и DataTable и их возможности в том числе при работе в винформах. Например существуют типизированные датасеты, их можно добавлять в проект с помощью фукнции "Добавить новый элемент". Использование этого подхода позволяет во-первых, конструировать таблицы в дизайнере, а во-вторых, для таблиц и строк будут созданы классы с которыми работать намного удобнее чем просто с таблицами и строками. Кроме того, что касается сохранения и загрузки данных, то даже если не используется база данных, то у этих объектов есть методы WriteXml и ReadXml, позволяющие сохранить все данные в XML-файл и загрузить их при необходимости. Еще я бы обратил внимание на то, что тип данных в таблице можно настраивать, что позволить избежать конвертирования в коде, то есть в таблицах можно хранить не только строки. Это не все, но для начала - уже неплохо.

Относительно рисования, я бы поискал в гугле статьи на эту тему, поскольку тема очень обширная и требует детального изучения матчасти. В общем, на что желательно бы обратить внимание:
  1. Забудь про пикчербокс, в нем можно рисовать, как и в любом другом контроле, но он не для этого предназначен, в него загружается картинка из файла и он ее отображает, вот для этого он и нужен. Если надо рисовать что-то свое, то создай собственный элемент управления на база Control, переопредели (override) в нем метод OnPaint и логику прорисовки реализуй в нем. Если этого не сделать, то картинка будет неустойчивой, например если поверх картинки появится другая форма, то после того как она будет убрана от картинки ничего не останется.
  2. Если тебе надо рисовать сложные фигуры, то для таких фигур надо создавать отдельные классы. Обычно создается абстрактный класс скажем Shape, в нем есть метод прорисовки, который принимает скажем Graphics как аргумент или PaintEventArgs, и в этом объекте себя прорисовывает. Каждая конкретная фигура наследует Shape и реализует метод прорисовки по-своему. А в контроле, который все это отображает будет красоваться коллекция фигур, сам метод OnPaint при этом просто обходит коллекцию и вызывает у всех фигур метод прорисовки. Кроме того расчет параметров фигуры тоже можно разместить в классы фигур.
  3. В интерфейсе программы, возможно, есть смысл размещать не отдельные точки, а фигуры, а уже параметры фигур можно настраивать в PropertyGrid, например.
В двух словах как-то так.
2
21.07.2017, 14:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2017, 14:10
Помогаю со студенческими работами здесь

Прошу советов по сборке компьютера
Материнская Плата-Asrock Z390 PRO4 Процессор-intel core i5-9600k Оперативная Память-DDR4 2x8Gb...

Текстовый квест прошу советов
Добрый день. Решил разработать текстовый квест на android пишу на java. Есть несколько вопросов,...

Прошу советов по сборке компа
Доброго времени суток! Решил собрать ПК для игр и стриминга, требуются советы и критика, что...

Ищу ментора
Господа, Говорю сразу - не дуб, многие вещи понимаю, знаю или слышал. Просто у меня с...

Ищу ментора
Здравствуйте. Я только начал изучать программирование и ещё ничего не знаю. Кто согласен мне помочь...

Ищу ментора
Возможно, из этого ничего не выйдет, но попытка - не пытка. Возникают некоторые вопросы по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru