Форум программистов, компьютерный форум CyberForum.ru

Вопрос о разумном использовании структур\перечислений\объединений - C++

Восстановить пароль Регистрация
 
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 20:15     Вопрос о разумном использовании структур\перечислений\объединений #1
Доброго времени суток, Форумчане!
Цель работы - написание что-то типа базы данных. Допустим я захотел сделать базу видео.. и вот, интересует помощь в плане обьяснений, где разумнее использовать структуру , где обьединение, где перечисление..

Мой план таков:

Делаю общую структуру, в ней:
-имя
-год
-обьединение с выбором (фильм\мультфильм\видеоролик)
Обьединение включает в себя структуры:
-фильм
-мультик
-другое видео

И просто эти структуры забить полями..
Фильм:
-автор
-жанр (перечисления)
-длительность
-оценка (перечисления)
-страна

мультик
-автор
-жанр (перечисления)
-длительность
-оценка (перечисления)
-страна

Видео:
-дата создания (перечисления)(1-31)
-месяц (перечисления)
-страна

логично ли всё будет так делать, или же где-то будет правильнее использовать иначе .. !? Надеюсь не сильно растянул и суть вопроса ясна спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 20:15     Вопрос о разумном использовании структур\перечислений\объединений
Посмотрите здесь:

применение указателей, структур и объединений C++
C++ Программирование структур и объединений в С++
Научиться работать с векторными данными языка «С»: структурами и объединениями. Изучить правила объявления структур и объединений, обращение к их полям, построение вложенных векторных типов данных. C++
Написать программу работы с массивом объединений C++
Начальное значение для переменных-перечислений C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.02.2012, 21:20     Вопрос о разумном использовании структур\перечислений\объединений #2
Eugen-S, на С++ принципиально делать не хотите? Здесь как-раз проще будет с классами, наследованием, etc... А так - из далека похоже. Начните делать - будет видно, что получится...
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 21:21  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #3
нет, я студент, 1й курс, пока вот, до чего доучился, то нужно и использовать... )
так, идея вцелом правильна? относительно использования?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 21:28     Вопрос о разумном использовании структур\перечислений\объединений #4
Видно же, что различие заключается только в типе и отсутствии жанра для "видео", остальные поля на деле совпадают. Нет никакого смысла в разной структуре данных. Ну и мотивация использования для месяца и, особенно, дня перечисления не ясна.
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 22:26  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #5
окей, тогда обьясни вот.. на примере где было бы логично использовать перечисления..
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 22:30     Вопрос о разумном использовании структур\перечислений\объединений #6
В списках состояний/типов. Причём только если они используются внутри кода, ибо пользователю всё равно не видно.
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 22:33  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #7
не совсем понял.. т.е. вот допустим как бы в моем задании - нет места для разумного использования перечислений, так?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 22:46     Вопрос о разумном использовании структур\перечислений\объединений #8
Тип видео и жанр имеет смысл ими задать, если от их вариантов зависит поведение кода.
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 22:51  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #9
тип видео , в плане "ави, мов, мп4" , подобное? и жанр, забить "комедия, драма" ,да?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 22:57     Вопрос о разумном использовании структур\перечислений\объединений #10
В плане "мультик"/"фильм"(если ты одумаешься и сделаешь единый тип данных на всё). Но ещё раз: если ты не собираешься каким-либо образом использовать эти типы в коде, смысла в этом мало, перечисления нужны только для удобства его чтения.
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 23:01  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #11
а может быть перечисление обьединений?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 23:09     Вопрос о разумном использовании структур\перечислений\объединений #12
Перечисление — в общем-то синтаксический сахар над дефайном, поэтому
Цитата Сообщение от Eugen-S Посмотреть сообщение
перечисление обьединений
это какая-то ересь.
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
19.02.2012, 23:13  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #13
т.е. по сути, перечисления мне тут не нужны? вот если вобщем так..
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
19.02.2012, 23:26     Вопрос о разумном использовании структур\перечислений\объединений #14
Да. Они нужны, если в программе начинают появляться некие "магические числа", например, если бы у тебя была разная обработка для мультиков и фильмов, можно было бы написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum
{
    FILM,
    ANIMATION
}
 
...
 
switch(item.type)
{
    case FIML://вместо case 0:
        ...
    case ANIMATION://вместо case 1:
        ...
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2012, 00:20     Вопрос о разумном использовании структур\перечислений\объединений
Еще ссылки по теме:

C++ Обход ограниечения перечислений
Объявить объединение из двух структур и структуру из двух объединений C++
C++ Программирование с использованием перечислений, структур, объединений и полей бит

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

Или воспользуйтесь поиском по форуму:
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
20.02.2012, 00:20  [ТС]     Вопрос о разумном использовании структур\перечислений\объединений #15
вроде чуток разобрался.. спасибо! вот как бы ты делаешь перечисление, а потом в case , в зависимости от выбора уже дальше идет обращение к чему-то, допустим я могу данные о фильмах сделать в структуру, данные о мультиках - в другую,отличную структуру.. и обращаться к струтурам этим, так?) а для экономии памяти обьединить эти две структуры под обьединением.. правильно?

Добавлено через 43 минуты
Вобщем переделал, теперь такова схема:

Общая структура, в ней:

-Имя
-Год
-Страна
-перечисление (фильм\мультик\видео) в зависимости от выбора, обьединение структур:

для фильма:
-жанр (перечисление)
-режисер
-бюджет

для мультика:
-студия в которой выпустили

для видео:
-день
-месяц
-доступ (всем\лицам после 18)

нормально если так? разумное распределение?
Yandex
Объявления
20.02.2012, 00:20     Вопрос о разумном использовании структур\перечислений\объединений
Ответ Создать тему
Опции темы

Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru