Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.04.2010, 02:14
samuel2423 samuel2423 вне форума
Прохожий
 
Регистрация: 01.04.2010
Сообщения: 1
Репутация: 10
Печаль help! помогите сделать программу в delphi

Помогите пожалуйста!!! В программирование я еще совсем новичек поэтому прошу вас уважаемые программисты помочь кто чем может в реализации программы с графическим интерфейсом, которая реализует ввод
списка студенческой группы , а для каждого из введенных в список группы, реализует ввод одногруппников и показывает побывавших у
него в гостях. Она должна определять, есть ли люди, побывавшие у всех в
гостях.
Ответить с цитированием
  #2  
Старый 01.04.2010, 06:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тебе нужна БД. В принципе, можно обойтись, но с БД будет проще.
В БД будет 2 таблички. Первая [PEOPLE] - список группы, состоит из 2х полей: ID (идннтификатор, целое, автоинкремент) и Name (имя студента, строковое). Вторая табличка [GUEST_LOG] будет тоже из 2х полей. В ней будем хранить информацию о том, кто у кого побывал в гостях. Она тоже состоит из 2х полей: HOLDER_ID (целое, ссылка на студента-хозяина) и GUEST_ID (целое, ссылка на студента-гостя) /ссылки указывают на поле ID из первой таблицы/.

Теперь о том, как получить список студентов, побывавших в гостях у всех. Тут есть несколько методов решешения. Объясню наиболее понятный и простой.

Что значит в нашей архитектуре, что человек побывал у всех в гостях? Это значит, что во второй таблице для него как GUIST_ID будет N записей. При этом, N будет равно кол-ву студентов группы (т.е. кол-ву записей в первой табличке) минус 1 (сам у себя в гостях не побываешь).
Соотвсетсвенно, можно сделать такой запрос:
Код:
SELECT P.NAME, COUNT(P.ID) FROM PEOPLE P LEFT JOIN GUEST_LOG G ON P.ID = G.GUEST_ID
GROUP BY P.NAME
Получим список студентов с кол-вом гостевых визитов. А теперь осталось сравнить это кол-во с общим числом студентов и оствить список.

ЗЫ. Это можно сделать одним запросом, но для новичка будет слишком сложно.

ЗЗЫ. То же самое можно легко сделать и без БД, но писать придется больше.

ЗЗЗЫ. Хочешь готовую программу - велкам в раздел "Работа".
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025