|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Прошу оценить стиль программы14.02.2019, 17:16. Показов 4667. Ответов 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
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||
| 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
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
|
| 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
|
||||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||||||||||||||
| 15.02.2019, 14:35 | ||||||||||||||
Сообщение было отмечено Руслан92 как решение
Решение
Тоже самое касается геттеров. Учитывая пример выше, ваш геттер - это тоже некоторым образом сеттер, т.к. предоставляет прямой доступ к внутреннему состоянию класса. Это является и нарушением инкапсуляции (любой неконтролируемым образом сможет измненить это состояние через указатель на данные, которые вернул геттер), так и примером смешения ролей, которое вы продемонстрировали в процитированном в начале сообщения коде.
Добавлено через 1 минуту
1
|
||||||||||||||
| 15.02.2019, 14:35 | |
|
Прошу оценить Прошу оценить Прошу оценить пк Прошу оценить Прошу оценить пк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|