|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Прошу оценить стиль программы14.02.2019, 17:16. Показов 4811. Ответов 73
Всем мира!
Ребят, в общем наваял я тут чудо-чудное, диво-дивное (мне так кажется )Прошу, чтоб посмотрели код, посоветовали, что можно исправить, что добавить, как короче можно написать, как логичней ну и т.д. В общем взглянуть на программу сторонними разбирающимися глазами ![]() ![]() ![]() Программа реализует Зоомагазин, который периодически на просторах киберфорума встречается. Присутствуют функции добавления, редактирования, удаления, отображения БД(если это можно так назвать (да простит меня Нео)...), а также записи всего этого добра в файл и чтение из него. Я не студент, это не моя курсовая, экзамен и т.д. Я не оказываю кому-либо медвежью или финансовую услугу. Я самоучка стремящийся к Зеленому Бегущему Свету Сначала я кину .h, затем .cpp Если нужно кину на почту .zip с проектом (среда VS 2017)! Спасибо! pch.h - основной заголовок.
main.cpp - Главная функция
Такая вот программка. Жду отзывов и критики!
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.02.2019, 17:16 | |
|
Ответы с готовыми решениями:
73
Прошу оценить код на C++
Калькулятор для начинающих, прошу оценить |
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
||
| 15.02.2019, 12:50 [ТС] | ||
|
Azazel-San
0
|
||
| 15.02.2019, 12:51 | |
|
0
|
|
|
"C with Classes"
|
|
| 15.02.2019, 12:52 | |
|
1
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||||
| 15.02.2019, 12:54 | ||||||||
|
Добавлено через 1 минуту
1
|
||||||||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
||
| 15.02.2019, 12:54 [ТС] | ||
|
Azazel-San
0
|
||
|
"C with Classes"
|
|
| 15.02.2019, 12:56 | |
|
нужно сваливать с темы, нервы дороже
![]()
1
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 15.02.2019, 12:57 | ||
|
Если хотите практики по ООП, ищите задачу где это можно красиво и просто применить, где нужны наследование, полиморфизм, абстракции, еще есть 5 принципов SOLID - это уже более к проектированию, воот.
1
|
||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
| 15.02.2019, 13:00 [ТС] | |
|
_stanislav , думаешь? Может ты и прав
Я просто хочу узнать концепцию и можно тему закрывать. Не хочу тратить время на, бессмысленные с точки зрения грамотного продакшна и профессионального кода, программки. Если уж что-то делать в жизни, то делать это хорошо и профессионально. Плохо - оно само получится. А для хорошо нужно усилия прикладывать. Я решил, что хочу быть программистом, а если решил, то хочу быть не просто абы каким программистом, а по-крайней мере, профессиональным, и главное, понимающим свое дело. По сути только для этого я сюда программу то и выложил)
0
|
|
|
"C with Classes"
|
||
| 15.02.2019, 13:05 | ||
grasp и gofДобавлено через 2 минуты и вообще как мне думается, инженерные принципы везде одни, в любой сфере.
1
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 15.02.2019, 13:08 | ||
|
Проблемы начнутся сразу же, как он поробует применить какой-то другой способ, например ввод с графической формы.
1
|
||
|
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
|
||||||
| 15.02.2019, 13:11 | ||||||
|
Руслан92, Я не буду советовать, просто опишу как вижу это я
![]() 1. Разделение на файлы нужно, я для каждого класса выделяю, обычно, отдельные файлы реализации и заголовка. Сегодня у вас там 3 строчки, а через неделю будет 300 ![]() 2. Я использую один заголовочный файл для всех библиотек, которые я буду использовать практически везде, а потом этот один файл инклудю где нужно 3. Конечно можно, просто в глобальной области не используйте 4. В вектор помещается копия, т.к. вы его так создали, если бы хранили указатели, то тогда в векторе были бы указатели А оригинал хранится в памяти, где вы выделили на него место методом new, я по всему коду не пробегал, но этот кусок сразу бросился в глаза, что у вас возможна утечка памяти.7. ifstream по умолчанию открывает на чтение, указывать ios::in не обязательно и т.д. Когда указывают binary, обычно это обозначает что будут работать с бинарными данными, а не текстом, допустим, если написать так:
1
|
||||||
|
"C with Classes"
|
|
| 15.02.2019, 13:21 | |
|
1
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 15.02.2019, 13:23 | |
|
1
|
|
|
Just Do It!
|
||
| 15.02.2019, 13:25 | ||
|
1. один класс --- один файл. 2. название хедера должно соответствовать названию класса. 3. название класса должно соответствовать сущности, которую класс описывает. это не я придумал, а все те же люди из того же продакшена. но если ваш стиль через "одно" место, но если вы его придерживаетесь, вы привыкаете и вас это может вполне устраивать, пока вы в проекте один.
3
|
||
|
"C with Classes"
|
||
| 15.02.2019, 13:32 | ||
![]() Добавлено через 1 минуту у меня объявления функций в .cpp а определения в .h, мне так удобно, но я ко всему быстро привыкаю.
2
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 15.02.2019, 13:37 | |
|
1
|
|
| 15.02.2019, 13:49 | |
|
0
|
|
| 15.02.2019, 14:00 | |
|
0
|
|
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
||||||||
| 15.02.2019, 14:05 [ТС] | ||||||||
|
Avaddon74
Добавлено через 1 минуту DrOffset
0
|
||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||||||||||
| 15.02.2019, 14:35 | ||||||||||||||
Сообщение было отмечено Руслан92 как решение
Решение
Тоже самое касается геттеров. Учитывая пример выше, ваш геттер - это тоже некоторым образом сеттер, т.к. предоставляет прямой доступ к внутреннему состоянию класса. Это является и нарушением инкапсуляции (любой неконтролируемым образом сможет измненить это состояние через указатель на данные, которые вернул геттер), так и примером смешения ролей, которое вы продемонстрировали в процитированном в начале сообщения коде.
Добавлено через 1 минуту
1
|
||||||||||||||
| 15.02.2019, 14:35 | |
|
Прошу оценить Прошу оценить Прошу оценить пк Прошу оценить Прошу оценить пк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|