Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Современные языки программирования (Основные сведения о языке программирования С#)

Содержание:

ВВЕДЕНИЕ

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

Объектно-ориентированный язык программирования - язык, построенный на принципах объектно-ориентированного программирования. В основе концепции объектно-ориентированного программирования лежит понятие объекта - некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).

В современных объектно-ориентированных языках используются механизмы:

– наследование. Создание нового класса объектов путём добавления новых элементов (методов). Некоторые ОО языки позволяют выполнять множественное наследование, то есть объединять в одном классе возможности нескольких других классов;

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

– полиморфизм. При полиморфизме некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается. В объектно-ориентированном программировании обычно применяется полиморфизм подтипов (называемый при этом просто «полиморфизмом»), нередко в форме позднего связывания.

К объектно-ориентированным языкам программирования относятся следующие: C#; C++; F#; Java; Delphi; Eiffel; Simula; D; Io; Objective-C; Swift; Object Pascal; VB.NET; Visual DataFlex; Perl; PowerBuilder; Python; Scala; ActionScript (3.0); Dylan; JavaScript; JScript .NET; Ruby; Smalltalk; Ada; Xbase++; X++; Vala; PHP; Cyclone.

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

Объект исследования – языки программирования.

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

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

В соответствии с целью была определена необходимость постановки и решения следующих задач:

– описать основные сведения о языках программирования С# и Java;

– описать объектные средства языков программирования С# и Java;

– описать особенности языка программирования Delphi;

– разработать логическую структуру системы;

– разработать программную систему.

Глава 1. Современные языки программирования

1.1. Основные сведения о языке программирования С#

Язык программирования C# представляет собой объектно-ориентированный язык программирования, который был разработан в 1998-2001 годах группой инженеров при постоянном руководстве Андерса Хейлсберга в компании Microsoft как язык программирования для выполнения разработки приложений под платформу от корпорации Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и стандарт ISO/IEC 23270 [1].

Объектно-ориентированный язык программирования C# можно отнести к семейству языков программирования которые имеют C-подобный синтаксис, из них его внутренний синтаксис является наиболее приближенным к языку программирования C++ и Java. Язык программирования C# включает полиморфизм, поддерживает механизм статической типизации, перегрузку используемых операторов, атрибуты, свойства, делегаты, итераторы, обобщённые типы и методы, анонимные функции, поддерживающие замыкания, LINQ, различные исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Pascal, Модула, Smalltalk и, в особенности, Java - С#, опираясь на практику их практического использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов [3].

C# был разработан в качестве языка программирования прикладного уровня для CLR и, который зависит от возможностей самой CLR. Это касается системы использования типов данных языка программирования C#, которая отражает BCL. Отсутствие или присутствие тех или иных особенностей языка программирования диктуется тем, что может ли языковая особенность языка программирования быть транслирована в конструкции CLR [5].

На протяжении разработки языка C# было выпущено несколько его версий, рис. 1.

Рисунок 1. Версии языка программирования C#

Таким образом, с развитием CLR от версии 1.1 к версии 2.0 достаточно сильно обогатился и сам язык программирования C#; подобного взаимодействия можно было ожидать и в дальнейших версиях языка программирования (однако, эта закономерность была нарушена с выходом языка C# 3.0, который представляет собой расширение языка, которое не опирается на расширения платформы технологии .NET). CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, большинство возможностей, которых не имеют «классические» языки программирования.

Например, выполнение сборка мусора не была реализована в самом языке C#, а выполняется CLR для программ, которые написаны на языке C# точно так же, как это выполняется для программ на языке VB.NET, J# и др.

Существует несколько реализаций объектно-ориентированного языка программирования C#:

– проект Mono включает в себя реализацию языка программирования C# с открытым исходным кодом;

– проект DotGNU также включает компилятор языка программирования C# с открытым кодом;

– реализация языка программирования C# в виде компилятора csc.exe была включена в состав платформы .NET Framework (включая .NET Micro Framework, .NET Compact Framework);

– в составе проекта Rotor компании Microsoft;

– проект dotNetAnywhere ориентирован на встраиваемые системы, реализация CLR, выполняется поддержку практически всех спецификаций языка программирования C# 2.0 [4].

Таким образом, объектно-ориентированный язык программирования С# имеет множество особенностей, однако он во многом схож с языком программирования Java.

1.2. Отличия языков программирования C# и Java

Языки программирования C# и Java используют в качестве синтаксической основы язык программирования C. В частности, от него были унаследованы без каких-либо серьезных изменений:

– использование синтаксиса описания и использования внутренних переменных и специальных функций (порядок «тип имя», использование специализированных модификаторов, обязательным условием является наличие скобок для функций, описания формальных параметров);

– использование обозначений начала и конца блоков разрабатываемого программного кода фигурными скобками;

– использование различных обозначений, ассоциативности и приоритета основных встроенных операций, к которым можно отнести побитовые, логические операции, присвоение, арифметические, операции декремента и инкремента, тернарная условная операция «?:»);

– синтаксис всех основных конструкций: циклов, встроенных оператора множественного выбора, условного оператора выбора [10].

Механизм работы с динамическими данными и сборка мусора в языке программирования.

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

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

И в языке программирования Java, и в C# есть сильные и слабые ссылки на объекты. Оба языка поддерживают методы-финализаторы. Из-за неопределённости момента удаления объекта финализаторы не могут использоваться для освобождения системных ресурсов, занятых объектом, что вынуждает создавать дополнительные методы для «очистки» объекта и вызывать их явно [6].

Язык программирования Java позволяет выполнить регистрацию слушателей (listener), которые будут получать определенные информационные сообщения, когда ссылка будет подвергнута операции сборки мусора, что обеспечивает улучшение производительности WeakHashMaps.

Язык программирования C# позволяет выполнить отмену использования различных специальных финализаторов для некоторых обрабатываемых объектов специальным методом GC.SuppressFinalizes(obj) (напр., выполнение конструирования запросов SQL на файловом потоке). Это может понадобиться для выполнения процессов финализации и считается довольно дорогой операцией в процессе непосредственного выполнения сборки мусора. Язык программирования C# в стандартной библиотеке содержит интерфейс IDisposables и специальную конструкцию using, которая гарантирует выполнение своевременного вызова необходимых метода очистки.

1.3. Объектные средства языков программирования C# и Java

Объектные средства языков программирования C# и Java можно обозначить по следующим основным характеристикам: инкапсуляция; внутренние классы; методы. Рассмотрим более подробно каждую характеристику.

Инкапсуляция.

В языке программирования Java модификатор protected в описании, помимо выполнения доступа из классов-потомков, разрешается доступ из всех классов, которые входят в тот же пакет, что и класс-владелец.

В C# для объектов, которые должны быть видны в пределах сборки введён специальный модификатор internal (аналог default в языке программирования Java), а protected позволяет сохранить свой изначальный смысл, который был взят из языка программирования C++ - доступ выполняется только из классов-потомков [21]. Допускается выполнять некоторую комбинацию методов доступа к членам класса protected и internal в этом случае получается область доступа, которая соответствует типу доступа protected в языке программирования Java.

Внутренние классы.

Оба языка обеспечивают определение класса внутри пользовательского класса. В языке программирования Java внутренние классы могут быть использованы для эмуляции замыканий. Внутренние классы языка программирования Java имеют доступ к нестатическим членам родительского класса, то есть «знают о this»; кроме того, внутри методов может быть определены локальные классы, которые имеют доступ чтения ко всем локальным переменным, и безымянным локальным классам, которые фактически обеспечивают создание экземпляров объектов и интерфейсов, которые позволяют перекрывать методы своего класса, в месте их использования [9].

На данном механизме в Java-программе мжет быть выполнена обработка различных событий (событие позволяет сгенерировать вызовы методов, в исходном классе-обработчике который является абстрактным; там, где нужен определенный обработчик для событий, программисты создают экземпляры анонимного локального класса, который является наследником базового класса-обработчика и непосредственно может быть использован). Таким образом, проадает необходимость в специальных типах и наличии синтаксической поддержки для определенных событий, но сам код, который создает обработчики, немного более сложен для его понимания разработчиком.

В языке программирования C# есть лямбды и замыкания. Подход C# более напоминает язык программирования C++: внутренние классы в C# могут получить специальный доступ только к статическим членам внешних классов, а для выполнения доступа к нестатическим членам необходимо выполнить явное указание на экземпляр внешнего класса. В тоже время, внутренние локальные классы в языке программирование C# и не поддерживаются [22].

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

Методы.

В обоих языках методы могут быть определены через функции классов. Тело метода может быть расположено внутри описания определенного класса. Также, поддерживаются языками программировния C# и Java абстрактные методы и статические методы. В C# представлены механизмы явной реализации методов интерфейса, что обеспечивает классам реализовывать методы интерфейса отдельно от собственных методов или давать разные реализации одноимённых методов, которые принадлежат различным интерфейсам [12].

В объектно-ориентированном языке программирования Java базовые типы (byte, int, double, float, bool и пр.) могут быть переданы по значению, а для остальных (объектные) по значению может быть передана ссылка на необходимый объект.

В C# запрещено давать методам название, которое совпадает с названием некоторого класса, что позволяет устранить ошибки (в Java программисты могут определять конструктор, который будет на самом деле являться методом).

В языке программирования C# в дополнение к примитивным типам можно передавать по значению структуры (struct), остальные типы могут быть переданы по ссылке. В объектно-ориентированном языке программирования C# поддерживается явное описание выполнения передачи необходимых параметров по ссылке с использованием ключевых слов out и ref. В процессе использования out компилятор выполняет контроль наличия в методе присваивания определенных значений. Использовать их необходимо при работе с неуправляемым кодом, который это требует (например, Winapi), так как это нарушает концепцию объектно-ориентированного программирования.

1.4. Основные сведения о языке программирования Delphi

Delphi (Делфи, произносится /ˈdɛlˌfi:/) - императивный, структурированный, объектно-ориентированный язык программирования со строгой статической типизацией переменных. Основная область использования - написание прикладного программного обеспечения.

Первоначально носил название Object Pascal и исторически восходит к одноимённому диалекту языка, разработанному в фирме Apple в 1986 году группой Ларри Теслера [20]. Однако в настоящее время термин Object Pascal чаще всего употребляется в значении языка среды программирования Delphi. Начиная с Delphi 7, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Delphi 7 представляет собой среду, предназначенную для визуального проектирования приложений для Windows с развитыми механизмами повторного использования программного кода. У Delphi, как и у многих других крупных компаний, есть конкуренты. Им является всем знакомая среда разработки Microsoft Visual C++, которая имеет свои преимущества и недостатки, но являющаяся более популярной, в основном, из-за того, что была разработана именно фирмой Microsoft.

Отличительной чертой Delphi является модель компонентной разработки программных продуктов. Суть модели заключается в поддержке системного постоянно расширяемого набора объектных компонентов, из которых строится сама программа. В Delphi Компоненты очень просты для развития и использования. Как результат покрытия значительной части той структуры программы, которая близка к взаимодействию с операционной системой.

Интегрированная среда разработки Turbо Dеlphi была разработана компанией CоdeGеar, которая ориентирована на студентов, частных пользователей и начинающих программистов. Данная среда разработки основана на языке программирования Dеlphi. Основным отличием данного программного продукта является бесплатная версия компилятора Turbо Dеlphi Explоrer [19].

Среда разработки Dеlphi – одна из первых систем, которая занялась быстрой разработкой приложений (RАD) и технологию визуального конструирования. Технология Visuаl Dеsign содержит готовые компоненты, из которых будет строится интерфейс будущей программы.

Меню представляет из себя быстрый и гибкий интерфейс для среды разработки Delphi, может управляться по набору горячих клавиш. Это удобно потому, что здесь используются слова или короткие фразы, которые более точные и понятные, чем иконки или пиктограммы. Также можно использовать меню для выполнения широкого круга задач; наиболее общих задач вроде управления отладчиком, открытия и закрытия файлов или настройкой среды программирования [16].

Среда разработки Delphi является средой программирования, в которой сочетаются простота и удобство с мощью и гибкостью объектно-ориентированного программирования. Она обеспечивает визуальное проектирование пользовательского интерфейса и уникальные по своей простоте и мощи средства доступа к базам данных, например, с легкостью можно организовать доступ к базе данных Access, Paradox.

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

Несмотря на относительно невысокую общую оценку пользовательских свойств Pаrаdох, средства помощи в этом пакете выполнены отлично. Новые эксперты облегчают создание БД. Эксперт по базам данных создаёт все приложения. Включая таблицы, отчеты и формы. Если не нужно создавать законченное реляционное приложение или желаете необходимо установить свои связи между таблицами, то можно воспользоваться утилитой Таblе Ехреrt (эксперт по таблицам). Эта программа предлагает большой набор шаблонов для использования не только в личных, но и в деловых целях. В ряду других новых полезных средств – Эксперт диаграмм (Сhаrt Еxреrt), Эксперт почтовых отправлений (Маil Меrgе Ехреrt), работающий с редакторами Wоrd и Wоrd Pеrfесt, и Эксперт импортирования текстовых файлов (Теxt Imроrt Ехреrt) [2].

Система управления базами данных Miсrоsоft Ассеss (СУБД) включает все необходимые инструментальные средства для создания локальной базы данных, общей БД в локальной сети с файловым сервером или создания приложения пользователя, работающего с БД на SQL- сервере. Access входит в состав Microsoft Оffiсе, что делает его интерфейс знакомым и привычным, а следовательно облегчает работу.

В среде разработки Dеlрhi нет никаких сложных конструкций и при этом она не уступает С++ по своим возможностям. Скорость работы созданных программ на Dеlрhi не меньше, чем у программ, которые создавались на С++. Разница будет заметна при большом объёме математических вычислений, но небольшая. Это объясняется отличной способностью оптимизации программ компилятора С++. Но чем лучше оптимизация программ, тем больше это занимает времени, что отражается на процессе разработки программ. Здесь, несомненно, преимущество компилятора у Dеlрhi, который позволяет почти мгновенно внести изменения и проверить результат. На это затрачивается очень мало времени, в отличии от языка С++, где приходится тратить не малую часть рабочего времени на ожидание окончания работы компилятора [18].

К основным особенностям сред разработки Тurbо Dеlрhi относятся: поддержка сразу нескольких языков программирования, визуальное создание прикладным программ, использование уже готовых компонентов для будущих программ, введение множества технологий, ускоряющих и облегчающих написание программ возможность создания программ под разные платформы.

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

Компоненты среды программирования Delphi являются, по существу, просто специализированными внутренними объектами, и их функционирование определяется объектно-ориентированной Visual Component Library (архитектурой библиотеки визуальных компонентов). Сокращённо – VCL [8].

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

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

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

Delphi предлагает пользователю довольно мощный набор компонентов для работы с базами данных. Причём практически неважно, какой именно БД пользуется приложение – это может быть и промышленный сервер, и локальная БД, MS SQL Server или Oracle [11].

Dеlрhi, как среда разработки, очень проста и логична. Основные конструкции языка четко выделяются в программе. Это способствует хорошему восприятию написанного кода, в отличие от языка программирования Visuаl Bаsiс, где код понять очень тяжело, если его количество превышает несколько страниц.

Графический интерфейс Dеlрhi отлично продуман, а среда разработки предоставляет доступ только к тем участкам кода, с которыми необходимо работать, скрывая основную часть программы, которая создается автоматически самой средой разработки.

Среда Dеlрhi легко расширяется установкой дополнительных модулей. Пользовательский интерфейс также хорошо настраиваемый - каждый организует рабочее пространство так, как ему будет удобно.

Dеlрhi рассчитан на работу с операционной системой Windоws. Его все шире используют в коммерческих разработках, благодаря большому набору полностью готовых для работы специальных компонентов.

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

В Delphi формальное начало всех программ четко отличается от других участков программного кода и располагается в определенном, единственном в рамках исполняемого программного проекта, исходном файле имеющим расширение dpr (тогда как другие файлы исходных текстов программы имеют расширение pas).

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

В Delphi переменных, идентификаторы типов и ключевые слова читаются независимо от их регистра: например следующий идентификатор SomeVar будет эквивалентен идентификатору somevar. Регистро-зависимые идентификаторы в начале компьютерной эпохи позволяли ускорить процесс выполнения программной компиляции, и кроме того, обеспечивали использование очень коротких имен, порой отличающиеся лишь своим регистром [13].

И хотя к настоящему времени обе эти практики − использование множества идентификаторов, которые различались лишь своим регистром, равно как и их лаконичность, осуждаются и не рекомендуются к использование, практически все унаследованные от С языки − C++, Java, C# − являются регистро-зависимыми, что, с одной стороны, требует достаточно большой внимательности к выполнению объявления и использования различных идентификаторов, а с другой допускается выполнение написания кода в трудночитаемом стиле [15].

В Delphi в исходных файла pas (которые, в большинстве случаев содержат основное тело программы) на уровне языковых средств введено четкое разделение на раздел реализации и интерфейсный раздел. Интерфейсная часть содержит лишь необходимые объявления типов и методов, тогда как код реализации в интерфейсной части не допускается на уровне выполнения компиляции.

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

В языках программирования C# и Java такое разделение устранено вовсе − реализация метода следует сразу после его объявления. Инкапсуляция обеспечивается лишь принадлежностью метода к той или иной области видимости используемого объекта. Для выполнения просмотра одной только интерфейсной части модуля исходного программного кода необходимо использовать специальные внутренние средства языка программирования [14].

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

В отличие от C++, язык программирования C# содержит унаследованной от языка программирования Delphi концепцию свойств класса: псевдополей, которые, в некоторых случаях, могут более интуитивно, в сравнении с методами, отражать, а также изменять определенное состояние объектов.

В Delphi объектно-ориентированное и объектное программирование хоть и поощряется, однако не может быть единственно возможным. Так, может быть выполнено (в отличие от C#) использование и объявление статических иди глобальных переменных и функций [17].

Язык программирования C# принудительно является объектным. Глобальные, без привязки к классу, функции запрещаются. Value-типы, наподобие структур struct, являются унаследоваными от общего типа C#, несмотря на то, что сами по себе они не могут быть унаследованы. Вместе с тем, экземпляры классов C# являются неявно-ссылочными типами, как и в Delphi.

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

Кроме того, в отличие от C# и C++, где вызов конструктора базового класса непременно осуществляется ещё до входа в тело конструктора унаследованного класса, в Delphi этот вызов делается явно. Таким образом, его можно отложить или вовсе опустить в специальных целях. Очевидно, в отличие от C#, возможен контроль над исключениями в базовых конструкторах.

Глава 2. Практическая реализация программной системы

2.1. Логическое проектирование системы

В качестве демонстрации возможностей языка программирования C# будет разработана программная система для авиакомпании «Мария».

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

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

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

Рисунок 2. Концептуальная модель базы данных

Концептуальная модель базы данных имеет следующие отношения между атрибутами:

– клиент приобретает турпутевку;

– страховой полис оформляется для турпутевки;

– турпутевка относится к группе;

– организация обеспечивает договор;

– турпутевка заключается в рамках договора;

– сотрудник работает на должности;

– сотрудник оформляет турпутевку.

База данных информационной системы включает следующие информационные таблицы:

– таблица «Турпутевка» включает следующие реквизиты: код турпутевки; наименование турпутевки; код клиента; код группы; код сотрудника; дата расчета; код договора; дата с; дата по; код страхового полиса; цена;

– таблица «Договор» включает следующие реквизиты: код договора; наименование договора; дата составления; код организации; детали договора;

– таблица «Группа» включает следующие реквизиты: код группы; наименование группы;

– таблица «Организация» включает следующие реквизиты: код организации; наименование организации; ИНН; КПП; ОГРН; адрес; контактный телефон; электронный адрес;

– таблица «Клиент» включает следующие реквизиты: код клиента; ФИО клиента; адрес; паспортные данные; контактный телефон; электронный адрес;

– таблица «Сотрудник» включает следующие реквизиты: код сотрудника; ФИО сотрудника; адрес; паспортные данные; контактный телефон; электронный адрес;

– таблица «Страховой полис» включает следующие реквизиты: код страхового полиса; дата составления; сумма страхования; период страхования с; период страхования по; программа страховки;

– таблица «Должность» включает следующие реквизиты: код должности; наименование должности.

2.2. Разработка интерфейса системы

Проект главной пользовательской формы представлено на рис. 3. Для более наглядного вида в форме использован компонент Image с картинкой и главное меню.

Рисунок 3. Проектирование главной формы

Интерфейс разработки главного меню информационной системы представлен на рис. 4.

Главное меню разрабатываемой информационной системы включает следующие пункты: справочники; документы; отчеты; выход.

Для перехода к справочнику «Клиент» в информационной системе был разработан следующий код.

Программный код основных форм информационной системы представлен в Приложении.

private void клиентToolStripMenuItem_Click(object sender, EventArgs e)

{

s_klient form = new s_klient();

this.Hide();

form.ShowDialog();

this.Show();

}

Рисунок 4. Проектирование главного меню

Для организации работы справочников были использованы следующие компоненты: dbDataSet; BindingSource; TableAdapter; tableAdapterManager; BindingNavigator.

Вывод записей базы данных выполняется посредствам компонента dataGridView1.

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

SELECT Договор.[Код договора], Договор.[Наименоание договора], Договор.[Дата составления], Организация.[Наименование организации], Клиент.[ФИО клиента], Группа.[Наименование группы], Договор.[Детали договора] FROM Клиент INNER JOIN (Группа INNER JOIN ((Организация INNER JOIN Договор ON Организация.[Код организации] = Договор.[Код организации]) INNER JOIN Турпутевка ON Договор.[Код договора] = Турпутевка.[Код договора])

Проект формы данного отчета имеет следующий вид, представленный на рис. 5.

Рисунок 5. Проектирование отчета «Информация по клиентам»

Обработчик формы включает следующий программный код

private void button1_Click(object sender, EventArgs e)

{

// связываем запрос с файлом базы данных

string temp = null;

string a = comboBox1.Text; ;

string b = "WHERE (((Клиент.[ФИО клиента])= '" + a + "'))";

temp = CmdText + b;

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(temp, ConnString);

// создание объекта типа DataSet

DataSet ds = new DataSet();

// заполнение таблицы "Договор"

dataAdapter.Fill(ds, "[Договор]");

dataGridView1.DataSource = ds.Tables[0].DefaultView;

}

Таким образом, была представлена технология разработки пользовательских форм и перечислены программные компоненты, которые были использованы при конструировании форм. Среди программных решений была использована технология SQL-запросов позволившая эффективно работать с файлами базы данных информационной системы и это позволило достичь высокой производительности системы.

2.3. Порядок работы с системой

Для того чтобы запустить информационную систему необходимо открыть файл program.exe.

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

Интерфейс главной формы информационной системы представлен на рис. 6.

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

Воспользовавшись пунктом меню «Справочники» пользователю предоставляется возможность работы со следующими справочниками: клиент; организация; группа; сотрудник; должность.

Пользовательская форма «Клиент» предоставляет возможности просмотра, редактирования оперативной информации о клиентах организации. Интерфейс данной формы представлен на рис. 7.

Рисунок 6. Главное меню

Рисунок 7. Форма «Клиент»

Пользовательская форма «Организация» предоставляет возможности просмотра, редактирования справочной информации о организации. Интерфейс формы «Организация» представлен на рис. 8.

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

Рисунок 8. Форма «Организация»

Рисунок 9. Форма «Группа»

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

Рисунок 10. Форма «Сотрудник»

Пользовательская форма «Должность» предоставляет возможности просмотра, редактирования оперативной информации о должностях сотрудников. Интерфейс данной формы представлен на рис. 11.

Рисунок 11. Форма «Должность»

Воспользовавшись пунктом меню «Документы» пользователю предоставляется возможность работы со следующими документами: договор; страховой полис; турпутевка.

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

Рисунок 12. Форма «Договор»

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

Рисунок 13. Форма «Страховой полис»

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

Интерфейс пользовательской формы «Туристическая путевка» представлен на рис. 14.

Рисунок 14. Форма «Туристическая путевка»

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

Работа с запросом «Комплектование групп» выполняется по средствам использования специальной формы. При помощи специального поля, расположенного внизу формы, необходимо выбрать нужную группу и нажать на кнопку «Отобрать», в результате будет сформирован список клиентов по указанной группе, рис. 15.  

Рисунок 15. Результат формирования запроса

Работа с пользовательским запросом «Информация по клиентам» выполняется по средствам использования специальной формы.

При помощи специального поля, расположенного внизу интерфейсной формы, необходимо выбрать необходимого клиента и нажать на кнопку «Отобрать», в результате будет сформирована информация о указанном клиенте, рис. 16.

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

Рисунок 16. Результат формирования запроса

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

ЗАКЛЮЧЕНИЕ

результаты. Возможности современных объектно-ориентированных языков программирования высокого уровня позволяют реализовать практически любую задачу. Языки программирования используют все новые и новые функции и проведенный анализ в данной работе позволит определить, в сравнении, особенности следующих языков программирования: C#; Java; C++; Delphi.

C# был разработан как язык программирования прикладного уровня для CLR и, как таковой, зависящий от возможностей самой CLR. Это касается системы типов C#, которая отражает BCL. Существует несколько реализаций объектно-ориентированного языка программирования C#: проект Mono включает в себя реализацию языка программирования C# с открытым исходным кодом; проект DotGNU также включает компилятор языка программирования C# с открытым кодом; реализация языка программирования C# в виде компилятора csc.exe была включена в состав платформы .NET Framework.

Анализируя отличия языка программирования C# от Java было установлено, что в языке программирования C# в дополнение к примитивным типам передаются по значению структуры (struct), остальные типы передаются по ссылке. В обоих языках программирования методы определяются через функции класса. Тело метода располагается внутри описания класса.

Delphi является императивным, структурированным, объектно-ориентированным языком программирования со строгой статической типизацией переменных. Основная область использования - написание прикладного программного обеспечения.

К основным особенностям среды разработки Тurbо Dеlрhi можно отнести следующее: поддержка сразу нескольких языков программирования высокого уровня, визуальное создание прикладных программ, использование уже готовых компонентов для будущих программ, введение множества технологий, ускоряющих и облегчающих написание программ возможность создания программ под разные платформы.

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

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

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Афонин В.В. Моделирование систем: учебно-практическое пособие / В.В. Афонин, С.А. Федосин. - М.: Интуит, 2016. – 231 c.
  2. Венделева М.А. Информационные технологии в управлении.: Учебное пособие для бакалавров / М.А. Венделева, Ю.В. Вертакова. - Люберцы: Юрайт, 2016. – 462 c.
  3. Гома Х. UML. Проектирование систем реального времени, распределенных и параллельных приложений / Х. Гома. - М.: ДМК, 2016. – 700 c.
  4. Дарков А.В. Информационные технологии: теоретические основы: Учебное пособие / А.В. Дарков, Н.Н. Шапошников. - СПб.: Лань, 2016. – 448 c.
  5. Довек Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. – 134 c.
  6. Долганова О.И. Моделирование бизнес-процессов: Учебник и практикум для академического бакалавриата / О.И. Долганова, Е.В. Виноградова, А.М. Лобанова. - Люберцы: Юрайт, 2016. – 289 c.
  7. Информатика для экономистов: учебник для академического бакалавриата/Под ред. В.П. Полякова.- М.: Юрайт, 2015. – 524 с.
  8. Информатика и информационно-коммуникационные технологии (ИКТ): Учебное пособие / Н.Г. Плотникова. - М.: ИЦ РИОР: НИЦ ИНФРА-М, 2014. - 124 c.
  9. Информационные системы и технологии: Научное издание. / Под ред. Ю.Ф. Тельнова. - М.: ЮНИТИ, 2016. – 303 c.
  10. Информационные технологии: Учебное пособие / Л.Г. Гагарина, Я.О. Теплова, Е.Л. Румянцева и др.; Под ред. Л.Г. Гагариной - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. – 320 c.
  11. Кашаев С.М. 1С: Предприятие 8.2. Программирование и визуальная разработка на примерах / c.М. Кашаев. - СПб.: BHV, 2014. – 320 c.
  12. Козлов В.Н. Системный анализ, оптимизация и принятие решений / В.Н. Козлов. - М.: Проспект, 2016. – 176 c.
  13. Косиненко Н.С. Информационные системы и технологии в экономике: Учебное пособие для бакалавров / Н.С. Косиненко, И.Г. Фризен. - М.: Дашков и К, 2015. – 304 c.
  14. Лукин В.Н. Введение в проектирование баз данных / В.Н. Лукин. - М.: Вузовская книга, 2015. – 144 c.
  15. Моделирование экономических процессов: Учебник. / Под ред. М.В. Грачевой, Ю.Н. Черемных . - М.: ЮНИТИ, 2015. – 543 c.
  16. Программирование в алгоритмах / Окулов С.М., – 6-е изд., (эл.) - М.:Лаборатория знаний, 2017. – 386 с.
  17. Программирование графики на С++. Теория и примеры : учеб. пособие / В.И. Корнеев, Л.Г. Гагарина, М.В. Корнеева. – М. : ИД «ФОРУМ» : ИНФРА-М, 2018. – 517 с.
  18. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев ; под ред. Л.Г. Гагариной. – М. : ИД «ФОРУМ» : ИНФРА-М, 2018. – 512 с.
  19. Программирование на языке высокого уровня. Программирование на языке Object Pascal : учеб. пособие / Т.И. Немцова, С.Ю. Голова, И.В. Абрамова ; под ред. Л.Г. Гагариной. – М. : ИД «ФОРУМ» : ИНФРА-М, 2018. – 496 с.
  20. Романова Ю.Д. Информационные технологии в управлении персоналом: Учебник и практикум / Ю.Д. Романова, Т.А. Винтова, П.Е. Коваль. - Люберцы: Юрайт, 2016. – 291 c.
  21. Сальникова Л.С. Современные коммуникационные технологии в бизнесе: Учебник / Л.С. Сальникова. - М.: Аспект-Пресс, 2015. – 296 c.
  22. Советов Б.Я. Информационные технологии: теоретические основы: Учебное пособие / Б.Я. Советов, В.В. Цехановский. - СПб.: Лань, 2016. – 448 c.

ПРИЛОЖЕНИЕ

Исходный код программы

Форма отчета «Комплектование групп»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace program

{

public partial class o_komplgrcs : Form

{

public string CmdText = "SELECT Турпутевка.[Код турпутевки], Турпутевка.[Наименование турпутевки], Клиент.[ФИО клиента], Группа.[Наименование группы], Сотрудник.[ФИО сотрудника], Турпутевка.[Дата расчета], Договор.[Код договора], Турпутевка.[Дата с], Турпутевка.[Дата по], [Страховой полис].[Код страхового полиса], Турпутевка.Цена FROM [Страховой полис] INNER JOIN (Договор INNER JOIN (Сотрудник INNER JOIN (Группа INNER JOIN (Клиент INNER JOIN Турпутевка ON Клиент.[Код клиента] = Турпутевка.[Код клиента]) ON Группа.[Код группы] = Турпутевка.[Код группы]) ON Сотрудник.[Код сотрудника] = Турпутевка.[Код сотрудника]) ON Договор.[Код договора] = Турпутевка.[Код договора]) ON [Страховой полис].[Код страхового полиса] = Турпутевка.[Код страхового полиса]";

// подключаем файл базы данных

public string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";

public o_komplgrcs()

{

InitializeComponent();

}

private void o_komplgrcs_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "dbDataSet.Группа". При необходимости она может быть перемещена или удалена.

this.группаTableAdapter.Fill(this.dbDataSet.Группа);

}

private void button1_Click(object sender, EventArgs e)

{

// связываем запрос с файлом базы данных

string temp = null;

string a = comboBox1.Text; ;

string b = "WHERE (((Группа.[Наименование группы])= '" + a + "'))";

temp = CmdText + b;

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(temp, ConnString);

// создание объекта типа DataSet

DataSet ds = new DataSet();

// заполнение таблицы "Турпутевка"

dataAdapter.Fill(ds, "[Турпутевка]");

dataGridView1.DataSource = ds.Tables[0].DefaultView;

}

}

}

Форма отчета «Информация по клиентам»

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace program

{

public partial class o_dogkl : Form

{

public string CmdText = "SELECT Договор.[Код договора], Договор.[Наименоание договора], Договор.[Дата составления], Организация.[Наименование организации], Клиент.[ФИО клиента], Группа.[Наименование группы], Договор.[Детали договора] FROM Клиент INNER JOIN (Группа INNER JOIN ((Организация INNER JOIN Договор ON Организация.[Код организации] = Договор.[Код организации]) INNER JOIN Турпутевка ON Договор.[Код договора] = Турпутевка.[Код договора]) ON Группа.[Код группы] = Турпутевка.[Код группы]) ON Клиент.[Код клиента] = Турпутевка.[Код клиента]";

public string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";

public o_dogkl()

{

InitializeComponent();

}

private void o_dogkl_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "dbDataSet.Клиент". При необходимости она может быть перемещена или удалена.

this.клиентTableAdapter.Fill(this.dbDataSet.Клиент);

}

private void button1_Click(object sender, EventArgs e)

{

string temp = null;

string a = comboBox1.Text; ;

string b = "WHERE (((Клиент.[ФИО клиента])= '" + a + "'))";

temp = CmdText + b;

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(temp, ConnString);

DataSet ds = new DataSet();

dataAdapter.Fill(ds, "[Договор]");

dataGridView1.DataSource = ds.Tables[0].DefaultView;

}

}

}