Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/58: Рейтинг темы: голосов - 58, средняя оценка - 4.59
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32

Сказали некрасиво пишу

12.10.2013, 11:08. Показов 12668. Ответов 160
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
изучаю с++ почти 2 месяц , пишу програму она работает но препод говорит что иногда не красиво пишу ((( пишу так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class Time
{
private:
    int hour;
    int minute;
    int second;
    int tmp_sec;
    int tmp_min;
public:
    Time():hour(0),minute(0),second(0) 
    {}
    Time(int h , int m , int s):hour(h),minute(m),second(s)
    {}
    void Out_put()const
    {
        cout<<setw(3)<<" Time = "<<setw(3)<<hour<<" : "
            <<setw(3)<<minute<<" : "<<second<<endl;
    }
 
    Time sum_Time(Time);
};
 
Time Time::sum_Time(Time other_time)
   {
       Time tmp;
       tmp_sec = 60;
       tmp_min = 60;
 
       tmp.hour = hour + other_time.hour ;
 
       tmp.second = second + other_time.second ;
       tmp.minute = minute + other_time.minute ;
        
           if ( tmp.second >= 60 )
               {
                   tmp_sec *= tmp.second / 60 ;
                   tmp.minute += tmp_sec / 60 ;
                   tmp.second -= tmp_sec ;
               }
 
               if ( tmp.minute >= 60 )
                   {
                       tmp_min *= tmp.minute / 60 ;
                       tmp.hour += tmp_min / 60 ;
                       tmp.minute -= tmp_min ;
                   }
      return tmp;
   }
   
int main()
{
    Time first_Time(22,155,177);
    Time second_Time(12,39,89);
 
    first_Time.Out_put();
    second_Time.Out_put();
 
    cout<<endl<<endl<<" You Three = ";
    Time three_Time = first_Time.sum_Time(second_Time);
    three_Time.Out_put();
 
    cout<<endl<<endl;
 
    return 0;
}
не красиво потомучто не подписую что делает та или иная функция в коментариях ???
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2013, 11:08
Ответы с готовыми решениями:

RichTextBox курсор некрасиво мерцает
RichTextBox курсор некрасиво мерцает над выделенным текстом, как это исправить пробовал поставить курсор Arrow, он стал мерцать на всем...

При загрузке картинка некрасиво мигает
такая проблема при загружении картинки, картинка не красиво мигает ... что делать( сказали поможет св-во DoubleBuffered но как им...

Некрасиво отображаются шрифты при большом размере
Перепробовал кучу шрифтов, но у всех проблема при размере font-size: 6.5em;. Буквы неровные или лесенки. Как добиться ровных и гладких...

160
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
12.10.2013, 17:33
Студворк — интернет-сервис помощи студентам
Demelurg, именно. и тогда конструктор может выглядеть уже так:
C++
1
2
3
4
Time(int hour, int minute, int second)
{
     // тело конструктора
}
а то при вызове из кода конструктора параметры h m s - не очень информативно

и еще я не ставлю пробел перед запятой в параметрах функций/методов
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
12.10.2013, 17:36
Придираться конечно можно. Но в целом мне кажется норм.
К чему я бы придрался, если б имел например жуткое желание завалить:
про tmp_min, tmp_sec уже сказали
про именование private уже сказали (я бы только ставил _ в конце, а не в начале)
нет проверки на допустимость передаваемых в конструктор данных (иначе зачем знаковый тип?)
про смесь стилей в sum_Time уже сказали (в том числе это может быть константная функция-член, принимающая константную ссылку)
фигурные скобки я бы не сдвигал, так как такой стиль конечно есть и имеет право на существование, но очень мало кем используется.

private в данном случае я бы не стал переносить в конец. Публичный интерфейс это конечно хорошо, но иногда один взгляд на самые важные private-члены позволяет сразу очень многое узнать о классе.

Цитата Сообщение от kventin_zhuk Посмотреть сообщение
перед private-полями ставлю нижнее подчеркивание - удобно потом в конструктор параметры передавать
Чем удобно? По-моему вообще без разницы.
C++
1
Time(int hour, int minute, int second): hour(hour), minute(minute), second(second)
В стандарте такая запись вполне определена и всегда работает.
0
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32
12.10.2013, 17:38  [ТС]
про пробел ето уже кому как удобней , а на счет информативности и на счет подчеркивание - реально кульный совет спасиб.
0
 Аватар для dimakozyr
162 / 29 / 3
Регистрация: 17.08.2013
Сообщений: 560
12.10.2013, 17:39
Часто пишут, что, например, нужно писать в классе сначала public часть, а потом private.
Много таких вещей можно узнать из книги "Совершенный код" Макконнелла
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 17:40
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
перед private-полями ставлю нижнее подчеркивание - удобно потом в конструктор параметры передавать
Это не смущает?
Миниатюры
Сказали некрасиво пишу  
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 17:41
Цитата Сообщение от dimakozyr Посмотреть сообщение
Часто пишут, что, например, нужно писать в классе сначала public часть, а потом private.
Бессмысленно. Тогда уж заместо class писать struct и не писать вначале public:
0
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32
12.10.2013, 17:41  [ТС]
Цитата Сообщение от ct0r Посмотреть сообщение
нет проверки на допустимость передаваемых в конструктор данных (иначе зачем знаковый тип?)
извините не понял ? проверка какие дание ввожу ?
Цитата Сообщение от ct0r Посмотреть сообщение
фигурные скобки я бы не сдвигал, так как такой стиль конечно есть и имеет право на существование, но очень мало кем используется.
скобки которые после конструктора ?
0
 Аватар для dimakozyr
162 / 29 / 3
Регистрация: 17.08.2013
Сообщений: 560
12.10.2013, 17:42
Цитата Сообщение от castaway Посмотреть сообщение
Бессмысленно. Тогда уж заместо class писать struct и не писать вначале public:
Ну да, я так и делаю Но если класс, то это делается, чтобы сначала было видно по public методам, для чего класс нужен
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.10.2013, 17:43
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
И перед private-полями ставлю нижнее подчеркивание - удобно потом в конструктор параметры передавать
В C++ имена, начинающиеся с подчеркивания, зарезервированы.

C++03, 17.4.3.1.2 Global names
Certain sets of names and function signatures are always reserved to the implementation:

- Each name that contains a double underscore (_ _) or begins with an underscore followed by an upper-case letter (2.11) is reserved to the implementation for any use.

- Each name that begins with an underscore is reserved to the implementation for use as a name in the
global namespace.
0
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32
12.10.2013, 17:43  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Это не смущает?
а вот етого я не знал н тоесть знал что есть зарезирвирование имена но про подчеркивание не знал.
0
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
12.10.2013, 17:44
alsav22, это откуда вообще?) Всегда так делал - и неоднократно видел как делают другие. Это же все сугубо в моем классе.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.10.2013, 17:47
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
alsav22, это откуда вообще?)
29 пост.
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
Всегда так делал - и неоднократно видел как делают другие.
Делать, вообще, всё можно. Тут тема другая.
0
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
12.10.2013, 17:54
ct0r, это если использовать список инициализации. А вот если теле конструктора обращаться и к тому и к другому? this будет нужно использовать.

Добавлено через 6 минут
Убежденный, Ну первое понятно - а второе: зарезервированы для использования в качестве имени в глобальном пространстве имен. Не тот случай же.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
12.10.2013, 17:55
Цитата Сообщение от Demelurg Посмотреть сообщение
извините не понял ? проверка какие дание ввожу ?
скобки которые после конструктора ?
Если я передам в конструктор отрицательные числа, то что будет?
Да, и которые после if.

castaway
Я бы все-таки идеологически немного различал структуру и класс. Обычно пишу структуру, когда на первом месте - доступ и модификация данных, а класс - когда действия над ними.

kventin_zhuk
Ну это уже само собой. Я думал, что ты только про список инициализации говоришь.
1
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32
12.10.2013, 17:57  [ТС]
извините ребят я уже заплутался , спасиб много полезного узнал , иду дальше учить есле что то вас ищо потревожу .
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 17:59
Цитата Сообщение от ct0r Посмотреть сообщение
Я бы все-таки идеологически немного различал структуру и класс.
А что их различать? У них разница только в public: и private: по-умолчанию. Если хочешь больше писанины то следуй своему варианту, я не против.
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
12.10.2013, 18:00
Как на мой вкус, то переменные убого названы. Есть camelCase aka "верблюжья нотация", есть under_score - принципиальные схемы именования. Почитай про венгерскую нотацию. У тебя же какой-то средний вариант, смотрится не очень. Конечно, кажется мелочью, но на самом деле в будущем, на реальной работе, могут потребовать (корпоративный стиль).

Второе, что не понравилось - тот факт, что какая-то часть методов класса реализована при его объявлении, а метод sum_Time вынесен. Я бы вынес объявление класса в .h-файл, его реализацию в .cpp-файл, и точку входа main - в свой файл. Это традиционный подход, но даже если ты его не захочешь придерживаться, то хотя бы в своем коде должно быть какое-то однообразие. Выносишь методы - выноси все, реализуешь их при объявлении - реализуй все.

И не брезгуй пробелами и адекватным форматированием (вон на 34 и 41 строках if-ы на разном уровне), для этого есть Ctrl + K, Ctrl + F в Visual Studio, например.

Так что в целом соглашусь с преподавателем - неэстетичный код.
1
0 / 0 / 1
Регистрация: 12.10.2013
Сообщений: 32
12.10.2013, 18:02  [ТС]
а Лафоре говорит что структура ток для даных а клас для даных + методы(функции).и по ООП лутше использовать класы чем структуры или я не прав ?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 18:03
Цитата Сообщение от Demelurg Посмотреть сообщение
а Лафоре говорит что структура ток для даных а клас для даных + методы(функции).и по ООП лутше использовать класы чем структуры или я не прав ?
Или. Вместе с Лафоре.
0
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
12.10.2013, 18:05
Demelurg, В плюсах стркутура считай тот же класс. Но вот в си - обычные) создатели плюсов оставили зарезервированное слово для совместимости и расширили их возможности
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2013, 18:05
Помогаю со студенческими работами здесь

LaTeX - Как настроить стиль вывода формул? Формулы выводятся некрасиво
Здравствуйте. Меня мучает одна проблема - когда я компилирую .tex файлы при помощи LaTeX, то формулы у меня выводятся очень некрасиво:...

.NET сказали нет?
Сходил на it-выставку bitbyte. Спрашивал, нужны ли кому-нибудь .NET стажеры. Ни одному работодателю не нужны. Зато есть варианты Junior C++...

Сказали сделать такое
Ребят, если что - простите, может не туда тему написал, скажите куда писать. Вообщем мне нужна абсолютно безразницы чем создана программа,...

Each() устарела, а чем заменить не сказали
сабж

phpBB На работе мне сказали сделать таблицу
Необходимо выполнить анализ предметных результатов (см. рис. А), в столбце &quot;общий балл&quot; вывести сумму набранных баллов, в столбце...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru