389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
|
|
1 | |
Связанные списки13.04.2015, 08:50. Показов 1296. Ответов 7
Метки нет (Все метки)
Здравствуйте!
Помогите найти оптимального решения следующей задачи: Необходимо создать три ComboBox, в первом, например будут все марки автомобилей, имеющихся в каком-нибудь гараже, в соответствии с выбранной маркой автомобиля во втором ComboBox должны отображаться номера автомобилей данной марки, в третьем, в зависимости от выбранной марки и номера, ещё какой-нибудь параметр, допустим, фамилия водителя, причём один и тот же водитель может быть закреплён за несколькими автомобилями (здесь можно просто многократно записывать одну и ту же фамилию). В процессе работы программы должна быть возможность перезакреплять водителей за автомобилями, принимать на работу новых и увольнять имеющихся, покупать и списывать автомобили, изменять их номера, т.е. связь и сами данные оперативно изменять без перезагрузки программы. Можно всё это делать на основе как базы данных, так и без неё. Если использовать базу данных, то после списания автомобиля, удаления номера или увольнения водителя запись должна так же удаляться, т.е. размер базы данных уменьшаться. Эта задача одной из школьных олимпиад.
0
|
13.04.2015, 08:50 | |
Ответы с готовыми решениями:
7
Связанные списки Связанные списки Связанные списки Связанные списки |
SatanaXIII
|
||||||
13.04.2015, 12:33
#2
|
||||||
0
|
13.04.2015, 13:43 | 3 |
это надо часа за 4 сделать?
с одной стороны, все несложно. но нужно уметь работать с БД, либо придумать свою недо-БД в текстовом файле. дальше каждое действие из перечисленных выстроить построчно и запрограммировать здесь и построение запросов, и создание интерфейса, создание диалогов и т.д. ваш объем знаний неизвестен если нужно написать всё это за вас, так и говорите...
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
14.04.2015, 08:44 | 4 |
В задании сказано, что можно работать и без бд:
То есть сойдут и обычные классы. Создать класс водитель, у него массив указателей на автомобили, и так далее в том же духе.
0
|
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
|
|
14.04.2015, 09:16 [ТС] | 5 |
Эту задачку "подбросил" один знакомый педагог: у нас был спор, в котором он доказывал, что его ученики решают такие задачи, которые не под силу взрослым и привёл пример из их олимпиады (школа, правда, не простая). Решение я пока не знаю, но если за неделю не решу, то, разумеется, он покажет, но как-то не хочется быть проигравшим (спорили на бутылку коньяка).
Где-то так. Я бы решал с помощью БД и SQL-запросов, но как удалить запись из базы данных, причём при этом должен уменьшиться её размер - не знаю. Простое удаление здесь не пойдёт. Можно, конечно, пересоздать по новой БД, но это как-то не красиво. Создавать свою "недо-БД", за отпущенное время - врядли. Но раз была такая задача, значит составители предусмотрели какое-то оригинальное решение. - не в коем случае, а вот если есть идея - поделитесь. Добавлено через 1 минуту Вот это, наверное, ближе к истине...
0
|
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 |
0
|
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
|
|
15.04.2015, 09:22 | 8 |
а что такого? используем, допустим, SQLite и через API дергаем VAACUM после удаления записей, перед закрытием приложения например.
инфо - http://www.sqlite.org/lang_vacuum.html
1
|
15.04.2015, 09:22 | |
15.04.2015, 09:22 | |
Помогаю со студенческими работами здесь
8
Связанные списки Связанные списки С++ Связанные списки Связанные списки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |