|
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 14
|
|||||||||||||||||
Нужно оптимизировать готовый код, чтобы не было стыдно показать19.09.2012, 01:28. Показов 2277. Ответов 9
Метки нет (Все метки)
Мне дали сделать задачку, чтобы проверить мои знания в ООП (я только 2 месяца назад начал изучать С++).
И так, задача:
и подсказать, где можно уменьшить код, где что поменять, чтобы программа выгладила красиво. И мне нужно добавить больше ООП.собственно исходный код ниже: Заголовочный файл "shopping_list.h"
0
|
|||||||||||||||||
| 19.09.2012, 01:28 | |
|
Ответы с готовыми решениями:
9
Что нужно добавить чтобы так можно было писать код?
|
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|||||||||||
| 19.09.2012, 07:39 | |||||||||||
|
- почему класс называется "список" если это фактически одна единственная запись?
- необычно, что цена константное статическое поле. я понимаю, что цена в пределах месяца постоянная, но может в другом месяце она будет другая? - в конструкторе использовать списки инициализации
?- в функции вычисления цены можно убрать скобки - приоритеты не дадут выражению вычисляться иначе - в функции оперирующие с массивом нужно передавать его размер - указание волшебного числа 15 внутри - это плохо - блок ожидания в конце программы можно заменить на system("pause") - во всяком случае если вы работаете под Windows и нажатие клавиши для выхода из программы не считается вводом... функция exitTime в любом случае тяжелая. там должно было быть Sleep, но я подозреваю, что она была сделана так как сделана, что бы быть переносимой на другие платформы. цикл в этой функции будет грузить систему. - для хранения списка можно использовать не только массив. например, std::list. - для сортировки списка можно использовать библиотечную функцию qsort. или, если список хранить в std::list определить свою функцию sort - сделать имена единообразными - они то с большой буквы начинаются, то с малой. некоторые имена набраны большими - обычно это делают для макроопределений. - осмыслить для себя, что означает имя каждой функции. например, sortingShList - я так понимаю сортированный список, то есть имя формируется по наименованию результата. однако в то же время имеем функцию ShowDays - имя сформировано по производимому действию. - зачем ShowDays вызывается два раза? - если используется std::endl, то как правило не используется \n = а так вообще нормально. Добавлено через 10 минут ...больше ООП будет только наверное если вместо массива сунуть std::list и переопределить для него sort.
1
|
|||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 19.09.2012, 08:59 | ||
0
|
||
|
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
|
|
| 19.09.2012, 09:03 | |
|
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 19.09.2012, 09:04 | |
|
defer, Дык выше на пост же есть + http://en.cppreference.com/w/c... /list/sort
0
|
|
| 19.09.2012, 09:24 | |
|
Не по теме: ForEveR, да, не так выразился, имелось ввиду определение cmp
0
|
|
|
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 14
|
|
| 19.09.2012, 10:21 [ТС] | |
|
vxd, спасибо, за такой большой ответ
но ты задание не внимательно прочел.на счет имен, передачи размера массива и тп - я учел, изменил в коде. а на счет list(), я пока этого не изучил. Ты мог бы отправить меня где обьясняется для чайников, что это и с чем его едят дай ссылочку. А то я нашел пару ресурсов, но пока самому разобраться без примеров не могу.http://ru.cppreference.com/w/cpp/container/list http://www.rsdn.ru/forum/src/2261478.1 Можно пример на моем коде привести с использованием list?
0
|
|
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
||||||||||||||||
| 19.09.2012, 13:20 | ||||||||||||||||
|
пример для main
"изучал" по этому http://mirknig.com/2007/10/01/... mista.html (качать по ссылке на депозитфайл)
0
|
||||||||||||||||
|
|
||
| 19.09.2012, 13:30 | ||
|
Добавлено через 1 минуту Упс, увидел посты 4,5 ну да именно, а для хранения покупок vector
0
|
||
|
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 14
|
|
| 19.09.2012, 18:18 [ТС] | |
|
Друзья, всем спасибо
![]() Узнал, что такое list() И за справочник отдельное спасибо vxg
0
|
|
| 19.09.2012, 18:18 | |
|
Помогаю со студенческими работами здесь
10
Что нужно сделать, чтобы данную функцию можно было вызвать еще раз, не меняя ее код Как оптимизировать ListviewAdapter чтобы не было разрывов при скроллинге Нужно разобраться, не знаю с чего начать и как грамотно составить.Нужно,чтобы было ветвление
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|