|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Прошу оценить стиль программы14.02.2019, 17:16. Показов 4906. Ответов 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
|
||||||
| 14.02.2019, 21:39 [ТС] | ||||||
|
_stanislav, а точно. Насчет istream'а согласен. А вот насчет
З.Ы. Посмотри, пожалуйста параметры создания объектов ofstream и ifstream. Я вот сколько после прочтения ряда топиков и учебника по С++ пришел к выводу, что методы класса ios желательно всегда указывать, в частности, всегда производить запись и чтение задавая формат ios::binary...
0
|
||||||
|
"C with Classes"
|
||||||||
| 15.02.2019, 11:31 | ||||||||
1
|
||||||||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
| 15.02.2019, 11:36 [ТС] | |
|
_stanislav, отлично! Все получилось. Но осталась проблемка, которая была и с прошлым вариантом. Создание какого-то объекта при чтении .bin. Последний объект имеет поля cost и count, причем такие же как у предыдущего объекта, а остальные поля пустые...?
Посмотрел функции read и write свои...вроде все правильно написано...
0
|
|
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
| 15.02.2019, 11:39 [ТС] | |
|
Смысл такой, что я при открытии программы сразу считываю в пустой вектор .bin (сделано для того, чтоб не заполнять каждый раз вектор, а работать с уже сохраненными объектами путем его записи и последующего чтения).
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
| 15.02.2019, 11:40 | ||||||
|
2
|
||||||
|
"C with Classes"
|
|
| 15.02.2019, 11:49 | |
|
Руслан92, ты почитай про стандартный ввод вывод, как работают какие операции все станет ясно, я конкретно не помню как там все, а смотреть документацию что бы тебе объяснять не хочу, ты уж извини.
1
|
|
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|
| 15.02.2019, 11:49 [ТС] | |
|
Azazel-San, скажите тогда свои рекомендации или замечания по коду, если не сложно. Расскажите, что нужно изменить, чтоб привить себе правильный стиль написания программ. Может моветон пользоваться какими-то оборотами или функциями?...
0
|
|
|
"C with Classes"
|
||
| 15.02.2019, 11:51 | ||
должно быть просто и понятно. отталкивайся от этого при кодировании, и все будет у тебя, тут тебе накидать могут все что угодно, у каждого свой стиль, так что не парься.
1
|
||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|||||||
| 15.02.2019, 11:56 [ТС] | |||||||
|
_stanislav, все решилось. Странно, но имея даже одну пустую строку в .bin после последнего данного об объекте, он так вот считывал последние данные в вектор. Исправил вот так:
0
|
|||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 15.02.2019, 11:57 | |
|
Руслан92, если вы новичек все у вас нормально +/- по классам, на парьтесь над названием классов, это все не имеет значения, придете на проект и вам дадут стиль форматирования кода и от проекта к проекту он будет менятся)
По поповоду логики программы (корректности работы) справшивайте, помогут подправить. Уберите отовсюду using namespace std; - и забудьте о этом. Далее что-то большее описывать не вижу смысла, вам придется тогда переписать половину проекта
1
|
|
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
||
| 15.02.2019, 12:17 [ТС] | ||
|
Azazel-San, если уж позволили поспрашивать то давайте. Вопросы есть:
1) Нужно ли реально такое разбиение на .сpp файлы и нужно ли каждому из них отдельный заголовочный файл? 2) Почему при подключении pch.h, в котором я в принципе указал все нужные библиотеки для работы программы, мне все-таки в каждом .cpp нужно указывать дополнительно подключаемые библиотеки? 3) Разве я не могу using namespace std; внутри .cpp файла писать. Это вроде (по крайней мере как я читал) хреново только если ты указываешь эту строку в .h? 4) в вектор все-таки помещается копия объекта или объект? Если копия, то где оригиналы хранятся? Хотелось бы, конечно, без копий работать, и вроде как emplace_back(), в отличие от push_back() это и должен делать, но у меня почему то не делает...Узнал об этом через контрольные cout'ы в конструкторе копии и обычном. 5) Меню меня слегка смущает, точнее его работа с draw() и его реализация перемещения по меню при помощи key1, key2, key3. 6) С классом проблем не вижу... о каких +\- Вы написали? Функции int* get_cost() и int* get_count() я переписал, выше написано почему я был вынужден так делать и как мне помогли это решить. Чего еще не хватает в классе? Или сама форма его оставляет желать лучшего? 7) Ну и вопрос про ios::binary и ios::in и ios::out - насколько они вообще нужны? И что сильно поменяется если их не станет. Сколько не читал литературы и топиков, единственное что понял, что ios::binary записывает и считывает все, включая символы табуляции. Только в этом его прелесть или есть какой-то важный момент, который я не знаю или не догоняю? Добавлено через 1 минуту
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||||
| 15.02.2019, 12:36 | ||||||||
.cpp желателен.pch.h - это предкомпилированный заголовок созданный VS, выкиньте его он вам не нужен, у вас в проекте нету +100500 файлов и разницы в скорости сборки вы не увидите.emplace_back - конструирует объект на месте, те он не создает временный объект, а потом его копирует или перемещает. В остальном разницы нету. Оригиналы нигде не хранятся.
1
|
||||||||
|
Just Do It!
|
||
| 15.02.2019, 12:37 | ||
|
название файла Pet.h а класс сPet когда понадобится объект этого класса, то можно не париться с новым названием: сPet Pet(...); Более того я могу взглядом ток на этот один идентификатор сразу сказать, что это передо мною: класс или объект. Мне не надо дополнительно рыскать по коду. но смысл моей заметки был совсем в другом! в более важной вещи, чем просто стиль, слишком много буков и вы не ухватили главное? но, с верою в идешный интеллисес вы можете писать и в машинных кодах, никто вам не запретить не сможет, раумеется, пока вас не взяли в продакшён))
1
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||
| 15.02.2019, 12:43 | |||
|
Добавлено через 2 минуты сPet Pet(...); ![]() Добавлено через 2 минуты XLAT, Или вы в блокноте пишите у вас классы не подсвечиваются? Ваш стиль пережиток прошлого, такое именование юзали в COM технологии, перед классом ставили префикс 'c', а "интерфейсом" 'i'.. В итоге получалась все таже угорская аннотация, о ее недостатках можете погуглить.
2
|
|||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
||||
| 15.02.2019, 12:44 [ТС] | ||||
|
Просто может вообще уже функция отдельная существует а я и не знаю. За с++11 и с++14 еще не садился. И кстати, сильно ли нужно современному программисту с++ знать новый функционал 11 и 14?
0
|
||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||
| 15.02.2019, 12:47 | ||||
![]()
1
|
||||
|
45 / 0 / 0
Регистрация: 10.04.2016
Сообщений: 114
|
|||
| 15.02.2019, 12:48 [ТС] | |||
|
Теперь появилась еще новая задача после того, как сюда выложил. Сделать из класса Зоомагазин объект Зоомагазин, чтоб можно было его в дальнейшем использовать например от XLAT
0
|
|||
| 15.02.2019, 12:48 | |
|
0
|
|
|
Just Do It!
|
||
| 15.02.2019, 12:49 | ||
|
как жертве хейтерских статей про венгерскую нотацию)) слепая вера в всесильный интеллисенс тож до добра не доведет)) как говорят, на год надейся, а поливать не забывай...
2
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 15.02.2019, 12:50 | |
|
XLAT, впрочем вы можете писать как хотите вконце концов на вкус и цвет.. На проекте вам всеравно дадут другой стиль, которому будете следовать, а для "домашних" проектов это не так критично я думаю, но все это дела вкуса и ваших усмотрений я бы не стал насаживать свой стиль кому-то, это тема холиваров
2
|
|
| 15.02.2019, 12:50 | |
|
Прошу оценить Прошу оценить Прошу оценить пк Прошу оценить Прошу оценить пк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|