объектно-ориентированный анализ. объектно-ориентир анализ. Обследование предметной области
Скачать 1.28 Mb.
|
Элементы: Кнопка Общий график на открытие запроса ГрафикЛин_перекрестный Подчиненная форма ПоКлассам Источник записей: запрос ПоКлассам Поле связи: нет Подчиненная форма МахСтаж Источник записей: запрос МахСтаж Поле связи: нет Кнопка Уволит водителя – запрос ВодтелиУволн Кнопка Принять водителя – открыть форму “АнкетаВод” Форма “АнкетаВод” Вводит данные по принятию нового водителя. Источник данных: нет Элементы: Поле со списком. Источник строк: "A";"B";"C" Кнопка Принять – вызов запроса АнкетаВод, после чего данные будут загружены в промежуточную таблицу, и после подтверждения будут перегружены в основную, с помощью запроса АнкетаВодЗагр Форма “НеВышли” Выводит данные о не вышедших на маршрут автобусах, и причине. Источник данных: запрос НеВышли Форма “График работы” Выводит графики работ водителей и автобусов, возможность заполнения расписания. Источник данных: нет Элементы: Подчиненный запрос: форма: подчиненная форма ГрафикЛин_перекрестный запрос: ГрафикЛин_перекрестный поле связи: нет Подчиненный запрос: форма: подчиненная форма ГрафикАвтоб_лин_перекрестный запрос: ГрафикАвтоб_лин_перекрестный поле связи: нет Поле со списком “Паспорт”. Источник данных: SELECT СвободныеВодители.pasp FROM СвободныеВодители; Поле со списком “Номер автобуса”. Источник данных: SELECT СвободныеАвтоб.avtob FROM СвободныеАвтоб; Поле со списком “Номер автобуса”. Источник данных: SELECT Маршруты.marshr FROM Маршруты; Кнопка Ввести – на вызов запроса ВводСтрокиГрафика 6. Описание запросовЗапрос “АвтобУдал” Удаление записи из таблицы Автобусы. DELETE * FROM Автобусы WHERE avtob=Forms!Автобусы!avtobud; Запрос “АнкетаВодЗагр” Добавляет запись в промежуточную таблицу ВодителиЗагр INSERT INTO ВодителиЗагр ( Pasp, FIO, staj, klas, data_roj, Adres ) VALUES (Forms!АнкетаВод!pasp, Forms!АнкетаВод!fio, Forms!АнкетаВод!staj, Forms!АнкетаВод!klas, Forms!АнкетаВод!date, Forms!АнкетаВод!Adres); Запрос “ АнкетаВод” Добавляет запись в таблицу Водители INSERT INTO Водители SELECT ВодителиЗагр.Pasp AS Pasp, ВодителиЗагр.FIO AS FIO, ВодителиЗагр.staj AS staj, ВодителиЗагр.klas AS klas, Оклад.Oklad AS Oklad, ВодителиЗагр.data_roj AS data_roj, ВодителиЗагр.Adres AS Adres FROM ВодителиЗагр, Оклад WHERE (ВодителиЗагр.klas=Оклад.klass) and (ВодителиЗагр.Pasp not in (SELECT Pasp FROM Водители)); Запрос “ВводСтрокиГрафика” Добавляет запись в таблицу Водят INSERT INTO Водят ( Pasp, avtob, marshr, [date] ) SELECT Forms![График работы]!pasp, Forms![График работы]!avtob, Forms![График работы]!marshr, Forms![График работы]!date; Запрос “ВодтелиУволн” Удаляет запись из таблицы Водители DELETE * FROM Водители WHERE Pasp=Forms!Водители!Pasp Запрос “ГрафикАвтоб_лин” Формирует таблицу, содержащую номера автобусов, дату, и номер маршрута или сообщение о поломке, в случае неисправности. Необходим, для составление графика работы автобусов. SELECT Автобусы.avtob, Водят.date, Водят.marshr as Выход FROM Автобусы inner join Водят on Автобусы.avtob=Водят.avtob WHERE (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки)) UNION SELECT Поломки.avtob, Поломки.date, "Поломка" as Выход FROM Поломки; Запрос “ГрафикЛин” Формирует таблицу, содержащую фамилии водителей, даты, и номера маршрутов. Необходим, для составление графика работы водителей. SELECT Водители.FIO, Водят.date, Водят.marshr & " " & Водят.avtob AS marshr FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp; Запрос “ДобавНовАвтоб” Добавляет строку в таблицу Автобусы. INSERT INTO Автобусы ( avtob, Type ) VALUES (Forms!Автобусы!avtob, Forms!Автобусы!Type); Запрос “МаршВводНов” Добавление строки в таблицу Маршруты INSERT INTO Маршруты ( marshr, Nach_punkt, Konechn_punkt, Nach_dvij, Kon_vrema, int, Protaj ) VALUES (Forms!МаршВводНов!nom, Forms!МаршВводНов!nach, Forms!МаршВводНов!konech, Forms!МаршВводНов!nvr, Forms!МаршВводНов!kvr, Forms!МаршВводНов!int ,Forms!МаршВводНов!prot); Запрос “МаршВод” Выбирает данные из таблицы Водители, удовлетворяющие заданному маршруту и дате. SELECT DISTINCT Водители.FIO, Водители.Pasp FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp WHERE (((Водят.marshr)=Forms!Маршруты!marshr)); Запрос “МаршПоиск” Выбирает данные из таблицы Маршруты, по заданным кольцам. SELECT Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt FROM Маршруты WHERE (Маршруты.Nach_punkt=Forms!МаршПоиск!nachal) Or (Маршруты.Konechn_punkt=Forms!МаршПоиск!konech); Запрос “МаршУдал” Удаляет запись из таблицы Маршруты DELETE * FROM Маршруты WHERE marshr=Forms!Маршруты!marshr; Запрос “МахСтаж” Выбор из таблицы Водители тех, у кого наибольший стаж SELECT Водители.FIO, staj FROM Водители WHERE staj in (SELECT max(staj) FROM Водители); Запрос “НеВышли” Формирует таблицу, из тех автобусов, которые находятся в ремонте, с пометкой о поломке, и автобусов, которым не нашлось водителей, с соответствующей пометкой. На эту дату. SELECT Автобусы.avtob, "Нет водителя" as Причина FROM Автобусы WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date())) UNION SELECT Поломки.avtob, "Поломка" FROM Поломки WHERE (date=date()); Запрос “ПоКлассам” Находит число водителей по классам. SELECT Водители.klas, count(pasp) AS Человек FROM Водители GROUP BY Водители.klas; Запрос “ПоПарку” Необходим для создания отчета по парку. Находит какие водители, по какому маршруту, и на каких автобусах работают в эту дату. SELECT Автобусы.Type, Автобусы.avtob, Водители.FIO, Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt, Маршруты.Nach_dvij, Маршруты.Kon_vrema, Маршруты.Interval, Маршруты.Protaj FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp WHERE (Водят.date=date()); Запрос “ПоПаркуСвод” Формирует список общих характеристик по парку. Средний возраст водителей, Средний стаж вождения, общая протяженность маршрутов, количество водителей. SELECT DISTINCT (SELECT sum(protaj) FROM Маршруты) AS [Общая протяженность], (SELECT count(pasp) FROM Водители) AS [Количество водителей], (SELECT round(avg(staj)) FROM Водители) AS [Средний стаж], (SELECT round(avg(Date()-Водители.data_roj)/365) FROM Водители) AS [Средний возраст] FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp WHERE (Водят.date=date()); Запрос “СвободныеАвтоб” Формирует список автобусов, для которых не нашлось водителя. SELECT Автобусы.avtob FROM Автобусы WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and (Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date())); Запрос “СвободныеВодители” Формирует список водителей, для которых не нашлось автобуса. SELECT Водители.pasp FROM Водители WHERE (Водители.pasp not in (SELECT Водят.pasp FROM Водят WHERE date=date())); Запрос “СписАвтоб” Формирует список автобусов на данном маршруте, в эту дату. SELECT DISTINCT Водят.avtob, Водят.marshr, Водят.date FROM Водят WHERE (((Водят.marshr)=Forms!Маршруты!marshr) And ((Водят.date)=Forms!Маршруты!data)); Запрос “СписАвтобВсех” Формирует список автобусов на данном маршруте всего, за все время SELECT DISTINCT Водят.avtob, Водят.marshr FROM Водят WHERE (((Водят.marshr)=Forms!Маршруты!marshr)); Запрос “Справка” Формирует список водителей и автобусов на данную дату. Нужен, для создания отчета-Справки по маршруту. SELECT Водители.FIO, Водят.avtob FROM Водители RIGHT JOIN Водят ON Водители.Pasp = Водят.Pasp WHERE (((Водят.date)=[Forms]![Маршруты]![data])); ЗаключениеВ результате проведенной работы разработана база данных диспетчера автобусного парка, структура и схема базы данных, разработаны формы для просмотра и ввода данных, созданы различные типы запросов и отчетов согласно заданию, созданы макросы. Еще одним важным аспектом базы данных является возможность отбора из большого объема имеющихся данных необходимой информации, которую, в свою очередь, можно представить в форме различного вида отчетов, что позволяет более наглядно просмотреть информацию и оценить общую работу автобусного парка. Список литературыАбрамян М. Visual C# на примерах . - СПб.: БХВ-петербург, 2008. – 496с Язык программирования C# 2010 и платформа .NET 4. – Вильямс, 2010. – 1392 Шилдт Г. Полный справочник по С#: Пер.с англ. – М: Издательский дом «Вильямс», 2004. – 752 с. 2. Троелсен Э. С# и платформа .NET. Библиотека программиста: Пер.с англ. – СПб: Питер, 2004. – 796 с. Бишоп Дж., Хорспул Н. C# в кратком изложении: Пер.с англ. – М:БИНОМ, Лаборатория знаний, 2005. - 472 с. Петцольд Ч. Программирование с использованием Microsoft Windows Forms. Мастер-класс: Пер.с англ. – М: Русская редакция; СПб: Питер, 2006. – 432 с. http://www.mini-soft.ru/book/c_sharp/index.php http://www.intuit.ru/ Кауфельд Джон. Microsoft Office Access 2003 для «чайников». – М.: Диалектика, 2004. – 320 с. Пасько В. Аccess 2000 для пользователя. – К.: BHV,1999. – 384с. http://mysql.ru/docs/gruber/mg20.html Методическая литература по MS Access. Приложение № 1 Частное образовательное учреждение высшего образования «Русско-Британский Институт Управления» (ЧОУВО РБИУ) Контрольная работа по курсу «Объектно-ориентированный анализ и программирование» направление: 38.03.05 Бизнес-информатика Студент группы БИ-203д _______________________ (Ф.И.О.) Челябинск 2015 |