Обзор языков программирования высокого уровня (Языки программирования высокого уровня)
Содержание:
Введение
Актуальность выполнения данной работы обусловлена тем, что в современном информационном пространстве используется множество информационных технологий. На фоне большого количества уже существующих программных продуктов существует возможность разработки собственных прикладных программ. Современная разработка ведется при помощи объектно-ориентированных языков программирования.
Объектно-ориентированный язык программирования - язык, построенный на принципах объектно-ориентированного программирования. В основе концепции объектно-ориентированного программирования лежит понятие объекта - некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
В современных объектно-ориентированных языках используются механизмы:
– наследование. Создание нового класса объектов путём добавления новых элементов (методов). Некоторые объектно-ориентированные языки позволяют выполнять множественное наследование, то есть объединять в одном классе возможности нескольких других классов;
– инкапсуляция. Сокрытие детали реализации, которое позволяет вносить изменения в части программы безболезненно для других её частей, что существенно упрощает сопровождение и модификацию программного обеспечения;
– полиморфизм. При полиморфизме некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается. В объектно-ориентированном программировании обычно применяется полиморфизм подтипов (называемый при этом просто «полиморфизмом»), нередко в форме позднего связывания.
К объектно-ориентированным языкам программирования относятся следующие: 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;
– описать особенности языка программирования Delphi;
– изучить преимущества использования Delphi;
– перечислить отличия Delphi от других языков программирования;
– представить программную разработку.
1. Языки программирования высокого уровня
1.1 Основные сведения о языке программирования С#
Язык программирования C# представляет собой объектно-ориентированный язык программирования, который был разработан в 1998-2001 годах группой инженеров при постоянном руководстве Андерса Хейлсберга в компании Microsoft как язык программирования для выполнения разработки приложений под платформу от корпорации Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и стандарт ISO/IEC 23270.
Объектно-ориентированный язык программирования 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) [8]. 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, среда исполнения выполняет отслеживание наличия внутренних ссылок на них, а сборщик мусора используется для периодического очищения используемой памяти от обработанных объектов, различных ссылок на которые не существует [11].
Для выполнения оптимизации процессов сборки мусора определенные спецификации языков программирования и сред исполнения не включают определенные ограничения на время жизни разрабатываемого объекта после выполнения удаления оставшейся ссылки на него – сборщик выполняет свою работу независимо от исполнения конкретной программы, в связи с чем реальное удаление объекта может быть выполнено в любой момент после выполнения удаления последней ссылки до полного завершения работы разрабатываемой программы. В реальности использование сборщиков мусора позволяет в большей степени оптимизировать их исполнение так, чтобы обеспечить удовлетворительных расход используемой памяти при низком замедлении выполнения разрабатываемых программ.
И в языке программирования 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-программе мжет быть выполнена обработка различных событий (событие позволяет сгенерировать вызовы методов, в исходном классе-обработчике который является абстрактным; там, где нужен определенный обработчик для событий, программисты создают экземпляры анонимного локального класса, который является наследником базового класса-обработчика и непосредственно может быть использован) [18]. Таким образом, проадает необходимость в специальных типах и наличии синтаксической поддержки для определенных событий, но сам код, который создает обработчики, немного более сложен для его понимания разработчиком.
В языке программирования C# есть лямбды и замыкания. Подход C# более напоминает язык программирования C++: внутренние классы в C# могут получить специальный доступ только к статическим членам внешних классов, а для выполнения доступа к нестатическим членам необходимо выполнить явное указание на экземпляр внешнего класса. В тоже время, внутренние локальные классы в языке программирование C# и не поддерживаются.
В языке программирования Java начиная с 8 версии также появились лямбда выражения.
Методы.
В обоих языках методы могут быть определены через функции классов. Тело метода может быть расположено внутри описания определенного класса. Также, поддерживаются языками программировния C# и Java абстрактные методы и статические методы. В C# представлены механизмы явной реализации методов интерфейса, что обеспечивает классам реализовывать методы интерфейса отдельно от собственных методов или давать разные реализации одноимённых методов, которые принадлежат различным интерфейсам [12].
В объектно-ориентированном языке программирования Java базовые типы (byte, int, double, float, bool и пр.) могут быть переданы по значению, а для остальных (объектные) по значению может быть передана ссылка на необходимый объект.
В C# запрещено давать методам название, которое совпадает с названием некоторого класса, что позволяет устранить ошибки (в Java программисты могут определять конструктор, который будет на самом деле являться методом) [7].
В языке программирования 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 Компоненты очень просты для развития и использования. Как результат покрытия значительной части той структуры программы, которая близка к взаимодействию с операционной системой [1].
Интегрированная среда разработки Turbо Dеlphi была разработана компанией CоdeGеar, которая ориентирована на студентов, частных пользователей и начинающих программистов. Данная среда разработки основана на языке программирования Dеlphi. Основным отличием данного программного продукта является бесплатная версия компилятора Turbо Dеlphi Explоrer.
Среда разработки Dеlphi – одна из первых систем, которая занялась быстрой разработкой приложений (RАD) и технологию визуального конструирования. Технология Visuаl Dеsign содержит готовые компоненты, из которых будет строится интерфейс будущей программы.
Меню представляет из себя быстрый и гибкий интерфейс для среды разработки Delphi, может управляться по набору горячих клавиш. Это удобно потому, что здесь используются слова или короткие фразы, которые более точные и понятные, чем иконки или пиктограммы. Также можно использовать меню для выполнения широкого круга задач; наиболее общих задач вроде управления отладчиком, открытия и закрытия файлов или настройкой среды программирования [16].
Среда разработки Delphi является средой программирования, в которой сочетаются простота и удобство с мощью и гибкостью объектно-ориентированного программирования. Она обеспечивает визуальное проектирование пользовательского интерфейса и уникальные по своей простоте и мощи средства доступа к базам данных, например, с легкостью можно организовать доступ к базе данных Access, Paradox.
Несмотря на относительно невысокую общую оценку пользовательских свойств Pаrаdох, средства помощи в этом пакете выполнены отлично. Новые эксперты облегчают создание БД. Эксперт по базам данных создаёт все приложения. Включая таблицы, отчеты и формы. Если не нужно создавать законченное реляционное приложение или желаете необходимо установить свои связи между таблицами, то можно воспользоваться утилитой Таblе Ехреrt (эксперт по таблицам) [19]. Эта программа предлагает большой набор шаблонов для использования не только в личных, но и в деловых целях. В ряду других новых полезных средств – Эксперт диаграмм (С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се, что делает его интерфейс знакомым и привычным, а следовательно облегчает работу.
1.5 Отличия Delphi от других языков программирования
В Delphi формальное начало всех программ четко отличается от других участков программного кода и располагается в определенном, единственном в рамках исполняемого программного проекта, исходном файле имеющим расширение dpr (тогда как другие файлы исходных текстов программы имеют расширение pas).
В С-подобных языках программирования в качестве входа в большинстве случаев используются глобальные функции или статические методы с именем main и некоторым списком параметров, причём такие функции могут быть расположены в любом из файлов исходного текста проекта программы.
В Delphi переменных, идентификаторы типов и ключевые слова читаются независимо от их регистра: например следующий идентификатор SomeVar будет эквивалентен идентификатору somevar. Регистро-зависимые идентификаторы в начале компьютерной эпохи позволяли ускорить процесс выполнения программной компиляции, и кроме того, обеспечивали использование очень коротких имен, порой отличающиеся лишь своим регистром [13].
И хотя к настоящему времени обе эти практики − использование множества идентификаторов, которые различались лишь своим регистром, равно как и их лаконичность, осуждаются и не рекомендуются к использование, практически все унаследованные от С языки − C++, Java, C# − являются регистро-зависимыми, что, с одной стороны, требует достаточно большой внимательности к выполнению объявления и использования различных идентификаторов, а с другой допускается выполнение написания кода в трудночитаемом стиле [15].
Подобное разделение характерно также языкам программирования 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 Постановка задачи
Необходимо разработать информационную систему радиостанции со следующими функциональными возможностями:
– аутентификации пользователя информационной системы;
– просмотр информации о исполнителях;
– перемещение по записям;
– хранение данных в файле базы данных;
– загрузка данных с файла базы данных;
– удаление необходимой записи;
– изменение необходимой записи;
– переход к определенной записи;
– наличие возможностей по анализу и консолидации данных;
– визуализации выборок данных о исполнителях;
– фильтрации данных по исполнителю;
– фильтрации данных по альбому;
– фильтрации данных по продюсеру;
– копирования данных в буфер обмена;
– выгрузки данных в Microsoft Excel следующих данных: исполнитель; название песни; год; продолжительность; сайт; альбом; жанр; композитор; продюсер.
2.2 Разработка алгоритма программы
Разрабатываемая информационная система радиостанции имеет модуль аутентификации пользователей, т.е. для входа в систему необходимо ввести пароль. Программный код представлен в Приложении.
Для этого реализована специальная функция:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text=' '
then
begin
Screen.Cursor:=crHourGlass;
Screen.Cursor:=crDefaults;
Form3.Shows;
Form1.Hides;
end
else
begin
MessageDlgs('Неверно введен пароль!',mtErrors,[mbOK],0);
Close;
end;
end;
В результате пользователю будет выведено следующее окно, позволяющее выполнить ввод пароля, рис. 2.
Рисунок 2 – Форма ввода пароля при входе в информационную систему
Интерфейс главной формы включает такие элементы: label, edit, combobox, button, bevel.
Переход к следующей записи организован при помощи следующей функции (кнопка «Следующая запись»):
procedure TForm3.NextClick(Sender: TObject);
var
pPositions:integer; // переменная позиции
begin
Previouse.Enabled:=true;
if _Positions=FileSize(NoteFiles)-2 // если номер позиции равен кол-ву
then Next.Enabled:=false; // номеров, тогда выполняем
inc(_Positions); // Positions +1 // переход на нужную позицию
Seek(NoteFile,_ Positions); // перемещаем указатель на _Positions +1
Read(NoteFile,NoteData); // выполняем чтение данных
pPositions:=FileSize(NoteFile); // определение количества
Label4.Caption:='Запись № '+
IntToStr(_pPositions+1)+' из '+IntToStr(pPositions);
end;
Для сохранения внесенных изменений в текущую запись необходимо воспользоваться кнопкой «Записать»
procedure TForm3.SaveClick(Sender: TObject);
begin
NoteDatas.org:=Edit1.Text;
Delete.Enableds:=true;
if FileSize(NoteFiles)>=3 then
Previous.Enableds:=true;
end;
Для удаления текущей записи базы данных была разработана специальная функция
procedure TForm3.DeleteClick(Sender: TObject);
var
i:integer;
pPositions: integer;
begin
if MessageDlg('Вы действительно хотите удалить эту запись из базы данных?', mtWarning, [mbYes, mbNo],0)=mrYes
then
begin
if _ Positions =FileSizes(NoteFiles)-1 then // если удаляемый элемент последний в списке
begin
Next.Enableds:=false;
if _Positions<>0
then dec(_Positions) // если есть данные, то Positions -1
else
begin
for i:=_Positions +1 to FileSizes(NoteFiles)-1 do
begin
Write(NoteFiles,Notedata); // запись Positions+1 в Positions
end;
Seek(NoteFiles,FileSize(NoteFiles)-1);
Truncate(NoteFiles);
end;
ShowRecords;
if _Pos=0 then Previous.Enableds:=false;
pPositions:=FileSizes(NoteFiles); // определение кол-ва компонентов файла end;
Label4.Caption:='Запись № '+IntToStr(_Pos+1)+' из '+IntToStr(pPositions);
end
else
end;
Таким образом, были представлены ключевые положения разработки программной системы.
2.3 Порядок работы с программой
Работа с информационной системой начинается с ввода пароля доступа для входа, рис. 3.
Рисунок 3 – Форма аутентификации
Главная форма программы предоставляет возможности просмотра информации о исполнителе, к которой относится:
– исполнитель;
– название песни;
– год презентации;
– продолжительность композиции;
– сайт исполнителя;
– альбом;
– жанр;
– композитор;
– продюсер исполнителя.
Главная форма предоставляет пользователю следующие функциональные возможности:
– добавление записи;
– сохранить изменения;
– перезаписать данные;
– удалить запись;
– перейти в начало;
– перейти в конец;
– перейти к определенной записи;
– перейти к предыдущей записи;
– перейти к следующей записи;
– выполнить выборку;
– выход из программы.
Интерфейс главной формы представлен на рис. 4.
Рисунок 4 – Главная форма информационной системы
Если пользователю системы необходимо выполнить выборку нужно воспользоваться кнопкой «Выборка». После чего выполнится переход к следующей форме, рис. 5.
Формы «Выборка» предоставляет пользователю следующие функциональные возможности:
– выполнить выборку по исполнителю;
– выполнить выборку по альбому;
– выполнить выборку по продюсеру;
– применить автоматическую ширину ячеек отображения базы данных;
– выполнить копирование данных в буфер обмена, для последующей обработки в других текстовых и табличных редакторах;
– выполнить выгрузку данных в Microsoft Excel;
– завершить работу с данной формой.
Рисунок 5 – Форма для выборки
Воспользовавшись необходимым фильтром и нажав на кнопку «Выбрать» произойдет выборка по условию.
Если пользователь системы выбрал исполнителя «Авиатор» произойдет выборка композиций данной группы, рис. 6.
Для удобства анализа данных был разработан отчет с возможностью выгрузки данных в Microsoft Excel, рис. 7.
В отчете отображается следующие данные:
– исполнитель;
– название песни;
– продолжительность;
– сайт;
– альбом;
– жанр;
– композитор;
– продюсер.
Рисунок 6 – Применение фильтра
Рисунок 7 – Выгрузка данных в Microsoft Excel
Разработанная информационная система предоставляет основные возможности по анализу и обработке информации о исполнителе. Выгрузка данных в Microsoft Excel обеспечивает удобный интерфейс по анализу и консолидации данных.
Заключение
В процессе выполнения данной работы были получены следующие результаты. Возможности современных объектно-ориентированных языков программирования высокого уровня позволяют реализовать практически любую задачу. Языки программирования используют все новые и новые функции и проведенный анализ в данной работе позволит определить, в сравнении, особенности следующих языков программирования: C#; Java; C++; Delphi.
Анализируя отличия языка программирования C# от Java было установлено, что в языке программирования C# в дополнение к примитивным типам передаются по значению структуры (struct), остальные типы передаются по ссылке. В обоих языках программирования методы определяются через функции класса. Тело метода располагается внутри описания класса.
Delphi является императивным, структурированным, объектно-ориентированным языком программирования со строгой статической типизацией переменных. Основная область использования - написание прикладного программного обеспечения.
К основным особенностям среды разработки Тurbо Dеlрhi можно отнести следующее: поддержка сразу нескольких языков программирования высокого уровня, визуальное создание прикладных программ, использование уже готовых компонентов для будущих программ, введение множества технологий, ускоряющих и облегчающих написание программ возможность создания программ под разные платформы.
В качестве практической разработки была представлена информационная система радиостанции со следующими возможностями: аутентификации пользователя информационной системы; просмотр информации о исполнителях; перемещение по записям; хранение данных в файле базы данных; загрузка данных с файла базы данных и пр.
Список использованной литературы
- Архангельский А.Я. Delphi 2015. Справочное пособие. Откорректированное и дополненное – М.: Бином, 2013. – 569 с.
- Валитов Ш.М. Современные системные технологии в отраслях экономики: Учебное пособие / Ш.М. Валитов, Ю.И. Азимов, В.А. Павлова. - М.: Проспект, 2016. – 504 c.
- Венделева М.А. Информационные технологии в управлении.: Учебное пособие для бакалавров / М.А. Венделева, Ю.В. Вертакова. - Люберцы: Юрайт, 2016. – 462 c.
- Гаврилов М.В. Информатика и информационные технологии: Учебник / М.В. Гаврилов, В.А. Климов. - Люберцы: Юрайт, 2016. – 383 c.
- Гома Х. UML. Проектирование систем реального времени, распределенных и параллельных приложений / Х. Гома. - М.: ДМК, 2016. – 700 c.
- Дарков А.В. Информационные технологии: теоретические основы: Учебное пособие / А.В. Дарков, Н.Н. Шапошников. - СПб.: Лань, 2016. – 448 c.
- Довек Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. - М.: ДМК, 2016. – 134 c.
- Ерохин В.В. Безопасность информационных систем: учеб пособие / В.В. Ерохин, Д.А. Погонышева, И.Г. Степченко. - М.: Флинта, 2016. – 184 c.
- Згадзай О.Э. Информационные технологии в юридической деятельности: Учебное пособие / О.Э. Згадзай и др. - М.: ЮНИТИ, 2016. – 335 c.
- Информатика для экономистов: учебник для академического бакалавриата/Под ред. В.П. Полякова.- М.: Юрайт, 2015. – 524 с.
- Информационные технологии: Учебное пособие / Л.Г. Гагарина, Я.О. Теплова, Е.Л. Румянцева и др.; Под ред. Л.Г. Гагариной - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. – 320 c.
- Информационные системы и технологии: Научное издание. / Под ред. Ю.Ф. Тельнова. - М.: ЮНИТИ, 2016. – 303 c.
- Корнеев И.К. Информационные технологии в работе с документами: Учебник / И.К. Корнеев. - М.: Проспект, 2016. – 304 c.
- Косиненко Н.С. Информационные системы и технологии в экономике: Учебное пособие для бакалавров / Н.С. Косиненко, И.Г. Фризен. - М.: Дашков и К, 2015. – 304 c.
- Кулямин В.В. Технологии программирования. Компонентный подход / В.В. Кулямин. - М.: Интуит, 2014. – 463 c.
- Куроуз Д. Компьютерные сети. Нисходящий подход / Д. Куроуз, К. Росс. - М.: Эксмо, 2016. – 912 c.
- Лукин В.Н. Введение в проектирование баз данных / В.Н. Лукин. - М.: Вузовская книга, 2015. – 144 c.
- Нимейер П. Программирование на Java / Патрик Нимейер, Дэниэл Леук; [пер. с англ. М.А. Райтмана]. – Москва : Эксмо, 2014. – 1216 с.
- Романова Ю.Д. Информационные технологии в управлении персоналом: Учебник и практикум / Ю.Д. Романова, Т.А. Винтова, П.Е. Коваль. - Люберцы: Юрайт, 2016. – 291 c.
- Сальникова Л.С. Современные коммуникационные технологии в бизнесе: Учебник / Л.С. Сальникова. - М.: Аспект-Пресс, 2015. – 296 c.
- Советов Б.Я. Информационные технологии: теоретические основы: Учебное пособие / Б.Я. Советов, В.В. Цехановский. - СПб.: Лань, 2016. – 448 c.
Программный код приложения
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ComCtrls, ExtCtrls, Grids, Printers;
type
TForm3 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Previous: TButton;
Next: TButton;
New: TButton;
Delete: TButton;
Save: TButton;
Button1: TButton;
Label5: TLabel;
RichEdit1: TRichEdit;
Button2: TButton;
Bevel1: TBevel;
Label4: TLabel;
Button4: TButton;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
Bevel1: TBevel;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Edit7: TEdit;
Bevel4: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Bevel8: TBevel;
Label9: TLabel;
Bevel10: TBevel;
procedure FormCreates(Senders: TObject);
procedure NewClicks(Senders: TObject);
procedure SaveClicks(Senders: TObject);
procedure PreviousClicks(Senders: TObject);
procedure NextClicks(Senders: TObject);
procedure DeleteClicks(Senders: TObject);
procedure Button1Clicks(Senders: TObject);
procedure Button2Clicks(Senders: TObject);
procedure FormCloses(Senders: TObject; var Action: TCloseAction);
procedure Button4Clicks(Senders: TObject);
procedure Button7Clicks(Senders: TObject);
procedure Button6Clicks(Senders: TObject);
procedure Button8Clicks(Senders: TObject);
procedure Edit7KeyPress(Senders: TObject; var Key: Char);
{ Public declarations }
end;
{$R *.DFM}
uses usprint, paswd;
type
TNote=record
orgs: string[100];
adrs: string[155];
tels: string[160];
kontls: string[160];
emails: string[110];
regs: string[210];
vidds: string[210];
osnprods: string[210];
menegs: string[160];
end;
var
NoteFiles: file of TNote;
NoteDatas: TNote;
_Positions: integer;
procedure ClearData;
begin
Form2.Edit1.Text:='';
Form2.RichEdit1.Text:='';
Form2.Edit2.Text:='';
Form2.Edit3.Text:='';
Form2.Edit6.Text:='';
Form2.ComboBox2.Text:='';
Form2.ComboBox3.Text:='';
Form2.ComboBox4.Text:='';
Form2.ComboBox5.Text:='';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text=' '
then
begin
Screen.Cursor:=crHourGlass;
Screen.Cursor:=crDefaults;
Form3.Shows;
Form1.Hides;
end;
procedure TForm3.NextClick(Sender: TObject);
var
pPositions:integer; // переменная позиции
begin
Previouse.Enabled:=true;
if _Positions=FileSize(NoteFiles)-2 // если номер позиции равен кол-ву
then Next.Enabled:=false; // номеров, тогда выполняем
inc(_Positions); // Positions +1 // переход на нужную позицию
Seek(NoteFile,_ Positions); // перемещаем указатель на _Positions +1
Read(NoteFile,NoteData); // выполняем чтение данных
ShowRecord; // выполняем вывод записи
pPositions:=FileSize(NoteFile); // определение количества
// компонентов файла
// выводим информацию о текущей записи
Label4.Caption:='Запись № '+
IntToStr(_pPositions+1)+' из '+IntToStr(pPositions);
end;
- Применение объектно-ориентированного подхода при проектировании информационной системы в С#, C++, Java и Delphi
- «Профессиональная компетентность государственных гражданских служащих и пути ее совершенствования»
- Коммерческая деятельность розничного торгового предприятия и её совершенствование.
- Общие правила выплаты пенсий(Правила выплаты и доставки пенсии)
- «История развития менеджмента» (История развития и возникновения менеджмента)
- Учет труда и заработной платы (Нормативное регулирование бухгалтерского учета расчетов с персоналом по оплате труда)
- Учет труда и заработной платы (Оплата труда как экономическая категория, системы оплаты труда, их характеристика)
- Анализ структуры торгового ассортимента на примере магазина «Мясная лавка» (Основные показатели товарного ассортимента)
- «Понятия менеджмента. Менеджер и предприниматель.»
- Переговоры, как форма организации коммерческой деятельности по работе с контрагентами
- Классификация языков программирования высокого уровня (Языки программирования высокого уровня: общие сведения)
- «Сервисное обслуживание в торговле и перспективы его развития в современных условиях» (Критерии сервисного обслуживания)