Курсовая работа создание баз данных в среде ms access «Пакеты прикладных программ»


Download 457.29 Kb.
Sana06.04.2023
Hajmi457.29 Kb.
#1330038
TuriКурсовая
Bog'liq
5c30e3f09c86f


Балаковский инженерно-технологический институт


КУРСОВАЯ РАБОТА
СОЗДАНИЕ БАЗ ДАННЫХ В СРЕДЕ MS ACCESS
«Пакеты прикладных программ»
Выполнил:
студент гр. ИФСТ-21 Генералов М.В.

Балаково 2018



СОДЕРЖАНИЕ

Введение 3



  1. Понятия базы данных и пакеты прикладных программ

4

    1. Базы данных и СУБД 4

    2. История развития пакетов прикладных программ 5

  1. Разработка концептуальной модели базы данных 10

  2. Логическое проектирование базы данных 11

  3. Физическое проектирование базы данных 14

    1. Разработка таблиц 14

    2. Разработка форм 15

    3. Разработка запросов 18

    4. Разработка отчетов 23

    5. Разработка макросов 26

    6. Создание схемы данных 27

Заключение
28
Список используемых источников
29

30
ВВЕДЕНИЕ


Программным обеспечением называется совокупность программных средств, которые обеспечивают нормальную работу аппаратных средств ЭВМ. Постоянное увеличение мощности компьютеров, а также развитие средств связи, позволяет разработчикам улучшать свой программный продукт, тем самым удовлетворяя запросы конечных потребителей.
Прикладное программное обеспечения, создается для решения, как правило, более сложных, конкретных задач. Разработкой данного обеспечения занимаются системные аналитики и программисты.
Большую часть прикладного программного обеспечения составляют пакеты прикладных программ. Прикладные программы предназначены для того, чтобы обеспечить возможность применения вычислительной техники в разнообразных сферах деятельности человека связанной с обработкой информации.
Данная тема является актуальной ввиду того, что в данный момент времени круг решаемых задач с помощью пакетов прикладных программ постоянно увеличивается. В свою очередь, потребность улучшения характеристик использования пакета при решении конкретных задач пользователя стимулирует совершенствование архитектуры и элементной базы компьютеров и различных периферийных устройств.

      1. ПОНЯТИЯ БАЗЫ ДАННЫХ И ПАКЕТЫ ПРИКЛАДНЫХ ПРОГРАММ

        1. Базы данных и СУБД

База данных (БД) - совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Эти данные упорядочены, например, по алфавиту. Обилие различных данных, которые могут быть размещены в единой базе, ведет к множеству вариаций того, что может быть записано: личные данные пользователей, записи, даты, заказы и так далее.
В первую очередь это удобно тем, что информацию можно быстро заносить в базу данных и так же быстро ее извлекать при необходимости. Специальные алгоритмы хранения и поиска информации, которые используются в базах данных, позволяют быстро находить нужные сведения - а при работе в виртуальном пространстве скорость работы ресурса важна как ничто другое [1].
Немаловажной является и взаимосвязь информации в базе данных: изменение одной строчки может привести к значительным изменениям других строк. Работать с данными таким образом гораздо проще и быстрее, чем, если бы изменения касались только одного места в базе данных.
Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. Главная функция СУБД - это управление данными, которые могут быть как во внешней, так и в оперативной памяти [2]. СУБД обязательно поддерживает языки баз данных, а также
отвечает за копирование и восстановление данных после каких-либо сбоев
программы. В большинстве современных СУБД внешний интерфейс обычно основывается на использовании специального языка, например SQL – стандартный язык запросов, язык определения структур и манипулирования данными, в котором отражаются основные черты модели данных.
Базы можно разделить по модели данных: иерархические, сетевые, реляционные, объектно-ориентированные и объектно-реляционные [3].
Также они делятся на файл-серверные, клиент-серверные (все основные компоненты СУБД выполняются на отдельном сервере, на котором хранится и БД, а на клиентской части выполняется код приложения), встраиваемые, однопроцессорные [4].
Либо, если деление идет по тому, где размещается СУБД, их можно разделить на локальные - вся СУБД размещается на одном компьютере, и распределенные - части системы управления базами данных находятся на нескольких компьютерах.
Помимо основной своей функции - хранения и систематизации огромного количества информации - они позволяют быстро обрабатывать клиентские запросы и выдавать актуальную информацию.



        1. История развития пакетов прикладных программ

Самые первые пакеты прикладных программ (ППП) представляли собой набор программ для решения отдельных задач в определенной прикладной области.
На данный момент пакет является непростой программной системой, которая включает в себя специальные языковые и системные средства. В развитии вычислительных ППП выделяются четыре основных поколения пакетов. Каждый из них имеет определенные особенности, которые входят в состав компонентов пакета прикладных программ, например входные языки, предметное и системное обеспечение.
Для первого поколения ППП в качестве входных языков применялись
такие языки программирование, как Фортран, Алгол-60 и другие. Также
использовались языки управления заданиями соответствующих операционных систем. Задания, составляемые на таких языках, почти не отличались от программ, написанных на алгоритмических языках [5].
Предметное обеспечение первых прикладных программ, находилось в форме библиотек программ, то есть в виде пакетов независимых программ, написанных на базовом языке программирования. Такого типа ППП называют пакетами простой структуры.
В роли системного обеспечения применялись стандартные компоненты программного обеспечения компьютера: текстовые редакторы, системы архива, компиляторы с алгоритмических языков и другие. Для использования пакетов данного типа не требовалась какая-либо развитая системная поддержка, а указанных системных средств общего назначения вполне хватало.
Разработчиками пакетов были прикладные программисты, которые чаще всего, пытались приспособить языки программирования к своим нуждам.
Разработка ППП второго поколения проводилась с участием системных программистов. Это привело к тому, что появились специализированные входные языки, также их называют встроенными языками, которые были созданы на базе универсальных языков программирования. Проблемная ориентация таких языков достигалась за счет применения соответствующих языковых конструкций, которые упрощали формулировку задачи и делали ее более наглядной. Транслятор с такого языка представлял собой препроцессор к транслятору соответствующего алгоритмического языка [6].
В роли модулей в пакетах данного класса стали применяться не только программы, которые были написаны на каком-либо языке, но и такие объекты, как совокупность данных, схема счета, последовательность операторов языка программирования и другие [7].
Значительным изменениям подвергся принцип организации системного обеспечения пакетов прикладных программ. В них можно выделить элементы системного обеспечения, которые характерны для более новых пакетов, то есть
это монитор, специальные банки данных, средства, с помощью которых можно описать предметную область и другие.
Третий этап развития, охарактеризован тем, что начали появляться входные языки, которые большей части были ориентированы на пользователей, не занимающихся программированием. Внимание на данном этапе развития было уделено системным компонентам, с помощью которых обеспечивалась простота и удобство различных программ. Это получается, главным образом за счет усовершенствования входных языков и включения в состав пакета прикладных программ, сред автоматизированного планирования вычислений.
Четвертый этап охарактеризован созданием ППП, эксплуатируемых в диалоговом режиме работы. Главное преимущество данного взаимодействия с компьютером – это возможность активной обратной связи с пользователем в различных процессах, таких как постановка задачи, решение и обработка полученных результатов в ходе выполнения программы [8].
Быстрое развитие всевозможных форм диалогового общения вызвано, прежде всего, совершенствованием различных средств обеспечения диалога. К этому можно отнести как разработку различной дисплейной техники (растровые дисплеи и средства, с помощью которых происходит реализация графических, цветовых и звуковых возможностей), так и улучшений для линий связи. Также развитие аппаратного обеспечения привело к тому, что начали появляться программные средства поддержки диалогового режима работы. Во множестве приложений диалог заменил пакетную обработку, а построчный режим диалога уступает место полноэкранному режиму.
Прикладная система состоит из диалогового монитора-набора программ, которое обеспечивает ведение диалога и обмен данными об области. Диалог задает сценарий, в соответствии с которым монитор управляет процессом диалога [9].
Создание прикладной системы заключается в настройке диалогового монитора на определенный диалог, с помощью заполнения базы знаний.
Программирование используется лишь при создании прикладных модулей,
сведения о диалоге вносятся в систему с помощью набора соответствующих средств – редактора сценариев. Благодаря готовому универсальному монитору, разработчик может сконцентрироваться на решении прикладных задач.
В настоящее время внимание уделяется вопросу о проектировании интеллектуальных пакетов прикладных программ. С помощью данного пакета, пользователю всего лишь достаточно изложить свою задачу в содержательных терминах, при этом, не указывая алгоритм ее решения. Обработка заданного решения и сборка необходимой программы производятся в автоматическом режиме. Все вычисления, производимые программой, скрыты от пользователя и таким образом, компьютер становится интеллектуальным партнером человека, способным понимать его задачи.
Предметное обеспечение данного пакета подразумевает под собой базу знаний, которая содержит в себе, как описательные знания, так и процедурные. Подобный способ решения называют концептуальным программированием, которое характеризуется тем, что непосредственно программирование осуществляется в определениях предметной области и накопление знаний о решаемых задачах в базе знаний.
Основная идея современного направления разработки пакетов прикладных программ - это использование специальных инструментальных средств и систем, с помощью которых можно ускорить и сделать более простым, процесс создания пакета, а также снизить финансовую составляющую разработки.
Большее внимание уделяется проектированию системных средств, позволяющих применять в качестве предметного обеспечения пакетов прикладных программ, составленных раннее прикладных программ [10]. Инструментальные системы реализуются так, чтобы их можно было использовать в качестве готовых компонентов для системного обеспечения разрабатываемых пакетов.
Инструментальные средства, которые разрабатываются для упрощения создания пакетов прикладных программ, представляют собой одно из главных направлений системного программирования в пакетной проблематике.
Также при выборе способа разработки какого-либо пакета прикладных программ, стоит учитывать специфичность конкретной ситуации, а конкретно, имеющиеся в наличии материальные и людские ресурсы. Пакет библиотечного типа, является не самой развитой системой с позиции предъявляемых требований, однако, обладает тем преимуществом, что входной язык и системное обеспечение данного пакета, могут быть достаточно легко реализованы силами прикладного программиста.

      1. РАЗРАБОТКА КОНЦЕПТУАЛЬНОЙ МОДЕЛИ БАЗЫ ДАННЫХ

База данных необходима для хранения информации о пакетах прикладных программ и их типов. Для её реализации необходимо предоставить информацию о программах входящих в состав ППП, разработчиках, типах и видах ППП, а также информацию о ценах на определенный пакет программ. Для построения данной модели, следует выделить следующие основные сущности базы данных: виды ППП (код ППП, вид), программы (код программы, программа, вид, разработчик, описание, цена), разработчик (код разработчика, логотип, разработчик, расположение, отрасли, продукция), тип ППП (код, тип, средние цены), цена (код цены, цена, форма распространения).
Полученную модель представим в виде ER-диаграммы, рисунок 1.

Рисунок 1 – ER-диаграмма



      1. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Для разработки базы данных была выбрана СУБД Microsoft Access 2007. Access является реляционной СУБД, которая поддерживает все средства и возможности по обработке данных, свойственные реляционным моделям. Данные, которые необходимо хранить в базе данных, могут быть представлены в различных форматах, в частности, денежном, графическом, числовом и других. СУБД MS Access обычно применяют, когда задача требует хранения и обработки различного рода информации о большом количестве объектов. Также в данном пакете предусмотрена защита, позволяющая повысить сохранность данных, находящихся в базе данных.
Необходимо описать свойства полей каждой границы, учитывая ограничения и тип данных, которые применяются к данным. Описание представлено в таблицах 1 – 6.
Таблица 1 – Требования к таблице «Виды ППП»



Имя поля

Тип данных

Ограничения

Код ППП

Счетчик

Длинное целое

Вид

Текстовый

Длина – 255

Таблица 2 – Требования к таблице «Общая информация»





Имя поля

Тип данных

Ограничения

Код

Счетчик

Длинное целое

Программы

Текстовый

Длина – 255

Вид

Текстовый

Длина – 255

Цена

Денежный

Больше или равно 0

Таблица 3 – Требования к таблице «Программы»





Имя поля

Тип данных

Ограничения

1

2

3

Продолжение таблицы 3



1

2

3

Код программы

Счетчик

Длинное целое

Имя поля

Тип данных

Ограничения

Программа

Текстовой

255

Вид

Числовой

Длинное целое

Разработчик

Числовой

Длинное целое

Описание

Поле MEMO

-

Цена

Числовой

Длинное целое

Таблица 4 – Требования к таблице «Разработчик»





Имя поля

Тип данных

Ограничения

Код разработчика

Счетчик

Длинное целое

Логотип

Поле объекта OLE

-

Разработчик

Текстовый

255

Расположение

Текстовый

255

Отрасли

Текстовый

255

Продукция

Поле MEMO

-

Таблица 5 – Требования к таблице «Тип ППП»



Имя поля

Тип данных

Ограничения

Код

Счетчик

Длинное целое

Тип ПП

Текстовый

255

Средние цены

Числовой

Длинное целое

Таблица 6 –Требования к таблице «Цены»





Имя поля

Тип данных

Ограничения

1

2

3

Продолжение таблицы 6





1

2

3

Код цены

Счетчик

Длинное целое

Цена

Денежный

Больше или равно 0

Форма распространения

Поле MEMO

-

Средние цены

Денежный

Больше или равно 0

Произведем преобразование ER-диаграммы в логическую схему базы данных, рисунок 2.

Рисунок 2 - Логическая модель базы данных

      1. ФИЗИЧЕСКОЕ ПРОЕКТИРОВАННИЕ БАЗЫ ДАННЫХ

        1. Разработка таблиц

В самом начале разработке баз данных, требуется создать таблицы и заполнить их нужной информацией. Каждому столбцу таблицы нужно задать необходимый тип данных для правильного отображения информации и длину поля, которая ограничивает ввод данных. Создание и оформление таблиц происходит в режиме конструктора.
Таблица «Виды ППП», рисунок 3.


Рисунок 3 – Разработка таблицы «Вид ППП» Таблица «Общая информация», рисунок 4.

Рисунок 4 – Разработка таблицы «Общая информация» Таблица «Программы», рисунок 5.





Рисунок 5 – Разработка таблицы «Программы» Таблица «Разработчик», рисунок 6.


Рисунок 6 – Разработка таблицы «Разработчик» Таблица «Тип ППП», рисунок 7.

Рисунок 7 – Разработка таблицы «Тип ППП» Таблица «Цены», рисунок 8.


Рисунок 8 – Разработка таблицы «Цены»



        1. Разработка форм

Формы создаются для облегчения ввода и редактирования определенных данных, их печати, а также позволяют обеспечить вывод информации в удобном виде для пользователя. Они основаны на запросах или табличных данных.
Форму можно создать не для одной таблицы, но и для нескольких, которые связанные между собой. В таком случае появляется возможность изменять данные сразу в нескольких таблицах, при этом необходимо соблюдать условия целостности данных. Также можно создать формы для поиска информации, по различным условиям. Опишем формы данной базы данных (рисунок 9-13).
Форма «Виды ППП (разделенная)», рисунок 9.

Рисунок 9 – Разделенная форма


Главная кнопочная форма, рисунок 10.
Создается для удобства перемещения по базе данных. Она позволяет перейти к другим формам, таблицам и отчетам. Также в ней имеется возможность выхода из приложения. Форма запускается при открытии базы данных.

Рисунок 10 – Главная кнопочная форма Форма «Программы», рисунок 11.


Данная форма создана на основе данных из таблицы «Программы».
Позволяет менять наименование разработчика, вид и цену ППП.

Рисунок 11 – Подчиненная форма «Программы» Форма «Распространение», рисунок 12.


Форма создана с помощью мастера форм и содержит в себе информацию из двух таблиц (программы и цены). Она меняет информацию о форме распространения программы.
Рисунок 12 – Форма «Распространение» Форма «Добавление программы», рисунок 13.
Данная форма позволяет добавить новую программу в таблицу
«программы». Она просит указать наименование программы, вид ППП, разработчика, небольшое описание и цену. Форма создана с помощью запроса
«добавление проги».

Рисунок 13 – Форма «Добавление программы» Форма «Эмблемы», рисунок 14.


Форма создана для вывода изображения логотипа разработчика.

Рисунок 14 – Форма «Эмблемы»


В каждой форме имеется кнопка перехода к главной кнопочной форме.

        1. Разработка запросов

Запросы в Access являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных. Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL [11]. С их помощью производится отбор тех записей, которые нужны для составления определенных отчетов или форм.
В MS Access можно создать запросы следующих типов:

          • запрос на удаление;

          • запрос на создание таблицы;

          • запрос на добавление;

          • запрос на обновление информации.

Результатом выполнения запроса является новая таблица, которая существует до закрытия запроса.
Запросы, находящиеся в данной базе данных, были созданы в режиме конструктора. Подробнее опишем запросы в базе данных.
Бесплатные программы, рисунки 15,16.
В данном запросе идет отбор с помощью оператора In, который позволяет определить равно ли значение выражения из таблицы значению из указанного списка. Оператор In ищет только точные совпадения.

Рисунок 15 – Запрос на поиск бесплатных программ

Рисунок 16 – Результат запроса


Вид программ, рисунок 17.
Запрос, созданный на основе таблицы «программы». Выводит информацию о виде, наименовании и цены программы.

Рисунок 17 – Результат выполнения запроса
Отрасли, рисунки 18, 19.
При создании запроса использовалась таблица «программы». В данном запросе ведется отбор по двум полям, таким как разработчик и отрасли. Для этого используется оператор Like, который позволяет найти определенные символы, записанные в квадратные скобки, по условиям.

Рисунок 18 – Запрос на отбор данных

Рисунок 19 – Результат запроса


Программы от 80 до 200 тысяч рублей, рисунки 20,21.

Рисунок 20 – Запрос на программы стоимостью от 80 тысяч рублей


Рисунок 21 – Результат запроса


Добавление программы, рисунки 22,23.
Данный запрос используется в форме для добавления программы в таблицу.

Рисунок 22 – Запрос на добавление программы

Рисунок 23 – Результат запроса


Изменение наименования программы, рисунки 24,25.
Данный запрос позволяет изменить определенное название программы, на другое, которое указано в графе «обновление».

Рисунок 24 – Запрос на обновление названия программы

Рисунок 25 – Результат запроса


Удаление разработчика и его программы, рисунок 26.
Запрос производит удаление определенного разработчика из таблицы
«разработчик» и, следовательно, удаление его программы из таблицы
«программы».

Рисунок 26 – Запрос на удаление разработчика


Вид программы, рисунки 27,28.
Перекрестный запрос, вычисляющий общую сумму определенного ППП.

Рисунок 27 – Перекрестный запрос


Рисунок 28 – Результат запроса



        1. Создание отчетов

С помощью отчетов обеспечивается вывод на экран или на бумажный носитель информации из базы данных в удобном для работы виде. Также с их помощью можно сгруппировать данные по одному или нескольким полям.
Отчеты могут содержать данные из одной или нескольких таблиц либо запросов. В него можно помещать различные графики, изображения и выводить значения вычисляемых полей. Создание отчета можно произвести несколькими способами:

  • с помощью мастера;

  • с использованием инструмента «Пустой отчет»;

  • с помощью функции «Отчет».

На основе запросов и таблиц, создадим отчеты с использованием различных способов.
Отчет виды ППП, рисунок 29.
В данном отчете, сортировка данных ведется по видам программ.

Рисунок 29 – Отчет виды ППП


Отчет по запросу отрасли, рисунок 30.
Данный отчет был создан по запросу отрасли, в котором отбор по двум полям, производился с помощью оператора сравнения Like.

Рисунок 30 – Отчет по запросу


Отчет по таблице «программы», рисунок 31.

Рисунок 31 – Отчет по таблице


Отчет программы, цена которых не меньше 80 тысяч рублей и не больше 200 тысяч, рисунок 32.

Рисунок 32 – Отчет программы, стоимостью от 80 до 200 тысяч рублей


Отчет по разработчикам, рисунок 33.

Рисунок 33 – Отчет по разработчикам



        1. Создание макросов

Макрос — это инструмент, с помощью которого можно автоматизировать задачи и добавить функциональные возможности для форм, отчетов и элементов управления [12]. Опишем макросы данной базы данных.
Макрос, открывающий запрос бесплатные программы, рисунок 34.

Рисунок 34 – Макрос, открывающий запрос бесплатные программы


Макрос, закрывающий окно по нажатию кнопки, рисунок 35.
Рисунок 35 – Макрос, закрывающий окна по нажатию кнопки Макрос, открывающий таблицу виды ПП, рисунок 36.
Рисунок 36 – Макрос, открывающий таблицу виды ПП Макрос, закрывающий базу данных, рисунок 37.

Рисунок 37 – Макрос, закрывающий базу данных


Макрос, открывающий запрос на добавление программы, рисунок 38.

Рисунок 38 - Макрос, открывающий запрос на добавление программы



        1. Создание схемы данных

Между таблицами, которые используются в данной базе данных, Виды ППП – Программы, Разработчик – Программы, Цены – Программы, Цены – Тип ППП выбираем связь «один-ко-многим», рисунок 39.

Рисунок 39 – Схема базы данных
Также при создании схемы, необходимо выбрать свойства: обеспечение целостности данных, каскадное удаление связанных записей и каскадное обновление связанных полей.
ЗАКЛЮЧЕНИЕ
ППП стали неотъемлемой частью программного обеспечения. Это объясняется множеством различных функции и тем, что программы, входящие в эти пакеты, очень просты в освоении. В настоящее время, пользователи очень часто обращают внимание на скорость выполнения операций, и на то, как будет представлена информация. Но ППП также используются в различных сферах деятельности человека, так как с помощью данных программ он может получить доступ практически к любой информации и совершенствование имеющихся пакетов, приводит к тому, что работа с данными упрощается.
Результатом выполнения курсовой работы стала разработанная база данных, которая позволяет найти и добавить необходимую информацию о программах и видах пакетов прикладных программ. Данная база данных создавалась с помощью СУБД Microsoft Access, которая позволила разработать простой и удобный пользовательский интерфейс. Данная СУБД может взаимодействовать с другими типами базами данных, также позволяет создавать различные запросы, формы, отчеты, которые выводят табличные данные в понятном для пользователя виде, вдобавок к этому можно создавать процедуры и макросы, позволяющие управлять большим количеством данных.
СПИСОК ЛИТЕРАТУРЫ

  1. Базы данных и СУБД // timeweb URL:https://timeweb.com/ru/community/articles/bazy-dannyh-i-subd-1 (дата обращения: 25.11.18).

  2. База данных //Академик URL: https://dic.academic.ru/dic.nsf/ruwiki/7390 (дата обращения: 25.11.18).

  3. Иерархические, сетевые, реляционные, объектно-ориентированные модели баз данных //lektsii.org URL: https://lektsii.org/6-78733.html (дата обращения: 25.11.18).

  4. СИСТЕ́МА УПРАВЛЕ́НИЯ БА́ЗАМИ ДА́ННЫХ // Большая

российская энциклопедия URL: https://bigenc.ru/technology_and_technique/text/3666497 (дата обращения: 25.11.18).

  1. Эволюция пакетов прикладных программ. // lawbooks.news URL: https://lawbooks.news/windows_952/evolyutsiya-paketov-prikladnyih-68816.html (дата обращения: 19.11.18).

  2. Этапы развития пакетов прикладных программ // studwood URL: https://studwood.ru/1708771/informatika/etapy_razvitiya_paketov_prikladnyh_progr amm (дата обращения: 19.11.18).

  3. Структура математических пакетов прикладных программ и их основные компоненты // StudFiles URL: https://studfiles.net/preview/3529580/ (дата обращения: 19.11.18).

  4. Эволюция ППП // УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ДЛЯ СТУДЕНТОВ КАФЕДРЫ АСОИУ URL: http://www.4stud.info/ppp/lecture3.html (дата обращения: 19.11.18).

  5. Пакеты системного обеспечения третьего и четвертого поколения // helpiks.org URL: https://helpiks.org/6-54550.html (дата обращения: 19.11.18).

  6. Специализированные инструментальные средства и системы создания пакетов // mylektsii.ru URL: http://mylektsii.ru/8-32619.html (дата обращения: 21.11.18).

  7. Запросы // StudFiles URL: https://studfiles.net/preview/3009981/page:41/ (дата обращения: 08.12.18).

  8. Создание Макросов //Бобродобро URL: http://prog.bobrodobro.ru/11894 (дата обращения: 08.12.18).

Download 457.29 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling