С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
#1

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

25.05.2013, 13:27. Просмотров 439. Ответов 6
Метки нет (Все метки)

В лабораторной сказано что нужно создать таблицу в которой будут столбцы "имя студента", "номер группы", "экзамены". столбец экзамен делится ещё на столбы 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, так же добавить список экзаменов. Вот это мне конечно не нравиться, что в группе и в студенте дублируется одно и тоже, но больше не придумал ничего нормального пока. Собственно поэтому и обратился за помощью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2013, 13:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проектирование таблиц с данными (C++):

Создать два класса: PointXY с данными x, y (точка на плоскости в декартовых координатах) и PointPolar с данными r, phi (точка на плоскости в полярных - C++
Создать два класса: PointXY с данными x, y (точка на плоскости в декартовых координатах) и PointPolar с данными r, phi (точка на плоскости...

Проектирование программы - C++
Здравствуйте! Подскажите пожалуйста, какими средствами эффективнее проектировать и рекодить программу? Тема стала актуальна с...

Проектирование класса - C++
Доброго времени суток. Имеется класс Player, в нём — приватный объект типа Settings. Как наиболее лаконично обратиться извне к публичным...

курсовое проектирование на с++ - C++
21. В цехе находятся 8 станков. Каждый станок имеет свое время обработки заготовки и свое количество материала в кг., уходящего в отходы....

Проектирование ОО архитектуры - C++
Интересно мнение публики. &quot;Программирование в терминах интерфейсов&quot; Вопрос такой: как правильно конструировать едино-образный интерфейс? ...

Проектирование классов - C++
Доброго здравия жителям Земли. Вопрос таков: нужно ли в своём проекте жёстко скрывать реализацию классов, городить кучу интерфейсов как...

6
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
25.05.2013, 23:40 #2
Приведите к третьей нормальной форме и воспользуйтесь паттерном Data Access Object.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
26.05.2013, 00:02 #3
Цитата Сообщение от MechanicPaul Посмотреть сообщение
Вот это мне конечно не нравиться, что в группе и в студенте дублируется одно и тоже, но больше не придумал ничего нормального пока.
Да нормально. Для студентов экзамены с оценками за экзамены, а для группы у тебя просто экзамены. Не парся по этому поводу. Тут просто в этих классах нету никакого взаимодействия это просто можно сказать классы структуры. Ну явно не классы а структуры это Exams и Student.
0
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
26.05.2013, 00:11  [ТС] #4
Цитата Сообщение от lemegeton Посмотреть сообщение
Приведите к третьей нормальной форме
Это вы о чём?
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
26.05.2013, 00:50 #5
Концепция проектирования реляционных баз данных. Нормальная форма.
1
MechanicPaul
2 / 2 / 0
Регистрация: 25.05.2013
Сообщений: 157
26.05.2013, 01:07  [ТС] #6
Цитата Сообщение от lemegeton Посмотреть сообщение
Концепция проектирования реляционных баз данных. Нормальная форма.
Не, я не буду с БД работать, мне достаточно на экран вывести отделяя границы символами или через какую-то компоненту типа JTable например на Java...
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
26.05.2013, 09:50 #7
Цитата Сообщение от MechanicPaul Посмотреть сообщение
Не, я не буду с БД работать
Вы уже с БД работаете. Не путайте БД с реализацией популярных СУБД.

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

Если вы хотите сделать гибкую структу для работы с данными, то не парьтесь -- уже все придумано, осталось только применить.
1
26.05.2013, 09:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2013, 09:50
Привет! Вот еще темы с ответами:

Проектирование технологических установок - C++
Помогите решить задачу,вроде несложнач ,но не понимаю,что делать

Проектирование ООП программы - C++
Привет, начал писать большие программы, без планирования, в итоге , приходится переписывать по 100 раз, что посоветуете, как правильно...

Проектирование и реализация класса - C++
Кто знает как написать программу на тему микроволновая печь скажите плиз!!!! Микроволновая печь Свойства: • состояние (вкл. /...

А.Александреску - Современное проектирование на C++ - C++
Собственно вопрос не совсем по программированию :) Хочу купить бумажный вариант, но смущает, что она 2008 года и в шаблонах используется...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.