C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Призыв о помощи. Help.
maikl
Отправлено: 03.11.2003, 10:52


Станционный диспетчер

Группа: Участник
Сообщений: 135



Кто нибудь помогите. Делаю курсовик, программу состаления расписания для своего учебного заведения для различных групп. Необходимо реализовать следующую задачу: имеются преподователи и список дисциплин которые они ведут, необходимо что бы при выборе преподователя из одной БД, выводился список дисциплин которые он ведет из другой, причем дисциплин которые он ведет может быть несколько. Для этого я так думаю эти БД нужно както увязать между собой. Если кто знает где можно скачать пример подобной задачи, вместе с исходниками(в целях ознакомления), прошу подсказать.
Георгий
Отправлено: 03.11.2003, 12:11


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



во многих учебниках по БД такую задачку решают в качестве иллюстрации текста книги.
Даже в книге "Визуальное моделирование с помошью Rational Rose 2002 и UML" Вильямс 2003 есть решение такой задачки.

smile.gif А курсовик на то и курсовик, чтобы чему то научиться smile.gif

Отредактировано Георгий — 03/11/2003, 13:14
maikl
Отправлено: 03.11.2003, 13:20


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (Георгий @ 03/11/2003, 13:13)
во многих учебниках по БД такую задачку решают в качестве иллюстрации текста книги.
Даже в книге "Визуальное моделирование с помошью Rational Rose 2002 и UML" Вильямс 2003 есть решение такой задачки.

smile.gif А курсовик на то и курсовик, чтобы чему то научиться smile.gif

Книг, таких где бы взять, я из Магадана, тут нормальных книг не наберешь, через знакомых пробивать надо. Есть книги но они так себе, у меня есть 2 но там ничего про это нормально не написано. Есть еще по FoxPro, но мне нужно узнать как это можно сделать в Buildere.
Георгий
Отправлено: 04.11.2003, 00:19


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Cbuilder — это в среда визуального проектирования пользовательского интерфейса, поэтому фраза "мне нужно узнать как это можно сделать в Buildere" несколько не корректна. В bcb можно сделать пользовательский интерфейс, а выполнять всю основную работу будет субд.

1. надо определиться какая СУБД будет использоваться. Предположим, что выбран Paradox (это не СУБД, а ошибка природы, но у меня других СУБД нет)
2. надо спроектировать структуры таблиц:
2.1 есть сущности преподаватель и курс
2.2 связи между преподавателем и курсом многие ко многим (один курс могут вести несколько преподавателей, да и преподавателю никто не мешает вести несколько курсов)
2.3 при разрешении связи многие ко многим возникает дополнительная таблица препод-курс
2.4 структура спроектирована smile.gif
3. проектирование пользовательского интерфейса
3.1 по постановке задачи надо иметь список преподавателей и лёгким движением руки узнать для конктерной фамилии, какие курсы он ведёт. Следовательно в одной части окна выводим список преподавателей, а в другой те курсы, которые он ведёт.
3.2 неплохобы предусмотреть возможность добавления курсов/преподов т.е. ещё 2 окошка ввода текста и 2 кнопки.
4. кодирование smile.gif)

иллюстрации:
к 2.1:
user posted image
к 2.2:
user posted image
к 2.3:
user posted image
програмка прилагается

Отредактировано Георгий — 04/11/2003, 01:32

User Attached Image Скачать файл
db.rar


maikl
Отправлено: 04.11.2003, 10:48


Станционный диспетчер

Группа: Участник
Сообщений: 135



QUOTE (Георгий @ 04/11/2003, 01:21)
програмка прилагается

Все спасибо. Я не знал как это именно реализовать в Paradoxe. Там у меня задача конечно более масштабная чем я описал, но все зациклено на связях этих БД. Все отлично, теперь думаю разберусь посмотрев тот пример который ты мне выложил, но проблема в том что при нажатии данной ссылки в Internet Explorer грузится пустая страница, а в Opere грузится страница с иероглифами. Не можешь подсказать в чем дело. Пробовал загрузить уже 3 раза.
Георгий
Отправлено: 04.11.2003, 23:31


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



хз
у меня нормально залилось обратно
попробуй отсюда
maikl
Отправлено: 05.11.2003, 15:13


Станционный диспетчер

Группа: Участник
Сообщений: 135



Все окей, нормально загрузил, теберь разбераться буду. Спасибо.
И еще если можно вопрос не по этой теме. В моей группе есть человек которому тоже нужно курсовик делать, но у него проблема по котрой я задавал сдесь уже вопрос, но ни кто на него не ответил. Необходимо в MainMenu тобразить поля БД, преподователь говорит что так можно сделать. Я хочу узнать можно ли действительно так сделать или нет.
Георгий
Отправлено: 05.11.2003, 21:48


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Нет ничего невозможного.

К сожалению тот вопрос был задан как просьба сделать за него всю его работу, поэтому никто и не ответил — просто не захотели.

И в тоже время это делается слишком просто:
пример который вываливает в TMemo названия всех полей таблицы TTable, а потом на основе строк TMemo формируется главное меню
CODE
TMenuItem * NewItem;
int i;
this->MainMenu1->Items->Clear();

//пишем названия полей в memo
for(i = 0; i < Table1->FieldCount; i++)
       this->Memo1->Lines->Add(Table1->Fields->Fields[i]->FieldName);

//строим меню на основе memo
for (i=0;i<this->Memo1->Lines->Count;i++)
       {
       NewItem=new TMenuItem(this->MainMenu1);
       NewItem->Caption=this->Memo1->Lines->Strings[i];
       this->MainMenu1->Items->Add(NewItem);
       };


проект можешь качать отсюда http://georgiestar.pisem.net/dynamicmenu.zip (он использует теже алиасы и таблицы, что и предыдущий)

Но этому раздолбаю, которому сложно посмотреть в хелпе, что же умеет делать компоненты TMainMenu и TTable, не показывай.
maikl
Отправлено: 08.11.2003, 11:05


Станционный диспетчер

Группа: Участник
Сообщений: 135



Спасибо тебе за ответы. На днях взял программу, делал один человк учащийся до меня кто то с прошлых курсов. Там частично реализована моя задача, там у него на форме в 3 DBGrida, в одном у него список преподователей(ФИО препода), в другом список преподаваемых дисциплин которые ведет данный преподователь, ну а в третьем список всех дисциплин которые ведут все эти преподы, для того что бы добавить дисциплину которую ведет данный преподаватель необходимо в третьем DBGriе указать нужную дисциплину и нажать на плюсик(добавление записи). Как ты думаешь лучше ли так реализовать мою задачу. Т.к я не так давно начал программировать в Buildere то мне не совсем понятно какими функциями можно воспользоваться, может подскажешь. Жаль только пример выложить не получилось т.к сильно большой, меньше 530 KB сжать не оплучилось.
Георгий
Отправлено: 08.11.2003, 15:33


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Делай как больше нравится — у того, что я сделал кривой пользовательский интерфейс, а в том варианте о котором ты говоришь — интуитивно понятный.
Но только не забывай — пользовательский интерфейс — это только пользовательский интерфейс, а ядро программы (у тебя это структура таблиц и связей между ними) обычно инвариантно относительно пользовательского интерфейса.

Функции — это компоненты TTable и т.п. Через их методы и свойства реализуется вся работа с БД.
maikl
Отправлено: 09.11.2003, 08:41


Станционный диспетчер

Группа: Участник
Сообщений: 135



Ок. Буду делать как больше мне понравится. Можешь хоть подсказать какую нибудь полезную литературу, ты ведь сам не с воздуха все берешь, читаешь что то. Можно и какие нибудь полезные материалы в сети для скачки(ничего не нашел интересного). Help прошу не предлагать и книгу "Программирование в C++ Builder 6.0 " А.Я Архангельского.
Георгий
Отправлено: 09.11.2003, 13:57


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



QUOTE (maikl @ 09/11/2003, 09:43)
Help прошу не предлагать и книгу "Программирование в C++ Builder 6.0 " А.Я Архангельского.

Это единственная книга по BCB которую я читал :))
Но только тогда она называлась C++ Builder 5.0 :)
А и инете я только FAQ по BCB читал :)

Отредактировано Георгий — 09/11/2003, 15:03
maikl
Отправлено: 09.11.2003, 15:08


Станционный диспетчер

Группа: Участник
Сообщений: 135



Книга хорошая, только жалко там мало информации по БД, я думаю для этой тематики следует создавать отдельную книгу, там просто введение в БД, основы, я все там прочитал, например как реализовывать связи один ко многим, там я не увидел(не знаю может плохо смотрел, еще раз просмотрю). Есть тогда какой нибудь FAQ ориентированный чисто на вопросы по Базам Данных, на все что я натыкался это были вопросы на разную тематику, по БД очень мало.
Георгий
Отправлено: 09.11.2003, 19:19


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Это тебе чтонибудь по теории реляционных баз данных нужно. Мне то это в институте читали на курсе "Реляционные БД", поэтому книжки не читал.
можешь кстати лекции посмотреть http://www.mephist.ru/index.php?lek3#bd
maikl
Отправлено: 10.11.2003, 09:48


Станционный диспетчер

Группа: Участник
Сообщений: 135



ОК. Скачал ваши лекции, не завидую я вам, сначало качаешь, потом почерк еще час разберай, у нас тоже такие же лекции преподают, почти один в один, ну ладно, думаю дальше своим ходом разберусь,
нашел книгу тут "Автоматизированные информационные системы, базы и банки данных ", не че так книжка все популярно объясняет.

Вернуться в Работа с базами данных в C++Builder