Автор: Пользователь скрыл имя, 07 Февраля 2013 в 21:31, дипломная работа
В процессе выполнения данной выпускной работы был проведён анализ предметной области и выявлены требования, предъявляемые к программе автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку. На основе выставленных требований, был проведён анализ существующих программных средств, предназначенных для разработки, и в результате чего было принято решение в пользу современного направления программирования – технологии .Net.
Синтаксис C# очень выразителен, но прост в изучении. Все, кто знаком с языками C, C++ или Java с легкостью узнают синтаксис с фигурными скобками, характерный для языка C#. Разработчики, знающие любой из этих языков, как правило, смогут добиться эффективной работы с языком C# за очень короткое время. Синтаксис C# делает проще то, что было сложно в C++, и обеспечивает мощные возможности, такие как типы значений Nullable, перечисления, делегаты, лямбда-выражения и прямой доступ к памяти, чего нет в Java. C# поддерживает универсальные методы и типы, обеспечивая более высокий уровень безопасности и производительности, а также итераторы, позволяющие при реализации коллекций классов определять собственное поведение итерации, которое может легко использоваться в клиентском коде. В C# 3.0 выражения LINQ (Language-Integrated Query) делают строго-типизированный запрос первоклассной конструкцией языка.
Как объектно-ориентированный язык, C# поддерживает понятия инкапсуляции, наследования и полиморфизма. Все переменные и методы, включая метод Main – точку входа приложения – инкапсулируются в определения классов. Класс может наследовать непосредственно из одного родительного класса, но может реализовывать любое число интерфейсов. Для методов, которые переопределяют виртуальные методы в родительском классе, необходимо ключевое слово override, чтобы исключить случайное повторное определение. В языке C# структура похожа на облегченный класс: это тип, распределяемый по стопкам, реализующий интерфейсы, но не поддерживающий наследование.
В дополнение к
основным описанным объектно-
Главной особенностью языка C# является его ориентированность на платформу Microsoft .NET – создатели C# ставили своей целью предоставление разработчикам естественных средств доступа ко всем возможностям платформы .NET.
1.7.1 Преимущества языка программирования C#:
1. Подлинная
объектная ориентированность (
2. Компонентно-ориентированное программирование
3. Безопасный (по сравнению с языками C и C++) код
4. Унифицированная система типизации
5. Поддержка
событийно-ориентированного
6. «Родной» язык для создания приложений в среде .NET
7. Объединение лучших
идей современных языков
Создатели С# хотели скрыть от разработчика как можно больше незначительных технических деталей, включая операции по упаковке/распаковке типов, инициализации переменных и сборке мусора. Благодаря этому программист, пишущий на C#, может лучше сконцентрироваться на содержательной части задачи. В процессе решения этой задачи проектировщики C# пытались учесть уроки реализации Visual Basic, который достаточно успешен в скрытии деталей реализации, но недостаточно эффективен для написания крупных промышленных систем: создатели C# декларируют, что новый язык обладает мощностью С++ и в то же время простотой Visual Basic.
База данных Ichdata.mdb программы автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку имеет всего лишь одну таблицу IchTable, схема данных которой представлена на рисунке 2.1.
Рисунок 2.1 – Схема данных таблицы IchTable
На рисунке 2.2 представлена таблица IchTable в режиме конструктора.
Рисунок 2.2 – Таблица IchTable в режиме конструктора
В таблице 2.1 представлено описание полей таблицы IchTable базы данных Ichdata.mdb с указанием названия поля, типа данных, размера и логической информации о поле (примечание).
Таблица 2.1 – Описание полей таблицы IchTable
Название поля |
Тип данных |
Размер, байт |
Примечание |
№ |
Integer (числовой, длинное целое). |
4 |
Ключевое поле, отвечает за номер бумаги, под которым она выводится. |
Эмитент |
Text (текстовый) |
50 символов |
Название эмитента |
Цена |
Double (числовой, с плавающей точкой) |
8 |
Текущая цена эмитента |
Span_A |
Double (числовой, с плавающей точкой) |
8 |
Максимальная цена бумаги за день |
Span_B |
Double (числовой, с плавающей точкой) |
8 |
Минимальная цена бумаги за день |
Положение |
Text (текстовый) |
50 символов |
Цена открытия бумаги |
За основу для создания базы данных была взята система управления базами данных (СУБД) Microsoft Access 2010 из пакета Microsoft Office 2010. В качестве СУБД была выбрана Access, т.к. БД состоит всего из одной таблицы, т.е. характеризуется компактностью и простотой, а также к критериям выбора СУБД можно отнести то, что Microsoft Office является очень популярным пакетом, и он есть практически на каждом компьютере пользователя. Также Access является очень удобным средством при использовании стратегического интерфейса для доступа к данным – ODBC (Open Database Connectivity, открытая система связи с базами данных).
В разработанной программе IshiSi
Рисунок 2.3 – Архитектура построения ODBC
ODBC действительно является легко наращиваемой. Для добавления нового типа БД нужно лишь написать драйвер и зарегистрировать его. Ещё одно преимущество, вытекающее из такого построения ODBC – пользовательское приложение общается с физической БД через менеджер драйверов, фактически ничего не зная о типе используемой БД (общение менеджера драйверов и самих драйверов более менее стандартно, так что с точки зрения пользователя все источники данных обладают практически одинаковыми свойствами). Таким образом, мы легко можем поменять физический тип базы данных, а приложение даже не узнает об этом (конечно, существуют исключения из-за особенностей поддержки языка SQL различными типами БД, но они несущественны).
Физически ODBC представляет собой набор
динамических библиотек DLL, которые
обслуживают подключение и
Технология ODBC предусматривает создание дополнительного уровня между приложением и используемой СУБД. Службы ODBC обеспечивают получение от приложения запросов на выборку информации и перевод их на язык ядра адресуемой базы данных для доступа к хранимой в ней информации.
Основное назначение ODBC состоит в абстрагировании приложения от особенностей ядра серверной базы данных, с которой оно осуществляет взаимодействие, поэтому серверная база данных становится как бы прозрачной для любого клиентского приложения.
В данной разработке был выбран ODBC, т.к. намного лучше работает с "родными, от Microsoft" источниками данных продуктов Microsoft Office – типа Access, Excel, MS SQL Server. ODBC на "голой" машине уже содержит драйверы Access, Excel, FoxPro и SQL Server. Базы данных Access являются очень надёжными.
Для того чтобы легко и быстро зарегистрировать БД Ichdata.mdb в источниках данных ODBC пользователя была разработана утилита DSNInstaller. Источник данных ODBC пользователя сохраняет сведения об установке связи с источником, производится только от имени учётной записи того пользователя, который его создал.
Утилита реализована на языке программирования C#. На рисунке 2.4 изображена диаграмма классов. DSNInstaller состоит из 3 классов: “Program”, “DSNAdmin”, “Registration_DB”.
Рисунок 2.4 – Диаграмма классов DSNInstaller
Главным классом, с которого начинает работу программа является “Program”. Именно в данном классе располагается точка входа для приложения (метод Main). Основным классом, предоставляющим пользователю полезные функции для работы с утилитой является класс “DSNAdmin”. Подробнее о целевом предназначении основных классов будет говориться ниже.
Описание основных классов программы, их целевое предназначение, приведено в таблице 2.2.
Таблица 2.2 – Описание основных классов программы DSNInstaller
Название класса |
Описание |
Program |
Главный класс, в котором располагается точка входа для приложения (метод Main). |
DSNAdmin |
Класс, который содержит описание всех логических методов, отвечающих за создание пользовательского DSN и добавление системного DSN, их конфигурацию и удаление. |
Registration_DB |
Класс, который отвечает за формирование пользовательской формы DSNInstaller, в нём описываются методы-события, которые происходят в результате работы пользователя с утилитой (например, путём нажатия кнопок регистрации и удаления базы данных из системы и др.). |
Ниже будет дано описание основных функций классов, которые в свою очередь формируют основу данного приложения.
Данный класс включает в себя всего один метод – Main. Данный метод выполняет функцию точки входа для приложения. На рисунке 2.5 изображена структура данного класса.
Рисунок 2.5 – Структура класса “Program” утилиты DSNInstaller
Ниже представлен код главного метода Main:
static void Main()
{
Application.
Application.
Application.Run(new Registration_DB());
}
В таблице 2.3 описываются методы точки входа Main, которые относятся к встроенному классу “Application” и в совокупности реализуют запуск утилиты DSNInstaller.
Таблица 2.3 – Описание методов точки входа Main
Метод |
Описание |
EnableVisualStyles(); |
Включает визуальные стили для приложения. |
SetCompatibleTextRenderingDefa |
Задаёт значение по умолчанию во всём приложении
для свойства Sys-tem.Windows.Forms.ButtonBa |
Run(new Registration_DB()); |
Запускает стандартный цикл обработки сообщений приложения в текущем потоке и делает указанную форму видимой. |
Как было сказано выше, целевое предназначение данного класса – реализация полезных функций для работы утилиты. В данном классе находятся все основные функции утилиты DSNInstaller, отвечающие за создание пользовательского DSN и добавление системного DSN, их конфигурацию и удаление. Структура класса “DSNAdmin” представлена на рисунке 2.6.
Рисунок 2.6 – Структура класса “DSNAdmin” утилиты DSNInstaller
Функции класса:
- AddSystemDSN – добавляет системный источник данных (System DSN), который доступен всем пользователям компьютера;
- AddUserDSN – создаёт пользовательский источник данных (User DSN), который производится только от имени учётной записи того пользователя, который его создал;
- EditSystemDSN – метод, отвечающий за модификацию системного источника данных;
- EditUserDSN – метод, отвечающий за выбор конфигурации пользовательского источника данных;
- RemoveSystemDSN – удаляет System DSN из системы;