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

Проектирование таблиц с данными - C++

Восстановить пароль Регистрация
 
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
25.05.2013, 13:27     Проектирование таблиц с данными #1
В лабораторной сказано что нужно создать таблицу в которой будут столбцы "имя студента", "номер группы", "экзамены". столбец экзамен делится ещё на столбы 1..n - количество предметов. каждый столбец такой состоит из названия "предмета" и "оценки" за него. Важное условие, у студентов разных группы могут быть различные экзамены, у студентов одинаковых групп только одинаковые.
Проблема
Я не могу придумать взаимодействие и иерархию классов нормальную. Помогите пожалуйста.

Мои старания
Я на данный момент придумал такую иерархию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Exams{
 
string subject;
int mark; //
 
}
 
class Student{
    string studentFio;
    List<Exams> exams;
}
 
class Group{
 
List<Student> students;  //список студентов группы
string numberGroup; //номер группы
List<Exams> exams;  //список экзаменов для каждой группы
}
каждая группа содержит студентов список, номер группы и список экзаменов которые студенты этой группы должны здавать. Так как нужно чтобы у каждого студента был массив оценок за каждый экзамен, я решил в поля класса Student, так же добавить список экзаменов. Вот это мне конечно не нравиться, что в группе и в студенте дублируется одно и тоже, но больше не придумал ничего нормального пока. Собственно поэтому и обратился за помощью.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
25.05.2013, 23:40     Проектирование таблиц с данными #2
Приведите к третьей нормальной форме и воспользуйтесь паттерном Data Access Object.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
26.05.2013, 00:02     Проектирование таблиц с данными #3
Цитата Сообщение от MechanicPaul Посмотреть сообщение
Вот это мне конечно не нравиться, что в группе и в студенте дублируется одно и тоже, но больше не придумал ничего нормального пока.
Да нормально. Для студентов экзамены с оценками за экзамены, а для группы у тебя просто экзамены. Не парся по этому поводу. Тут просто в этих классах нету никакого взаимодействия это просто можно сказать классы структуры. Ну явно не классы а структуры это Exams и Student.
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
26.05.2013, 00:11  [ТС]     Проектирование таблиц с данными #4
Цитата Сообщение от lemegeton Посмотреть сообщение
Приведите к третьей нормальной форме
Это вы о чём?
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
26.05.2013, 00:50     Проектирование таблиц с данными #5
Концепция проектирования реляционных баз данных. Нормальная форма.
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
26.05.2013, 01:07  [ТС]     Проектирование таблиц с данными #6
Цитата Сообщение от lemegeton Посмотреть сообщение
Концепция проектирования реляционных баз данных. Нормальная форма.
Не, я не буду с БД работать, мне достаточно на экран вывести отделяя границы символами или через какую-то компоненту типа JTable например на Java...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2013, 09:50     Проектирование таблиц с данными
Еще ссылки по теме:

Проектирование класса C++
C++ А.Александреску - Современное проектирование на C++
Проектирование классов C++

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

Или воспользуйтесь поиском по форуму:
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
26.05.2013, 09:50     Проектирование таблиц с данными #7
Цитата Сообщение от MechanicPaul Посмотреть сообщение
Не, я не буду с БД работать
Вы уже с БД работаете. Не путайте БД с реализацией популярных СУБД.

БД -- это общая концепция, массив с возможностью поиска -- уже БД.
Популярная СУБД -- обычно довольно сложное приложение или модуль, позволяющий работать с определенными типами довольно сложных БД.

Если вы хотите сделать гибкую структу для работы с данными, то не парьтесь -- уже все придумано, осталось только применить.
Yandex
Объявления
26.05.2013, 09:50     Проектирование таблиц с данными
Ответ Создать тему
Опции темы

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