Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diploma Нечпай.doc
Скачиваний:
63
Добавлен:
13.04.2015
Размер:
4 Мб
Скачать
☆

4.3 Руководство пользователя

В ПО реализована автоматизированная система поддержки принятия решений по учету товаров на малом предприятии. ПО решает следующие задачи:

  • создание баз данных по поставщикам/заказчикам, товаров, договоров, счетов, заказов;

  • добавление данных в БД;

  • дзменение данных в БД;

  • удаление данных в БД;

  • реализация запросов, формирование отчетов;

  • обеспечение защиты от несанкционированного доступа.

Программный продукт предназначен для выдачи:

  • информации по поставщикам/заказчикам;

  • информации о товарах, которые хранятся на складе;

  • информации о движении товара;

  • информации о движении финансов за купленный/проданный товар.

Для нормальной работы по необходимы следующие минимальные требования:

  • 20000 Mb свободного дискового пространства для сервера субд;

  • для сервера - 1024 МБ, а для клиента 512 МБ оперативной памяти;

  • видеопамять не менее 256 МБ;

  • процессор – 2000 МГц (сервер), 1000 МГц (клиент).

Входными данными для выполнения работы являлись договора, заказ-заявки, накладные, счета. Выходными данными являлись: сформированные накладные, счета, отчетность по товару, данные о движении денег, прайс-листы по товару, отчетность по счетам, отчетность по заказам. Для установки системы требуется скопировать 2 каталогас именем “Client” и “Server”.

5 Анализ опытной эксплуатации и возможных приложений

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

Актуальность разработки обуславливается достижением следующих показателей эффективности: сокращение затрат (материальных, временных, трудовых), высокий уровень обслуживания, возможность удаленного доступа, повышение показателя конкурентоспособности продукции данного предприятия. Поэтому, несмотря на затраты, связанные с приобретением вычислительной техники, программного обеспечения, автоматизирующего производственный процесс предприятия, с обучением производственного персонала, предприятию выгодно автоматизировать свою деятельность.

При эксплуатации данный программный продукт позволит:

  • сократить временные и трудовые затраты при закупке и продаже товара;

  • сократить сроки составления отчетности;

  • сократить материальные затраты за счет более экономического расхода бумажных ресурсов;

  • повысить эффективность сбора и учета информации о товаре, поставщиках и заказчиков;

  • повысить культуру обслуживания.

Данный программный продукт предназначен для создания автоматизированной системы поддержки принятия решений и учета товаров на малом предприятии.

Реализация удобного и простого интерфейса в виде главного окна и модулями-окнами позволяет пользователю легко разобраться в принципе работы программного продукта, что сокращает затраты предприятия по обучение персонала.

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

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

Была разработана информационная модель в IDEF0-нотации. Выбрана логическая модель данных – реляционная. Реляционная модель позволяет использовать сжатую информацию, которой достаточно для создания и полной структуры базы данных. Такая информация представляет собой концептуальную модель. Использование такой модели позволило определить необходимые данные для хранения в базе данных, свести число хранимых отношений к минимуму, нормализовать отношения для упрощения решения проблем, связанных с обновлением и удалением данных.

Для выбора концептуальной модели данных были рассмотрены три их разновидности: семантическая модель; фреймы; модель "сущность-связь". Была принята последняя. Для представления связей и сущностей введен специальный метод: ER-диаграмма. На основе ER –диаграммы и в результате декомпозиции предметной области выделили следующие обобщенные сущности, которые представили таблицами: справочник товаров, фирмы, счета банка, склады, остатки товаров, перемещение товара, история счетов, договора, состояние контракта.

В результате анализа была выбрана реляционная модель данных с использованием классической архитектуры клиент/сервер. Классическая архитектура клиент/сервер в отличии от файл-сервера дает возможность производить добавление, удаление, изменение данных, осуществлять контроль входных данных, выполнять запросы непосредственно на сервере. Это повышает производительность системы, повышает ее надежность.

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

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

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

ВЫВОДЫ

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

Для достижения поставленной цели решены следующие задачи:

  • изучены процессы, происходящие при движении товарной продукции и финансов на малом предприятии;

  • составлено техническое задание на разработку ПП автоматизированной системы поддержки принятия решений по учетутоварана малом мебельномпредприятии;

  • выбрана реализация модели данных;

  • разработаны алгоритмы системы поддержки принятия решений по учету товаров на малом предприятии;

  • разработано ПО для автоматизации основных процессов принятия решений по учетутоварной продукции и материалов на малом мебельном предприятии;

  • проведено комплексное тестирование разработанного ПП;

  • определена оценка экономической эффективности применения программного обеспечения и его цена.

  • обеспечена безопасность жизнедеятельности (БЖД) пользователей компьютерной техники в вычислительном центре при разработке ПП.

Данный программный продукт представляет собой информационную систему, которая содержит информацию о товарах на малом предприятии, а также данные о сотрудниках, поставщиках и клиентах.

Основными задачами программного продукта (ПП) являются:

Создание серверной части ПП содержащей БД, которая хранит информацию: о товарах; о поставщиках; о заказчиках; о банках; о договорах; о финансах.

Создание клиентской части для управления БД, основные функции которой:

  • добавление данных в БД;

  • изменение данных в БД;

  • удаление данных в БД;

  • реализация запросов;

  • формирование отчетов;

  • обеспечение защиты от несанкционированного доступа посредством создания категорий пользователей, имеющих ограничения по работе с данными.

ПП содержит информацию:

  • о товарах;

  • о поставщиках;

  • о заказах;

  • о накладных

  • о заказчиках;

  • о договорах;

  • о движении товара на складе;

  • о движении финансов.

ПП производит изменения в базе данных:

  • добавлять новую информацию о товарах, о фирмах (поставщики, заказчики) о поставке и продажи, об оплате;

  • изменять информацию о товарах, о фирмах, о поставке и продажи, об оплате;

  • удалять информацию о товарах, о фирмах, о поставке и продажи, об оплате;

  • реализовывать запросы: об остатке товара на складе, при приеме товара на склад, при отгрузке товара со склада;

  • формировать отчеты по счетам, накладным, движения товара, движения денежных средств.

Серверная часть ПП управляет БД, содержащей справочники: товаров; фирм-заказчиков; фирм-поставщиков; договоров; движения товаров; движения финансов. Клиентская часть ПП осуществляет обеспечение интерфейса между БД и серверной частью. ПП формирует отчеты по: счетам, накладным, движения товара, движения денег.ПП реализует запросы о наличии остатка товаров на складе. ПП работает в локальной сети.

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

Был сделан вывод, что условия работы в вычислительном центре соответствуют необходимым нормам и требованиям.

ПЕРЕЧЕНЬ ССЫЛОК

  1. Колесник, А.П. Компьютерные системы в управлении финансами [Текст]/Колесник А.П. - М.: "Финансы и статистика",1994. – 347 с.

  2. Ульман, Дж. Основы систем баз данных [Текст]/Ульман Дж. Пер. с англ. – М: “Финансы и статистика”, 1983. – 537 с.

  3. Конноли, Т. Дазы данных: проектирование, реализация и сопровождение [Текст]/Томасон Конноли и Каролин Бегг. М.: Издательство дом “Вильямс”. - 2000. – 658 с.

  4. Васильев, В.Г. Объектно-ориентированные БД: Взгляд изнутри [Текст]/Васильев В.Г. // Компьютеры + Программы – 1997 – №3 – С. 45-49.

  5. Иллингуорт, В. Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др. [Текст]/Пер. с англ. А.К. Белоцкого и др.; Под ред. Е.К. Масловского. - М.: Машиностроение, 1991. - 688 с.

  6. Глен, Дж. Проектирование реляционных бах данных для использования с микроЭВМ [Текст]/Дж. Глен. - М: Мир, 1991. – 705 с.

  7. Андреев, А.М., Березкин Д.В., Кантонистов Ю.А. Среда и хранилище: ООБД [Текст]/Андреев А.М., Березкин Д.В., Кантонистов Ю.А. // Мир ПК - 1998 - №4 - с.74-81

  8. Гради, Б. Объектно-орентированное проектирование с примерами [Текст]/Гради Буч. Пер. с англ. М.: Конкорд, 1992.

  9. Малярский, А.Н. Храните данные на базе [Текст]/Малярский А.Н., Неплохов В.Ю., Хруст В.А. // Мир ПК - 1997 - №2 - с.62-66.

  10. Гостлинг, Д. Язык программирования Java [Текст]/Гостлинг Д., Арнольд К. СПб: Питер. - 1997. – 477 с.

  11. Эккель, Б. Философия Java [Текст]/Эккель Б. Библиотека програмиста. СПб: Питер, 2001. - 351 с.

  12. Винкоп, С. Использование Microsoft SQL Server 7.0 [Текст]/Стефан Винкоп. - М, 1999

  13. Тараканов, К.В. Информатика [Текст]/Учебное пособие; Под ред. проф. Тараканова К.В. М.: “Книга”, 1986. 578 с.

  14. Единая система программной документации [Текст]/ - М: Издательство стандартов, 1988. – 322 с.

  15. Озкарахан Э. Машины баз данных и управление базами данных [Текст]/ Озкарахан Э. Пер. С англ. – М.: Мир, 1989. 472 с.

  16. Майерс, Г. Искусство тестирования программ [Текст]/Майерс Г. - М: Финансы и статистика, 1982. – 395 с.

  17. Майерс, Г. Надежность ПО [Текст]/Майерс Г. - М.: Мир, 1980. – 243 с.

  18. Свод законов о предпринимательской деятельности [Текст]/ К.:“Вища освіта”, 2001. – 158 с.

  19. Майнетт Т. Разработка программного обеспечения [Текст]/ Барби Тизли Майнетт. Перевод с английского. MVU. Львов-Днепропетровск, 1995.

  20. Нагао, М. Структуры и базы данных [Текст]/Нагао М., Катаяма T., Уємура С. Пер. с япон. – М.:Мир, 1986. – 197 с., ил.

  21. Ван Тассел, Д. Стиль, разработка, эффективность, отладка и испытание программ [Текст]/Ван Тассел Д.: Пер. с англ. – 2-е изд., испр., - М.: Мир, 1985. – 332 с.

  22. Маклаков, С.В. Bpwin и Erwin. Case – средства разработки информационных систем [Текст]/Маклаков С.В. – М.: ДИАЛОГ-МИФИ, 1999. – 256 с.

  23. Вагнер, Г. Основы исследования операций [Текст]/ Вагнер Г.– М.: Мир, 1972. – 333 с.

  24. Вентцель, Е.С. Исследование операций [Текст]/Вентцель Е.С.– М.: Советское радио,1972.- 488 с.

  25. Марка, Д.А. Методология структурного анализа и проектирования [Текст]/Марка Д.А., МакГоуэн К. М., "МетаТехнология", 1993. - с. 128-141.

  26. Шураков, В.В. Обеспечение сохранности информации в СОД [Текст]/Шураков В.В. Издательство “Финансы и статистика”, 1985.

  27. Спесивцев, А.В. Защита информации в персональных ЭВМ [Текст]/Спесивцев А.В., Вегнер В.А., КрутяковА.Ю. и др. М.: Радио и связь, МП Веста. – 1992 – 231 с.

  28. Шумаков, П.В. Delphi 5. Руководство разработчика баз данных [Текст]/ Шумаков П.В., Фаронов В.В. – М.: Нолидж, 2000. – 635 с

  29. Флэнэген, Д. Java in a Nutshell [Текст]/ Девид Флэнэген. К.: Издательская группа BHV, 1998. - 293 с.

Приложение A

Бизнес-план

ПриложениеБ

Безопасность жизни и деятельности человека

Приложение В

Слайды презентации

Приложение Г

Листинг фрагментов кода программ

ЗАПРОСЫ К БД

Выбор счета

SELECTDISTINCTROWСчета.*

FROMСчета

WHERE(((Счета.КодЗаказа)=[Forms]![Заказы]![КодЗаказа]));

10 самых дорогих товаров

SELECTDISTINCTROWTOP10 Товары.МаркаASСамыеДорогиеТовары, Товары.Цена

FROM Товары

ORDER BY Товары.Цена DESC;

Заказы

SELECT DISTINCTROW Заказы.КодЗаказа, Заказы.КодКлиента, Заказы.КодСотрудника, Заказы.ДатаРазмещения, Заказы.ДатаНазначения, Заказы.ДатаИсполнения, Заказы.Доставка, Заказы.СтоимостьДоставки, Заказы.НазваниеПолучателя, Заказы.АдресПолучателя, Заказы.ГородПолучателя, Заказы.ОбластьПолучателя, Заказы.ИндексПолучателя, Заказы.СтранаПолучателя, Клиенты.Название, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна

FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента;

Итоги продаж по объему

SELECT DISTINCTROW [Промежуточная сумма заказа].ПромежуточнаяСумма AS ОбъемПродаж, Заказы.КодЗаказа, Клиенты.Название, Заказы.ДатаИсполнения

FROM Клиенты INNER JOIN (Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа) ON Клиенты.КодКлиента = Заказы.КодКлиента

WHERE ((([Промежуточная сумма заказа].ПромежуточнаяСумма)>25000) AND ((Заказы.ДатаИсполнения) Between #1/1/1997# And #12/31/2008#));

Квартальные обороты

SELECT DISTINCTROW [Клиенты].[КодКлиента], [Клиенты].[Название], [Клиенты].[Город], [Клиенты].[Страна]

FROM Клиенты RIGHT JOIN Заказы ON [Клиенты].[КодКлиента]=[Заказы].[КодКлиента]

WHERE ((([Заказы].[ДатаРазмещения]) Between #1/1/2008# And #12/31/2008#));

Квартальные обороты по товарам

TRANSFORM Sum(CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100) AS СуммаПоТовару

SELECT [Товары].[Марка], [Заказы].[КодКлиента], Year([ДатаРазмещения]) AS ГодЗаказа

FROM Товары INNER JOIN (Заказы INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Товары].[КодТовара]=[Заказано].[КодТовара]

WHERE ((([Заказы].[ДатаРазмещения]) Between #1/1/2008# And #12/31/2008#))

GROUP BY [Товары].[Марка], [Заказы].[КодКлиента], Year([ДатаРазмещения])

PIVOT "Кв " & DatePart("q",[ДатаРазмещения],1,0) In ("Кв 1","Кв 2","Кв 3","Кв 4");

Клиенты и поставщики по городам

SELECT Город, Название, ОбращатьсяК, "Клиенты" AS [Отношения]

FROM Клиенты

UNION SELECT Город, Название, ОбращатьсяК, "Поставщики"

FROM Поставщики

ORDER BY Город, Название;

Продажи по годам

PARAMETERS Forms![Продажи по годам]!НачальнаяДата DateTime, Forms![Продажи по годам]!КонечнаяДата DateTime;

SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма, Format([ДатаИсполнения],"yyyy") AS Год

FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа

WHERE (((Заказы.ДатаИсполнения) Is Not Null And (Заказы.ДатаИсполнения) Between [Forms]![Продажи по годам]![НачальнаяДата] And [Forms]![Продажи по годам]![КонечнаяДата]));

Продажи по сотрудникам и странам

PARAMETERS [Начальная дата] DateTime, [Конечная дата] DateTime;

SELECT DISTINCTROW Сотрудники.Страна, Сотрудники.Фамилия, Сотрудники.Имя, Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма AS СуммаПродаж

FROM Сотрудники INNER JOIN (Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа) ON Сотрудники.КодСотрудника = Заказы.КодСотрудника

WHERE (((Заказы.ДатаИсполнения) Between [Начальная дата] And [Конечная дата]));

Продажи по типам

SELECT DISTINCTROW Типы.КодТипа, Типы.Категория, Товары.Марка, Sum([Сведения о заказах].ОтпускнаяЦена) AS ПродажиТовара

FROM Типы INNER JOIN (Товары INNER JOIN (Заказы INNER JOIN [Сведения о заказах] ON Заказы.КодЗаказа = [Сведения о заказах].КодЗаказа) ON Товары.КодТовара = [Сведения о заказах].КодТовара) ON Типы.КодТипа = Товары.КодТипа

WHERE (((Заказы.ДатаРазмещения) Between #1/1/1997# And #12/31/2008#))

GROUP BY Типы.КодТипа, Типы.Категория, Товары.Марка

ORDERBYТовары.Марка;

SELECT DISTINCTROW [Продажи товаров в 2008].Категория, Sum([Продажи товаров в 2008].ПродажиТоваров) AS ПродажиПоТипам

FROM [Продажи товаров в 2008]

GROUP BY [Продажи товаров в 2008].Категория;

SELECT DISTINCTROW [Типы].[Категория], [Товары].[Марка], Sum(CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100) AS ПродажиТоваров, "Кв " & DatePart("q",[ДатаИсполнения]) AS КварталИсполнения

FROM (Типы INNER JOIN Товары ON [Типы].[КодТипа]=[Товары].[КодТипа]) INNER JOIN (Заказы INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Товары].[КодТовара]=[Заказано].[КодТовара]

WHERE ((([Заказы].[ДатаИсполнения]) Between #1/1/2008# And #12/31/2008#))

GROUP BY [Типы].[Категория], [Товары].[Марка], "Кв " & DatePart("q",[ДатаИсполнения]);

Промежуточная сумма заказа

SELECT DISTINCTROW [Заказано].[КодЗаказа], Sum(CCur([Цена]*[Количество]*(1-[Скидка])/100)*100) AS ПромежуточнаяСумма

FROM Заказано

GROUP BY [Заказано].[КодЗаказа];

Сведения о заказах

SELECT DISTINCTROW [Заказано].[КодЗаказа], [Заказано].[КодТовара], [Товары].[Марка], [Заказано].[Цена], [Заказано].[Количество], [Заказано].[Скидка], CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100 AS ОтпускнаяЦена

FROM Товары INNER JOIN Заказано ON [Товары].[КодТовара]=[Заказано].[КодТовара]

ORDER BY [Заказано].[КодЗаказа];

Список имеющихся товаров

SELECT [Список товаров].КодТовара, [Список товаров].Марка

FROM Товары AS [Список товаров]

WHERE ((([Список товаров].ПоставкиПрекращены)=No))

ORDER BY [Список товаров].Марка;

Список товаров

SELECT DISTINCTROW Товары.*, Типы.Категория

FROM Типы INNER JOIN Товары ON Типы.КодТипа = Товары.КодТипа

WHERE (((Товары.ПоставкиПрекращены)=No));

Сумма продаж по кварталам

SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма

FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа

WHERE (((Заказы.ДатаИсполнения) Is Not Null))

ORDER BY Заказы.ДатаИсполнения;

Сумма продаж по годам

SELECT DISTINCTROW Заказы.ДатаИсполнения, Заказы.КодЗаказа, [Промежуточная сумма заказа].ПромежуточнаяСумма

FROM Заказы INNER JOIN [Промежуточная сумма заказа] ON Заказы.КодЗаказа = [Промежуточная сумма заказа].КодЗаказа

WHERE (((Заказы.ДатаИсполнения) Is Not Null))

ORDER BY Заказы.ДатаИсполнения;

Счета

SELECT DISTINCTROW [Заказы].[НазваниеПолучателя], [Заказы].[АдресПолучателя], [Заказы].[ГородПолучателя], [Заказы].[ОбластьПолучателя], [Заказы].[ИндексПолучателя], [Заказы].[СтранаПолучателя], [Заказы].[КодКлиента], [Клиенты].[Название], [Клиенты].[Адрес], [Клиенты].[Город], [Клиенты].[Область], [Клиенты].[Индекс], [Клиенты].[Страна], [Имя] & " " & [Фамилия] AS Продавец, [Заказы].[КодЗаказа], [Заказы].[ДатаРазмещения], [Заказы].[ДатаНазначения], [Заказы].[ДатаИсполнения], [Доставка].[Название], [Заказано].[КодТовара], [Товары].[Марка], [Заказано].[Цена], [Заказано].[Количество], [Заказано].[Скидка], CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100 AS ОтпускнаяЦена, [Заказы].[СтоимостьДоставки]

FROM Товары INNER JOIN (Сотрудники INNER JOIN (Клиенты INNER JOIN ((Доставка INNER JOIN Заказы ON [Доставка].[КодДоставки]=[Заказы].[Доставка]) INNER JOIN Заказано ON [Заказы].[КодЗаказа]=[Заказано].[КодЗаказа]) ON [Клиенты].[КодКлиента]=[Заказы].[КодКлиента]) ON [Сотрудники].[КодСотрудника]=[Заказы].[КодСотрудника]) ON [Товары].[КодТовара]=[Заказано].[КодТовара];

Товары по типам

SELECT DISTINCTROW Типы.Категория, Товары.Марка, Товары.ЕдиницаИзмерения, Товары.НаСкладе, Товары.ПоставкиПрекращены

FROM Типы INNER JOIN Товары ON Типы.КодТипа = Товары.КодТипа

WHERE (((Товары.ПоставкиПрекращены)<>Yes))

ORDER BY Типы.Категория, Товары.Марка;

Товары с ценой выше средней

SELECT DISTINCTROW Товары.Марка, Товары.Цена

FROM Товары

WHERE (((Товары.Цена)>(SELECT AVG([Цена]) From Товары)))

ORDER BY Товары.Цена DESC;

Приложение Д

Рисунок Д.1 - Логическая модель предметной области

Рисунок Д.2 - Физическая модель предметной области

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]