Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 8
1

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами

10.03.2013, 02:27. Просмотров 2101. Ответов 3
Метки нет (Все метки)

Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как нужно построить эти классы, чтобы получилась грамотная иерархия? Как вообще должен выглядеть класс связей между таблицами? Я долго билась над этим, но пока получился только трехмерный динамический массив. Вот код, я его забросила, очевидно, что это бред сивой кобылы. Будьте добры, направьте в правильное русло, я сама додуматься не могу... Если не сложно, напишите хотя-бы примерный код, а то мне совсем не понятно, что от меня требуется при создании этих классов. Заранее благодарю.
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
#include "stdafx.h"
#include "Lab3.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
class table //класс таблица
{
    char* tab; // таблица представляет собой трехмерный массив. Это необходимо 
    int N, M;          //т.к. сам скелет таблицы есть двумерный массив, но нужно чтобы
               // еще и кажда ячейка была массивом
public:
    
    void new_tab() // здесь создаем этот массив и шапку для таблицы
    {
        
        cout << "Введите количество строк и столбцов для таблицы" << endl;
        cin >> N >> M;
        char*** tab = new char **[N];
        for ( int i = 0; i < N; i++)
        {
            tab[i] = new char *[M];
        }
        for ( int i = 0; i < N; i++)
        {
            for ( int j = 0; j < M; j++)
            tab[i][j] = new char [10];
        }
        for ( int i = 0; i < M; i++)
            cin >> tab[0][i];
        for ( int i = 0; i < M; i++)
            cout << tab[0][i] << "  " ;
    };
    
    void fill() // не закончено
    {
        
    };
};
void main(void)
{
    system(" chcp 1251 > nul");
    table bd[100];
    bd[1].new_tab();
    system(" PAUSE");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2013, 02:27
Ответы с готовыми решениями:

Отдельно класс данных, класс формул и главный класс
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { ...

Разбить на отдельный класс main, класс с шифрованием и дешифрованием (таблица двойной перестановки )
= &quot;&quot;; for(int i =0; i &lt; rowSize; i++) { for(int j = i; j &lt;...

Класс: Разработать абстрактный класс класс Point для задания координаты...
Всем привет, помогите пожалуйста решить задачу, я уже всю голову сломал, не знаю как решить... ...

3
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
10.03.2013, 04:49 2
Вам в https://www.cyberforum.ru/cpp-beginners/
0
284 / 90 / 15
Регистрация: 29.06.2019
Сообщений: 843
23.05.2020, 05:34 3
Цитата Сообщение от Anett Посмотреть сообщение
Как вообще должен выглядеть класс связей между таблицами
связь - это Primary Key одной таблицы и Foreign Key другой таблицы, у связи есть тип, что ли, "один-к-одному","один-ко-многим","многие-ко-многим"... последний в итоге придётся нормализовывать до "многие-к-одному" и "один-ко-многим"... наверно, в этом классе вам больше ничего не пригодится...
Цитата Сообщение от Anett Посмотреть сообщение
Класс таблиц баз данных и класс записей в таблице(реляционная таблица)
записи - объекты одного класса,
таблица - агрегатный класс записей, в этом же классе можете и определить PK & FK для таблицы (т.е. для Отношения - выражаясь терминологией РБД)... и по сути 3-й класс вам вообще не нужен, т.к. PK & FK уже определены в классе таблица... смысла выделять их в дочерний класс - не вижу вообще...
имхо
(я бы делала так)
p.s.
тип связи нужен или не нужен - я бы ещё подумала... тут не знаю, стоит ли вводить в класс поле с такой инфо... или логически и так до такой инфо можно докодиться?.. - только не знаю, как и надо ли?
0
284 / 90 / 15
Регистрация: 29.06.2019
Сообщений: 843
25.05.2020, 12:31 4
Цитата Сообщение от JeyCi Посмотреть сообщение
связь - это Primary Key одной таблицы и Foreign Key другой таблицы,
всё-таки внесу уточнение:
PK - это, правильнее сказать, "идентификатор сущности"
сам FK - в ER-терминах и определяет связь (с PK др таблицы)...
Цитата Сообщение от Anett Посмотреть сообщение
Как вообще должен выглядеть класс связей между таблицами?
если оно вам надо отдельным классом, а не в рамках класса "сущности"... то так и вводите в конструктор - таблицу (от родителя можно пронаследовать) и названия полей PK и FK (virtual у родителя и переопределить у дочернего класса)... иные свойства и методы этого класса уже на ваше усмотрение по необходимости... даже не знаю, нужно ли что-то ещё... по-моему даже без доп. свойств и методов класс самодостаточен...- чтобы можно было между его объектами (или родителями объектов - если всё-таки будете выделять pk и fk в отдельный класс) устанавливать связи... имхо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2020, 12:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр...

Перегрузил операцию преобразования типов данных (класс -> класс) но выскакивает ошибка компиляции
Здравствуйте, учил перегрузку операции преобразования типов данных, пробую объект SecondClass...

Используя наследование, создать класс для обработки баз данных двух типов
Есть задание по полиморфизму: Используя свойство наследования создать класс для обработки баз...

Создать класс данных Person и класс отображения данных
Здравствуйте . Есть такое задание: Создать класс данных &lt;Data1&gt; и класс отображения данных -...

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

3 класса. Родительский класс - класс животных. Два класса наследника: Гиппопотамы и Зебры. Выбор структуры данных
Добрый День. Есть задача. Есть 3 класса. Родительский класс - это класс животных. Он абстрактный и...


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

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

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