42 / 10 / 9
Регистрация: 13.03.2015
Сообщений: 74
|
||||||
1 | ||||||
Дефектация электродвигателя03.08.2022, 18:54. Показов 1500. Ответов 21
Метки нет (Все метки)
Изучал я пару лет назад Си и уткнулся в то, что без грамотного наставника дальше я далеко не продвинусь. Синтаксис я освоил, начал работать с библиотеками. Поигрался с OpenCV. Заинтересовало сетевое программирование. Написал небольшой чат в консоли и на этом забуксовал. Не понимал что дальше делать. Устроится джуном на си в моём регионе не реально, поэтому решил перейти на C++. Вот изучаю потихоньку. Заодно вспоминаю что уже умею. Надеюсь в дальнейшем развиться как то в этом направлении. На данный момент занимаюсь ремонтом электрических машин (в том числе). И для задач по дефектации электрических машин решил написать программу с выводом результатов в файл. В дальнейшем планирую каким то образом результаты экспортировать в файл xls. Почитал по форумам - советуют смотреть в сторону csv. Очень хочется научиться работать с формами. А пока я выкладываю начало программы. В дальнейшем разобью функции по файлам и сделаю вывод в файл. Много чего добавлю, а ненужное уберу. Если увидите у меня ошибки - сообщите, приму к сведению. Если подскажите как делать лучше - тоже буду только рад. Хотелось бы конечно устроиться куда нибудь джуном на C++ может подскажете куда мне стоит развиваться и к чему стремиться.
0
|
03.08.2022, 18:54 | |
Ответы с готовыми решениями:
21
Проверить класс. Обмотка электродвигателя при заданном числе параллельных ветвей Программирование электродвигателя расчет электродвигателя Выбор электродвигателя Подключение электродвигателя |
4857 / 2656 / 913
Регистрация: 29.11.2010
Сообщений: 5,732
|
|
03.08.2022, 19:25 | 2 |
Смешивание неймспейсов целиком считается плохой практикой.
Глобальные переменные в среднем -- плохая практика и должны быть очень хорошо обоснованы. В вашем случае они не нужны. В этих forward-объявлениях нет нужды. Они лишь ухудшают читаемость. В С++ считается хорошим тоном иметь наименьший scope у переменных. Не надо сначала все переменные объявлять, а потом ими пользоваться. Объявляйте в наименьшей области видимости непосредственно перед использованием. Булевые переменные работают проще. В этом случае тернарные операторы не нужны. sw1 = a == 1; Логику программы не рассматриваю. Добавлено через 6 минут Библиотеки есть для всего. CSV полегче, XML, JSON потяжелее, но функционал больше. Есть из чего выбирать: C++ UI Libraries Продолжайте тренироваться писать код на плюсах, заодно выберите и прокачивайте основное направление развития -- гуй, игры, системное, драйверы, утилиты...
2
|
03.08.2022, 19:36 | 3 | ||||||||||
если это не заглушки для чего-то большего, а каждая функция реально нужна просто чтоб вывести одну строку и ввести другую. То этот пример - демонстрация абсолютного непонимания "что такое функция". Тут должна быть одна функция.
Кроме того использование этого string negKorp и аналогов в параметрах - демонстрирует, что автор абсолютно не понимает, что такое параметры функции и локальные переменные, он думает, что если он хочет получать значения negKorp из функции, то сначала нужно передать его в неё, а потом вернуть. почему автор не написал
Переменная же называется temp... ужас какой, а вдруг мы выбрасываем значение вникуда??? ну то есть автор не понимает различие глобальных и локальных переменных и не понимает принципы вызова функции в различных контекстах.
2
|
42 / 10 / 9
Регистрация: 13.03.2015
Сообщений: 74
|
||||||
03.08.2022, 20:57 [ТС] | 4 | |||||
Да. Виноват. Я подзабыл как передавать функции параметры. Надо почитать. Спасибо что обратили внимание. И подсказали правильный способ.
lemegeton, Kuzia domovenok. Спасибо большое за аргументированную критику. Буду исправляться и работать над собой. Добавлено через 59 минут Я исправился в некоторых моментах. Обьявлять переменные перед использованием не стал. Увеличивается обьём. Ухудшается читаемость. Это не конечный вариант. На сегодня всё. Завтра продолжу.
Этого момента не понял. Так учат на курсах и в учебниках.
0
|
фрилансер
5840 / 5363 / 1102
Регистрация: 11.10.2019
Сообщений: 14,327
|
|
03.08.2022, 21:02 | 5 |
1
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
03.08.2022, 23:30 | 6 |
Что бы сам намотался якорь, надо написать вот эту беду?
Добавлено через 1 минуту А я дурак руками мотал. Добавлено через 3 минуты high technology...
1
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
03.08.2022, 23:39 | 7 |
1
|
42 / 10 / 9
Регистрация: 13.03.2015
Сообщений: 74
|
|
04.08.2022, 01:48 [ТС] | 8 |
Я инженер-технолог и мастер ОТК. Слежу чтобы работниками выполнялись работы по технологиям согласованным с РМРС и РРР. Так же занимаюсь сдачей работ РМРС и РРР. А вот для сдачи работ необходимы акты. Акты дефектации, протоколы испытаний, извещения. Электрические машины - это не единственное направление которым мы занимаемся. Также электромонтаж и автоматика. Хотелось бы автоматизировать как то этот момент с актами, потому что он занимает какое то определённое время. Или хотя бы упростить его , чтобы можно было посадить на эту работу человека средних умственных способностей. Ну и паралельно хотелось бы научиться чему то новому.
2
|
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
|
04.08.2022, 02:44 | 9 |
Это все осуществимо, но усилия придется приложить.
А также ознакомится и выбрать фреймворк для создания приложения(ий). Фреймворк предоставляет : - единую систему для создания GUI (формы, кнопочки и др. виджеты), - единую систему работы со строками и локализации. - работы с файлами, стандартными популярными форматами(xml и прочие), вплоть до создания отчетов (какого то документа, или просто макета для печати) - поддержку мультимедиа, изображений, графиков и прочего бобра. Все это скручивать по отдельности возможно, но это огромный кусок работы. Добавлено через 4 минуты Пересечение имен приводит к ошибкам, в редких случаях довольно тонким. Хорошая привычка, как можно меньше разбрасывать вокруг себя "граблей". EikahElle, еще вас ждет довольно увесистый курс по ООП, которого в таком виде в "С" не было.
2
|
715 / 675 / 110
Регистрация: 29.05.2015
Сообщений: 4,066
|
|
04.08.2022, 06:59 | 10 |
Самый простой способ "автоматизировать как то этот момент с актами" - это вывести стандартную форму акта на экран так, как она будет выглядеть в напечатанном виде, и с полями для заполнения в нужных местах. Что-бы открыть акт, запоолнить нужные поля и отправить на печать (сохранить и т.п.).
2
|
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
|
|
04.08.2022, 11:28 | 11 |
Это далеко не самый простой способ, я бы даже сказал один из самых замороченных, по реализации.
1
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
04.08.2022, 12:44 | 12 |
SmallEvil,
Прав. Это серьёзная работа. Не для новичка. Добавлено через 1 минуту Может на бильдере. Я такого не писал. Я не инженер технолог. Добавлено через 1 минуту Бильдер, это уже куча фреймворков, с gui_ом.
1
|
4857 / 2656 / 913
Регистрация: 29.11.2010
Сообщений: 5,732
|
|
04.08.2022, 12:49 | 14 |
Не стоит делать форвард-декларации там, где можно написать функцию до её использования. Затрудняет чтение кода.
Если ещё возвращаемый тип не void, то оно похоже на создание переменной с конструктором. Попробуйте объявлять переменные прямо непосредственно перед первым использованием. Читаемость улучшится. Хммм. С подобной комплексной логикой программы вы очень быстро уедете в область, где читаемость и поддержка кода станет практически невозможна. Стоит обобщить задачу и отделить данные от кода.
2
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
04.08.2022, 12:57 | 15 |
https://www.cyberforum.ru/atta... 1659607003
Я как то послал учебник. Меня админ. того.... сего...
1
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
04.08.2022, 13:05 | 16 |
1
|
4857 / 2656 / 913
Регистрация: 29.11.2010
Сообщений: 5,732
|
|||||||||||
04.08.2022, 13:11 | 17 | ||||||||||
Иногда курсы и учебники устаревают, а то и вовсе учат плохому. )
Это всё прокатывает, пока вы не начинаете писать крупные программы с дополнительными библиотеками. А потом начинается ад и появляются хорошие и плохие практики. Пространства имён (namespace) в принципе появились потому, что программы стали очень большими, а количество красивых и удобных слов внезапно оказалось весьма и весьма ограниченным. Сливать целые namespace-ы считается плохой практикой потому, что вы можете получить целый ряд ошибок, которые будет крайне трудно опознать. Вот используете вы такой две библиотеки A и B. И пишете using namespace .
И тут вторая библиотека обновляется вот так, например.
4
|
447 / 315 / 62
Регистрация: 09.03.2016
Сообщений: 3,084
|
|
04.08.2022, 13:18 | 18 |
Да... Учебник это одно. Практика другое.
1
|
4857 / 2656 / 913
Регистрация: 29.11.2010
Сообщений: 5,732
|
|
04.08.2022, 13:47 | 19 |
Чуть аллегории для понимания.
Вот есть у вас электрическая машина без мотора. Двухфазная. И вы на неё мотор хотите поставить. Вам, допустим, подходит мотор Siemens 1LE1. Он, конечно, трёхфазный, но инженер-то разберётся, как подключить к двум фазам. И вот вы говорите инженеру. "Пааставить на электрическую машину мотор 1LE1!" И радостный уходите спать. А потом вам прилетает, мол "не соответсвует заявленным характеристикам". Вы, конечно, разбираться, и акааазывается, что дядюшка ляо тоже клепает мотор 1LE1. Но двухфазный! Оказывается, инженер прикинул к носу, что у дядюшки ляо двигло больше подоходит, так как двухфазное. Вот он его и влепил. А то, что вы имели в виду чет другое -- уже ваша проблема. Надо было неймспейс указывать.
1
|
42 / 10 / 9
Регистрация: 13.03.2015
Сообщений: 74
|
|
04.08.2022, 17:43 [ТС] | 20 |
Я сейчас использую Visual Studio. Но мне рекомендовали смотреть в сторону QT.
Я понял этот момент. Буду искать выходы из этой ситуации. Я думал уже об этом. И наверное это пока что лучший способ для меня. Есть определённая форма согласованая с регистром и отступать от этой формы я не могу. Буду брать образец с пустыми полями и вставляться нужные данные в подходящие ячейки. Да. У меня есть книга по С++ и несколько курсов для начала. Я уже пролистал книгу и наткнулся на ООП. Курс будет действительно увесистый, но потихоньку я его освою. Я не думаю что там что то будет сложнее указателей из Си (указатель на указатель на массив из указателей на значения типа int). Спасибо. Всё же ещё раз попробую. И действительно. Программа выросла и я наблюдаю что я двигаюсь в ту область где читаемость и поддержка кода становится всё трудней и трудней. Буду искать способы решения. Спасибо, ответ по существу. Мне стало гораздо понятней. Спасибо аллегорию я понял.
0
|
04.08.2022, 17:43 | |
04.08.2022, 17:43 | |
Помогаю со студенческими работами здесь
20
Подключение электродвигателя Расчет мощности электродвигателя Модель электродвигателя в SolidWorks Реверс электродвигателя с концевиками Трудности с тягой электродвигателя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |