Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
1

Связанные списки

13.04.2015, 08:50. Показов 1296. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Помогите найти оптимального решения следующей задачи:
Необходимо создать три ComboBox, в первом, например будут все марки автомобилей, имеющихся в каком-нибудь гараже, в соответствии с выбранной маркой автомобиля во втором ComboBox должны отображаться номера автомобилей данной марки, в третьем, в зависимости от выбранной марки и номера, ещё какой-нибудь параметр, допустим, фамилия водителя, причём один и тот же водитель может быть закреплён за несколькими автомобилями (здесь можно просто многократно записывать одну и ту же фамилию). В процессе работы программы должна быть возможность перезакреплять водителей за автомобилями, принимать на работу новых и увольнять имеющихся, покупать и списывать автомобили, изменять их номера, т.е. связь и сами данные оперативно изменять без перезагрузки программы.
Можно всё это делать на основе как базы данных, так и без неё. Если использовать базу данных, то после списания автомобиля, удаления номера или увольнения водителя запись должна так же удаляться, т.е. размер базы данных уменьшаться.
Эта задача одной из школьных олимпиад.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2015, 08:50
Ответы с готовыми решениями:

Связанные списки
Раздобыл пример, собрал его в единое целое, а он отказывается работать. Есть база данных. и три...

Связанные списки
Здравствуйте! Не очень сложное задание, но так как я начинающий, запуталась немного... особенно с...

Связанные списки
Добрый день! Борюсь со связанными списками. Пытаюсь реализовать, как в этом примере...

Связанные списки
Program LinkedList; type pAuthor=^Author; Author=record ID: integer; ...

7
SatanaXIII
13.04.2015, 12:33
  #2
 Комментарий модератора 
shyub, ожидайте помощи в этой теме, раз вам нужен именно лазарус.
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
13.04.2015, 13:43 3
Цитата Сообщение от shyub Посмотреть сообщение
задача одной из школьных олимпиад
это надо часа за 4 сделать?

с одной стороны, все несложно. но нужно уметь работать с БД, либо придумать свою недо-БД в текстовом файле.
дальше каждое действие из перечисленных выстроить построчно и запрограммировать
здесь и построение запросов, и создание интерфейса, создание диалогов и т.д.

ваш объем знаний неизвестен
если нужно написать всё это за вас, так и говорите...
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
14.04.2015, 08:44 4
Цитата Сообщение от krapotkin Посмотреть сообщение
но нужно уметь работать с БД, либо придумать свою недо-БД
В задании сказано, что можно работать и без бд:
Цитата Сообщение от shyub Посмотреть сообщение
Можно всё это делать на основе как базы данных, так и без неё
То есть сойдут и обычные классы. Создать класс водитель, у него массив указателей на автомобили, и так далее в том же духе.
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
14.04.2015, 09:16  [ТС] 5
Эту задачку "подбросил" один знакомый педагог: у нас был спор, в котором он доказывал, что его ученики решают такие задачи, которые не под силу взрослым и привёл пример из их олимпиады (школа, правда, не простая). Решение я пока не знаю, но если за неделю не решу, то, разумеется, он покажет, но как-то не хочется быть проигравшим (спорили на бутылку коньяка).

Цитата Сообщение от krapotkin Посмотреть сообщение
это надо часа за 4 сделать?
Где-то так.

Я бы решал с помощью БД и SQL-запросов, но как удалить запись из базы данных, причём при этом должен уменьшиться её размер - не знаю. Простое удаление здесь не пойдёт. Можно, конечно, пересоздать по новой БД, но это как-то не красиво.
Создавать свою "недо-БД", за отпущенное время - врядли. Но раз была такая задача, значит составители предусмотрели какое-то оригинальное решение.
Цитата Сообщение от krapotkin Посмотреть сообщение
написать всё это за вас, так и говорите..
- не в коем случае, а вот если есть идея - поделитесь.

Добавлено через 1 минуту
Цитата Сообщение от SatanaXIII Посмотреть сообщение
То есть сойдут и обычные классы. Создать класс водитель, у него массив указателей на автомобили, и так далее в том же духе.
Вот это, наверное, ближе к истине...
0
5784 / 4526 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
14.04.2015, 10:57 6
здесь нет ничего вообще олимпиадного
задача чисто из жизни.
решать ее абсолютно стандартными способами
без БД хотя бы в виде текстовых файлов здесь делать нечего.
не вводить же каждый раз данные заново?

план работ
1) БД
1.1) таблица автомобилей. ID, марка, номер
1.2) таблица водителей
1.3) таблица связи автомобиль-водитель
2) главная форма.
2.1) комбо-бокс марки машин для фильтрации запроса
2.2) SQL-запрос- текущий список машин вместе с водителями, отфильтрованный по условию из Комбо
2.3) грид, отображающий этот датасет
2.4) dbnavigator и кнопки OK/Отмена
2.5) по кнопке dbnavigator "удалить" удаляется запись из таблицы назначений, и авто и водитель остаются в БД
2.6) по кнопке dbnavigator "вставить" идем в п.5
3) форма "автомобили".
3.1) SQL-запрос- полный список авто
3.2) грид, отображающий этот датасет
3.3) dbnavigator и кнопки OK/Отмена
4) форма "водители"
4.1) SQL-запрос- полный список водителей
4.2) грид, отображающий этот датасет
4.3) dbnavigator и кнопки OK/Отмена
5) Форма назначение водителя на авто
5.1) SQL-запрос- полный список водителей.
5.2) SQL-запрос- полный список авто.
5.3) SQL-insert запрос - добавление записи в таблицу назначений
5.4) грид справа, грид слева, кнопка "назначить" посредине
5.5) кнопки OK/Отмена
5.6) при нажатии кнопки проверить, нет ли такой пары водитель (справа)-авто (слева)в таблице назначений и вставить туда новую запись

сделано все без классов, чистый клиент-сервер, примитивный интерфейс в манере 90-х.
в этой же манере кодят сейчас выпускники вузов...
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
15.04.2015, 08:49  [ТС] 7
Цитата Сообщение от shyub Посмотреть сообщение
Я бы решал с помощью БД и SQL-запросов, но как удалить запись из базы данных, причём при этом должен уменьшиться её размер
Меня смущает это условие.
0
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
15.04.2015, 09:22 8
Цитата Сообщение от shyub Посмотреть сообщение
Меня смущает это условие.
а что такого? используем, допустим, SQLite и через API дергаем VAACUM после удаления записей, перед закрытием приложения например.

инфо - http://www.sqlite.org/lang_vacuum.html
1
15.04.2015, 09:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2015, 09:22
Помогаю со студенческими работами здесь

Связанные списки
Здравствуйте. Вопрос такой: есть два select-a. Необходимо, чтобы при изменении одного менялся...

Связанные списки С++
Здравствуйте, изучаю С++ и возникли проблемы с пониманием как работают списки. Вот код: ...

Связанные списки
Добрый день, возникла проблема , при добавление новых данных через связанные списки, данные не...

Связанные списки
Подскажите как переделать данный код так чтобы связанные были три списка и при выборе пункта в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru