Разработка приложения для автоматизации деятельности компьютерного центра
Интеграция языков программирования. Технология СОМ поддерживает взаимодействие разных языков — .NET Framework обеспечивает интеграцию разных языков, то есть один язык может использовать типы, созданные на других языках. Например, .NET Framework позволяет создать на C++ класс, производный от класса, реализованного на VisualBasic. В CLR это возможно из-за наличия общей системы типов (Common Type… Читать ещё >
Разработка приложения для автоматизации деятельности компьютерного центра (реферат, курсовая, диплом, контрольная)
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГАОУ ВПО «СЕВЕРО-КАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ информационных технологий и телекоммуникаций КАФЕДРА информационных систем и технологий КУРСОВАЯ РАБОТА по дисциплине
«Технологии программирования»
на тему:
«Разработка приложения для автоматизации деятельности компьютерного центра»
Выполнила:
Цицкиева Фатима Борисовна студентка 2 курса группы ИСТ-б-о-122
направления 230 400.62 информационные системы и технологии очной формы обучения Руководитель работы:
Николаев Е.И., доцент ИСТ Ставрополь, 2014 г.
Оглавление ВВЕДЕНИЕ
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MICROSOFT .NET
1.1 Описание платформы NET Framework
1.2 Особенности платформы .NET:
2. РАЗРАБОТКА ПРИЛОЖЕНИЯ «АВТОМАТИЗАЦИЯ КОМПЬЮТЕРНОГО ЦЕНТРА»
2.1 База данных Microsoft Access
2.2 Разработка Windows приложения
2.3 Элементы управления
2.4 Модель программирования Windows Forms
3. ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
3.1 Функциональное назначение программы
3.2 Описание логической программы
3.3 Описание входных и выходных данных
3.4 Требования к техническому и программному обеспечению ЗАКЛЮЧЕНИЯ И ВЫВОДЫ СПИСОК ЛИТЕРАТУРЫ ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫ ПРИЛОЖЕНИЕ 2. ИСХОДНЫЙ КОД МЕТОДА PROGRAM. CS
ПРИЛОЖЕНИЕ 3. СВЯЗИ В ACCESS
Язык С# является относительно новым языком, о котором миру впервые стало известно тогда, когда Microsoft в июле 2000 г. объявила о выходе первой версии.NET Framework. С тех пор он сильно вырос в плане популярности и стал чуть ли не самым предпочитаемым языком среди разработчиков Windowsи Web-приложений, которые используют.NET Framework. Отчасти привлекательность языка С# связана с его понятным синтаксисом, который происходит от синтаксиса C/C++, но упрощает некоторые вещи, которые ранее не находили одобрения среди многих программистов. Несмотря на это упрощение, язык С# обладает той же мощью, что и C++, и потому теперь нет никакой причины не переходить на его использование. Этот язык не сложен, что делает его замечательным кандидатом для изучения элементарных приемов программирования.
Программа на языке C# выполняется в среде.NET Framework — это новая и революционная платформа, созданная компанией Microsoft для разработки приложений.NET Framework состоит, прежде всего, из огромной библиотеки программ, к которой можно обращаться из различных языков программирования с помощью различных технологий объектно-ориентированного программирования.
Исходный код, написанный на языке C#, компилируется в промежуточный язык (IL) в соответствии со спецификацией CLI. Код IL и ресурсы, такие как растровые изображения и строки, хранятся на диске в исполняемом файле, называемом сборкой, с расширением EXE или DLL в большинстве случаев. Сборка содержит манифест со сведениями о типах сборки, версии, языке и региональных параметрах и требованиях безопасности.
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MICROSOFT .NET
Платформа NET Framework по большей части состоит из гигантской библиотеки кода, который можно использовать из клиентских языков путем применения различных приемов объектно-ориентированного программирования. Эта библиотека поделена на модули, которые применяются в зависимости от того, какие результаты требуется получить.
Для разработки клиентских приложений под Windows используются две технологии.NET: Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Обе эти технологии — по сути, набор классов и элементов управления пользовательского интерфейса (предоставляемых.NET Framework), позволяющих разработчикам быстро создавать приложения, которые инсталлируются и работают под управлением операционной системы Microsoft Windows.
Создание приложения Windows Forms в среде Microsoft Visual Studio 2010
Под написанием приложения с помощью NET Framework подразумевается просто написание кода с использованием одного из языков, поддерживающих NET Framework, и библиотеки кода.NET.
Для выполнения курсового проекта было использовано средство Microsoft Visual Studio 2010 — продукт компании Майкрософт, включающий интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.
Одной из основных целей Visual Studio является обеспечение быстрого создания форм Windows Forms. При помощи визуального конструктора Windows Forms, панели инструментов Controls и различных элементов управления общего назначения.
Процесс создания приложения Windows Forms начинается точно так же, как и проекты всех других типов в Visual Studio: выбирается шаблон проекта Windows Application в диалоговом окне New Project и указывается местоположение исходных кодов приложения. Проекты типа Windows Forms Application состоят по умолчанию из класса формы и (в случае языка С#) из статического класса Program. После создания проекта мы получаем пустую форму, открытую в визуальном конструкторе Windows Forms.
Внутри визуального конструктора находится макет реальной формы — холст для интерфейса пользователя. При помощи этого холста можно добавлять на форму элементы управления и визуальные элементы, подстраивать внешний вид самой формы и переходить непосредственно к коду, который связан с формой.
Visual Studio выполняет за нас огромный объем работы, существенно упрощая создание функциональных оконных приложений и экономя наши усилия. Созданное приложение ведет себя так же, как и другие окна: его можно перемещать, закрывать, минимизировать и т. п.
Нам не требуется писать для этого никакого кода — все и так работает. То же самое справедливо и для кнопок, помещённых в окно. Достаточно два раза щелкнуть по ней мышью, чтобы Visual Studio понял: мы желаем иметь код, который должен выполняться при нажатии на эту кнопку. Все, что от нас требуется — это предоставить необходимый код.
Оконные приложения, естественно, не ограничиваются простыми формами с кнопками. Если посмотреть на панель с инструментами, то можно обнаружить большое количество самых разнообразных блоков, с помощью которых можно строить пользовательский интерфейс.
1.1 Описание платформы NET Framework
При проектировании платформы Net Framework, компания Microsoft учла недостатки существующихWindows-платформ.NET Framework состоит из двух частей: общеязыковой исполняющей среды (commonlanguageruntime, CLR) и библиотеки классов (Framework Class Library, FCL). CLR предоставляет модель программирования, используемую во всех типах приложений. У CLR собственный загрузчик файлов, диспетчер памяти (сборщик мусора), система безопасности (безопасность доступа к коду), пул потоков и многое другое. Кроме того, CLR предоставляет объектно-ориентированную модель программирования, определяющую, как выглядят и ведут себя типы и объекты. FCL предоставляет объектно-ориентированный API-интерфейс, используемый всеми моделями приложений. В ней содержатся определения типов, которые позволяют разработчикам выполнять ввод/вывод, планирование задач в других потоках, создавать графические образы, сравнивать строки и т. п. Естественно, что все эти определения типов соответствуют существующей модели программирования в CLR. Ниже представлен список возможностей и преимуществ платформы NET:
— Полное и абсолютное межъязыковое взаимодействие. В .NET Framework. Поддерживаются межъязыковое наследование, межъязыковая обработка исключений и межъязыковая отладка.
— Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они были созданы. Один из важных моментов при этом то, что для всех языков используется один и тот же набор встроенных типов данных.
— Единая программная модель. В отличие от существующего подхода, когда одни функции операционной системы доступны через процедуры динамически подключаемых библиотек (DLL), а другие — через СОМ-объекты, весь прикладной сервис представлен общей объектно-ориентированной программной моделью.
— Упрощенная модель программирования. Избавляет от работы с разными структурами, как это было с Win32 и СОМ. Так, разработчику не нужно разбираться с реестром, глобальными уникальными идентификаторами (GUID), IUnknown, AddRef, Release, HRESULT и т. д.
— Отсутствие проблем с версиями. Все Windows-разработчики знают о проблемах совместимости версий, известных под названием «DLL hell». Эта проблема возникает, когда компоненты, устанавливаемые для нового приложения, заменяют компоненты старого приложения, и в итоге последнее начинает вести себя странно или перестает работать. Архитектура .NET Framework позволяет изолировать прикладные компоненты, так что приложение всегда загружает компоненты, с которыми оно строилось и тестировалось. Если приложение работает после начальной установки, оно будет работать всегда.
— Упрощенное развертывание. Ранее Windows-приложения было очень трудно устанавливать и разворачивать: обычно нужно было создать массу файлов, параметров реестра и ярлыков. К тому же полностью удалить приложение практически невозможно. С приходом NET Framework все эти проблемы остаются в прошлом. Компоненты NET Framework не связаны с реестром. Установка приложений NET Framework сводится лишь к копированию файлов в нужные каталоги и созданию ярлыков. Удаление же приложений сводится к удалению файлов.
— Работа на многих платформах. При компиляции кода для .NET Framework компилятор генерирует код на общем промежуточном языке (CommonItermediateLanguage, CIL), а не традиционный код, состоящий из процессорных команд. При исполнении CIL транслируется в команды процессора. Поскольку трансляция выполняется в период выполнения, генерируются команды конкретного процессора. Это значит, что можно развертывать свое приложение NET Framework на любой машине, где работает версия .NET Framework соответствующая стандарту ЕСМА: с архитектурой х86, х64, IA64 и т. д.
— Интеграция языков программирования. Технология СОМ поддерживает взаимодействие разных языков — .NET Framework обеспечивает интеграцию разных языков, то есть один язык может использовать типы, созданные на других языках. Например, .NET Framework позволяет создать на C++ класс, производный от класса, реализованного на VisualBasic. В CLR это возможно из-за наличия общей системы типов (Common Type System, CTS), которую должны использовать все языки, ориентированные на CLR. Общеязыковая спецификация (Common Language Specification, CLS) определяет правила, которым должны следовать разработчики компиляторов, чтобы их языки интегрировались с другими. Сама Microsoft предлагает несколько таких языков: C++/CLI (C++ с управляемыми расширениями), С#, VisualBasic NET. Кроме того, другие компании и учебные заведения создают компиляторы других языков, совместимых с CLR.
— Упрощенное повторное использование кода. Все описанные выше механизмы позволяют создавать собственные классы, предоставляющие сервис сторонним приложениям. Теперь многократное использование кода становится исключительно простым и создается большой рынок готовых компонентов (типов).
— Автоматическое управление памятью (сбор мусора). Программирование требует большого мастерства и дисциплины, особенно когда речь идет об управлении использованием ресурсов (файлов, памяти, пространства экрана, сетевых соединений, ресурсов баз данных и прочих). Одна из самых распространенных ошибок — небрежное отношение к освобождению этих ресурсов, что может привести к некорректному выполнению программы в непредсказуемый момент. CLR автоматически отслеживает использование ресурсов, гарантируя, что не произойдет их утечки.
— Проверка безопасности типов CLR может проверять безопасность использования типов в коде, что гарантирует корректное обращение к существующим типам. Если входной параметр метода объявлен как 4-байтное значение, CLR обнаружит и предотвратит передачу 8-байтного значения в качестве значения этого параметра. Безопасность типов также означает, что управление может передаваться только в определенные точки (точки входа методов). Невозможно указать произвольный адрес и заставить программу исполняться, начиная с этого адреса. Совокупность всех этих защитных мер избавляет от многих распространенных программных ошибок (например, от возможности использования переполнения буфера для «взлома» программы).
— Развитая поддержка отладки. Поскольку CLR используется для многих языков, можно написать отдельный фрагмент программы на языке, наиболее подходящем для конкретной задачи, — CLR полностью поддерживает отладку многоязыковых приложений.
— Единый принцип обработки сбоев. Один из самых неприятных моментов Windows-программирования — несогласованный стиль сообщений о сбоях. Одни функции возвращают коды состояний Win32, другие — HRESULT, третьи генерируют исключения. В CLR обо всех сбоях сообщается через исключения, которые позволяют отделить код, необходимый для восстановления после сбоя, от основного алгоритма. Такое разделение облегчает написание, чтение и сопровождение программ. Кроме того, исключения работают в многомодульных и многоязыковых приложениях. И в отличие от кодов состояний и HRESULT исключения нельзя проигнорировать. CLR также предоставляет встроенные средства анализа стека, заметно упрощающие поиск фрагментов, вызывающих сбои.
— Безопасность. Традиционные системы безопасности обеспечивают управление доступом на основе учетных записей пользователей. Это проверенная модель, но она подразумевает, что любому коду можно доверять в одинаковой степени. Такое допущение оправданно, когда весь код устанавливается с физических носителей (например, с компакт-диска) или с доверенных корпоративных серверов. Но по мере увеличения объема мобильного кода, например Web-сценариев, приложений, загружаемых из Интернета, и вложений, содержащихся в электронной почте, нужен ориентированный на код способ контроля за поведением приложений. Такой подход реализован в модели безопасности доступа к коду.
— Взаимодействие с существующим кодом. В Microsoft понимают, что разработчики накопили огромный объем кода и компонентов. Переписывание всего этого кода, так чтобы он задействовал все достоинства NET Framework, значительно замедлило бы переход к этой платформе. Поэтому в .NET Framework реализована полная поддержка доступа к СОМ-компонентам и Win32-функциям в существующих динамических библиотеках DLL.
1.2 Особенности платформы .NET
WPF входит в состав платформы .NET, поэтому описание стоит начать именно с неё.
Корпорацией Microsoft предложен новаторский компонентно-ориентированный подход к программированию, который является развитием объектно-ориентированного направления. Согласно этому подходу, интеграция объектов (возможно, гетерогенной природы) производится на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты. Такой подход существенно облегчает написание и взаимодействие программных компонент в среде проектирования и реализации. Стандартизируется хранение и повторное использование компонент программного проекта в условиях распределенной сетевой среды вычислений, где различные компьютеры и пользователи обмениваются информацией, например, взаимодействуя в рамках исследовательского или бизнес-проекта.
Существенным преимуществом следует считать и возможность практической реализации принципа «всякая сущность является объектом» в гетерогенной программной среде. Во многом это стало возможным благодаря усовершенствованной, обобщенной системе типизации Common Type System, или CTS, которая будет подробнее рассмотрена в одной из следующих лекций.
Строгая иерархичность организации пространств для типов, классов и имен сущностей программы позволяет стандартизировать и унифицировать реализацию.
Новый подход к интеграции компонент приложений в среде вычислений Internet (или так называемые веб-сервисы) дает возможность ускоренного создания приложений для широкого круга пользователей.
Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных согласно различным подходам к программированию.
Говоря о .NET как о технологической платформе, нельзя не отметить тот факт, что она обеспечивает одновременную поддержку проектирования и реализации программного обеспечения с использованием различных языков программирования. При этом поддерживаются десятки языков программирования, начиная от самых первых (в частности, COBOL и FORTRAN) и заканчивая современными (например, C# и Visual Basic). Ранние языки программирования до сих пор активно используются, в частности, для обеспечения совместимости с ранее созданными приложениями, критичными для бизнеса.
2. Разработка приложения «Автоматизация компьютерного центра»
2.1 База данных Microsoft Access
база данные программа windows
Создание базы данных:
Сначала я создала пять таблиц, в которых содержатся данные для подключения.
Первая таблица — Сотрудники.
В ней находятся все данные о сотрудниках:
ФИО_Сотрудников;
Должность;
Номер телефона;
Паспортные данные;
ИНН;
Номер страхового полиса.
Рисунок 2.1 — Таблица «Сотрудники» в Microsoft Access
Вторая таблица — Клиенты.
В ней все данные о клиентах:
ФИО_Клиента;
Адрес;
Номер телефона клиента:
Паспортные данные;
Номер договора.
Рисунок 2.2 — Таблица «Клиенты» в Microsoft Access
Третья таблица — Поставщики.
В ней данные о поставщиках:
Название фирмы поставщика;
Адрес;
Номер телефона;
Номер договора.
Рисунок 2.3 — Таблица «Поставщики» в Microsoft Access
Четвертая таблица — ТоварыУслуги.
В ней данные о товарах и услуги компьютерного центра:
Наименование товара или услуги;
Цена товара или услуги.
Рисунок 2.4 — Таблица «ТоварыУслуги» в Microsoft Access
И пятая таблица — Доставка.
С ней связываются таблицы Сотрудники, Клиенты и ТоварыУслуги. В ней три столбца:
Код_Сотрудника;
Код_Клиента;
Код_Товара.
Рисунок 2.5 — Таблица «Доставка» в Microsoft Access
После создания таблиц я установила связи между ними. Связь «один ко многим»:
Рисунок 2.6 — Схема данных таблиц в Microsoft Access
2.2 Разработка Windows приложения
Для создания Windows приложения необходимо сначала создать проект. В окне нужно выбрать Приложение Windows Forms и задать имя проекта.
Рисунок 2.7 — Создание проекта
Затем начинаем создавать Windows формы. В Form 1 сделаем так, чтобы при запуске программы выдавалось окно с запросом логина и пароля пользователя. Для этого переносим две кнопки TextBox и в коде формы записываем логин и пароль, чтобы иметь возможность доступа к данным. И переносим на нашу форму кнопку Button — это будет кнопка OK, она для возможности перехода на Form 2, если логин и пароль будут правильны.
Рисунок 2.8 — Вид Form 1
После создаем Form 2. В ней будет приветствоваться администратор и он будет иметь доступ к данным, которые мы подключим в других формах через Access. Для этого просто перетаскиваем Label и в ней просто набираем текст приветствия, и приглашаем выбрать необходимое поле с данными. А для перехода к данным переносим пять кнопок Button и пишем код для перехода к другим формам.
Рисунок 2.9 — Вид Form 2
Создадим Form 3 так, что если в Form 1 введен пароль или логин неправильно, то он выводил информацию о неправильности пароля. Для этого просто с помощью Label просто набираем текст.
Рисунок 2.10 — Вид Form 3
В формах с 4 по 8 будут находиться данные, которые хранятся в Access. Для подключения базы данных необходимо: Данные -> Добавить новый источник данных. Откроется окно Мастер настройки источника данных, в нем выбираем База данных -> Набор данных и создаем подключение к Access. Затем проверяем подключение и OK. И в каждую форму переносим соответствующие таблицы.
Рисунок 2.11 — Подключение Access
В Form 4 находятся данные о сотрудниках.
Рисунок 2.12 — Вид Form 4
В Form 5 находятся данные о клиентах.
Рисунок 2.13 — Вид Form 5
В Form 6 находятся данные о поставщиках.
Рисунок 2.14 — Вид Form 6
В Form 7 находятся данные о товарах и услугах.
Рисунок 2.15 — Вид Form 7
В Form 8 необходимо сделать выпадающие списки с данными сотрудников, клиентов и товаров. Для этого меняем свойства таблицы. После ввода правильных данных, то получим выпадающие списки с нужными нам данными.
Рисунок 2.16 — Вид Form 8
Центральным элементом окна является элемент TabControl, который имеет 5 вкладок, имеющей в свою очередь по одной таблице с данными (DataGridView1, DataGridView2, DataGridView3, DataGridView4, DataGridView5). В них входят таблицы с данными о компьютерном центре, сотрудниках, клиентах, поставщиках, товарах и услугах, и доставке.
На главном окне расположены: главное меню программы (MenuStrip), вкладки (TabControl), панель инструментов для управления данными (BindingNavigator), строка состояния (StatusStrip).
В каждой вкладке данные загружаются в таблицу через компоненты BindingSource. Каждый компонент BindingNavigator настроен на соответствующий BindingSource (автомобили BindingSource, владельцы BindingSource, ремонтные_работы BindingSource, работники BindingSource, Отремонтировано BindingSource).
В главном меню программы расположена кнопка: Сохранить все изменения.
Поиск данных на главной форме реализован с помощью компонентов textbox и кнопок button. Для поиска данных необходимо ввести в одном из textBox соответствующее значение, после чего курсор в таблице перейдет на данное место или появится MessageBox со значениями, удовлетворяющими введенному.
На компоненте BindingNavigator оставлены те же значения, что и установлены по умолчанию: перемещение по таблице с помощью синих стрелочек. Перемещение выполняется по всем трем таблицам.
При нажатии на пункт «Сохранить все» появится MessageBox с вопросом о сохранении. В данном случае сохраняются все таблицы приложения. При сохранении появляется MessageBox с вопросом о сохранении. При нажатии на кнопку OK все внесенные данные в таблицу сохранятся. При нажатии Cancel сохранение будет отменено.
Рисунок 2.17 — MessageBox с вопросом о сохранении внесенных изменений
2.3 Элементы управления
Любое окно приложения для Windows, представляет собой форму, порожденную от класса System.Windows.Forms.Form.
Откроем новый проект — проект Windows Application. Проект создается по аналогии с Console Appliation. Перед нами появится пустая поверхность окна приложения — форма. Размер, местоположение, цвет фона, имя заголовка и другие свойства формы можно изменять с помощью окна свойств — Properties (отображение свойств выбранного элемента и событий, связанных с ним).
Панель Properties содержит следующие разделы свойств:
Accessibility? достижимость
Appearance? вид
Behavior? поведение
Configurations? конфигурации
Data? данные
Design? проект
Focus? центр
Layout? размещение
Window style? стиль окна
Используя раздел свойств Accessibility можно изменять:
* цвет поверхности — BackColor (по умолчанию такого же цвета будут все элементы управления);
* фоновую картинку? BackgroundImage,
* вид курсора? Cursor,
* цвет шрифта? ForeColor,
* стиль окна? FormBorderStyle,
* текст заголовка формы? Text ,
* местоположение текста заголовка формы? RightToLeft
Используя раздел свойств Layout можно изменять:
* размер окна? Size
* параметр, определяющий начальную позицию? StartPosition,
* координаты левого верхнего угла формы? Location (актуален, если StartPosition = Manual),
* вид начального отображения формы (минимизированное, нормальное или максимизированное)? WindowState,
* размер формы в максимизированном состоянии? MaxsimumSize,
* размер формы в минимизированном состоянии? MinimumSize,
Используя раздел свойств Window style можно изменять:
* вид иконки? Icon
* доступность кнопки максимизации? MaximizeBox
* доступность кнопок минимизации? MinimizeBox
и т.д.
Легко заметить, что мы можем изменять размеры формы не только с помощью панели свойства (Properties), но и с помощью мыши, при этом размеры (Size) будут меняться автоматически.
Поэкспериментируйте с этими и другими свойствами, посмотрите изменения на форме, связанные с изменением свойств.
Так же можно увидеть панели:
* Server Explorer (подключение к проекту БД),
* Solution Explorer (отображение подключенных проектов, файлов, пространств имен и т. п.),
* Dynamic Help (отображение справочной информации),
* Toolbox (на поверхность формы можно добавлять различные элементы управления) и другие (в зависимости от настроек пользователя этих панелей можно не обнаружить!). Возможности, связанные с другими панелями, так же весьма интересны, но их рассмотрение не входит в цели данной лабораторной работы.
Добавить дополнительные панели можно через пункт меню «View» .
Теперь, когда вы более или менее усвоили свойства (Properties), связанные с формой, можно рассмотреть события. На той же панели свойств есть кнопка с пиктограммой «молния». Щелкнем на ней. При этом отобразятся различные события, связанные:
* с мышью (движение, движение в определенных направлениях, вход или выход из определенной области, нажатиями клавиши мыши),
* с нажатием клавиши клавиатуры,
* с рисованием,
* с изменением стиля,
* с размером окна, и многие другие (подробнее с теми или иными событиями можно ознакомиться самостоятельно, используя источники с более глубокой детализацией материала).
Чтобы задействовать то или иное событие достаточно лишь дважды щелкнуть на его названии и компилятор автоматически создаст имя и тело метода, который будет обрабатывать выбранной событие. Так же можно ввести самостоятельно имя метода и сметить фокус от выбранного события — тело метода создастся автоматически с введенным именем! Существует еще и третий способ: сначала создается метод обрабатывающий событие, а затем выбирается в выпадающем списке! В тело метода необходимо поместить все, что необходимо для обработки события.
2.4 Модель программирования Windows Forms
В Windows Forms термин «форма» — синоним окна верхнего уровня. Главное окно приложения — форма. Любые другие окна верхнего уровня, которые имеет приложение — также формы. Окна диалога также считаются формами. Несмотря на название, приложения, использующие Windows Forms, не выглядят как формы. Подобно традиционным Windows-приложениям приложения осуществляют полный контроль над событиями в собственных окнах.
Программисты видят Microsoft .NET через линзу .NET Framework class library. Представьте MFC на порядок больше и вы получите точную картину о ширине и глубине .NET Framework class library. Чтобы облегчить противоречия в обозначениях и придать организацию многим сотням классов, .NET Framework class library разбита на иерархические разделы по именам. Корневой раздел, System, определяет фундаментальные типы данных, используемые всеми приложениями .NET.
Приложения, использующие Windows Forms используют классы System.WinForms. Этот раздел включает такие классы, как Form, который моделирует поведение окон или форм; Menu, который представляет меню; Clipboard, который дает возможность приложениям Windows Forms использовать буфер обмена. Он также содержитмногочисленные классы, предоставляющие средства управления, например: Button, TextBox, ListView, MonthCalendar и т. д. Эти классы могут быть включены в приложение либо с использованием только имени класса, либо с использованием полного имени, например: System.WinForms.Button.
В основе почти каждого приложения, написанного с применением Windows Forms, — производный класс от System.WinForms.Form. Образец этого класса представляет главное окно приложения. System.WinForms.Form имеет множество свойств и методов, которые имеют богатый программный интерфейс к формам. Хотите знать размеры клиентской области формы? В Windows вы вызвали бы функцию API GetClientRect. В Windows Forms нужно использовать свойства ClientRectangle или ClientSize.
Приложения, основанные на Windows Forms, которые используют кнопки, списки и другие типы компонентов Windows, используют классы управления System. WinForms, значительно упрощающие программирование управления. Хотите создать стилизованную кнопку с изображением в виде фона? Нет проблем. Включите требуемое изображение в объект System.Drawing.Bitmap и назначьте его свойству кнопки BackgroundImage. Как насчет управления цветом? Вы когда-либо пробовали настраивать цвет фона текстового поля? В Windows Forms это просто: нужно просто присвоить цвет свойству BackColor, все отстальное система сделает сама.
Другой важный «строительный» блок приложения, который использует Windows Forms — класс System. WinForms по имени Application. Этот класс содержит статический метод Run, который загружает приложение и отображает окно.
Если приложения, которые являются Windows Forms, не обрабатывают сообщения, как они отвечают на пользовательский ввод или знают когда рисовать? Много классов имеют виртуальные методы, которые можно переопределить. Например, System.WinForms.Form содержит виртуальный метод OnPaint, который вызывается, когда клиентская область формы нуждается в обновлении. OnPaint — один из многих виртуальных методов, который можно переопределить в производном классе для формирования интерактивных форм.
Другая важная грань модели программирования Windows Forms — механизм, который формы используют для ответа на ввод в меню, средств управления и других элементов GUI приложения. Традиционные Windows-приложения обрабатывают сообщения WM_COMMAND и WM_NOTIFY используя события процесса Windows Forms. В C# и на других языках, которые поддерживают .NET Common Language Runtime (CLR), события — члены типа первого класса наравне с методами, полями и свойствами. Фактически все управляющие классы (control classes) Windows Forms (а также и многие не управляющие классы) создают события. Например, кнопка (экземпляр System.WinForms.Button) после нажатия создает событие Click. Форма, которая должна ответить на нажатие кнопки может использовать следующий код, чтобы соединить кнопку с обработчиком события Click:
MyButton.Click += new EventHandler (OnButtonClicked);
…
private void OnButtonClicked (object sender, EventArgs e)
{
MessageBox.Show («Click!»);
}
EventHandler — специальный обработчик событий, который выполняет метод OnButtonClicked когда MyButton создает событие Click. Первый параметр OnButtonClicked идентифицирует объект, который вызвал событие. Второй параметр в основном бессмыслен для события Click, но используется некоторым другие типами событий, чтобы передать дополнительную информацию.
3. Информационное и программное обеспечение
3.1 Функциональное назначение программы
Данная программа предназначена для администрирования базы данных компьютерного центра.
Программа позволяет пользователю работать с базой данных созданной в СУБД Microsoft Access. Программа реализует возможности: добавления, изменения, удаления, поиска информации в базе данных. При нажатии кнопок на панели инструментов можно перейти в справочники.
При запуске программы появляется окно, в которое вводим пароль и логин. Если пароль и логин правильно введен, то появляется приветствующее окно. Если нет, то в новом окне выводится информация о неправильности пароля. В случае правильного ввода пароля в новом окне мы можем выбирать нужные нам данные, открывается окно база данных выбранное нами. В информационном окне можно дополнять, и удалять информацию.
В окне база данных «Сотрудники» выводятся все данные о сотрудниках: Код_Сотрудника, ФИО_Сотрудника, Должность, Номер телефона, Паспортные данные и ИНН. Так же в этом окне, можно добавлять, удалять и сохранять новые данные.
Рисунок 3.1 — Добавление/редактирование таблицы «Сотрудники»
В окне база данных «Поставщики» выводятся все данные о поставщиках: Код_Поставки, Название, Адрес, Номер телефона, Номер договора. Также и в этом окне, можно добавлять, удалять и сохранять новые данные.
Рисунок 3.2 — Добавление/редактирование таблицы «Поставщики»
В окне база данных «ТоварыУслуги» выводятся данные о товарах и услугах: Код_Товара, Наименование, Цена. Также и в этом окне, можно добавлять, удалять и сохранять новые данные.
Рисунок 3.3 — Добавление/редактирование таблицы «ТоварыУслуги»
В окне база данных «Клиенты» выводятся данные о клиентах: ФИО, Адрес, Номер телефона, Паспортные данные, Номер договора. Также в этом окне, можно добавлять, удалять и сохранять новые данные.
Рисунок 3.4 — Добавление/редактирование таблицы «Клиенты»
В окно базы данных «Доставка» администратор записывает информацию о доставке: Сотрудник, Клиент, Товар. В этом окне, можно добавлять, удалять и сохранять новые данные.
Рисунок 3.5 — Добавление/редактирование таблицы «Доставка»
Существует следующее функциональное ограничение на применение приложения — в поля с числовыми значениями нельзя вводить символьные значения, иначе программа остановит свою работу, до момента пока пользователь не введёт числовое значение.
3.2 Описание логической программы
При запуске программы происходит подключение стандартных библиотек:
System; System.Collections.Generic;
System.Linq;
System.Windows.Forms и выполнение функции static void Main (). В которой выполняется включение визуальных стилей и запуск Form1. Происходит инициализация компонентов окна и запуск Form10,
Пользователю необходимо ввести пароль для доступа. При нажатии кнопки «Покинуть приложение» происходит выполнение метода Application. Exit (); и приложение завершает свою работу, если пользователь правильно ввёл пароль и нажал кнопку «Ввод» текущее окно закрывается и происходит загрузка главного окна, в котором происходит загрузка данных в таблицу и запуск метода sost ();.
После чего программа находится в состоянии ожидания прерывания. При нажатии кнопки «добавить» или «редактировать» происходит загрузка окна редактирования в котором можно внести новые данные или отредактировать уже имеющиеся. При нажатии кнопки «сохранить» в этом окне происходит закрытие окна редактирования и все изменения заносятся в таблицу. Для того чтобы изменения сохранить в базе данных нужно нажать кнопку «сохранить» главного окна. Также из этого окна можно перейти в спавочники щёлкнув по кнопкам на панеле инструментов или выбрав в меню. В справочниках щёлкая по соответствующим кнопкам можно выполнять: добавление, удаление, изменение, поиск записи, а также сохранение или отмену изменений с последующим выходом.
В главном окне можно осуществлять выборку данных из таблицы, для этого нужно выбрать необходимые значение в TextBox1 и TextBox2 и нажать кнопку «Сортировать» в результате чего в окне будут отображены записи удовлетворяющие условию сортировки. Можно выгрузить эти записи в EXCEL, щёлкнув по кнопке на главном окне. Для того чтобы показать все данные в таблице нужно нажать кнопку «Показать всё».
Для выхода из программы необходимо выбрать пункт «выход» в меню программы.
Таблица 1 — Спецификация функций модуля «имя модуля» (сборка)
Прототип функции | Назначение | |
System IO | Содержит типы, позволяющие осуществлять чтение и запись в файлы и потоки данных, а также типы для базовой поддержки файлов и папок. | |
System DATA | содержит классы для доступа к данным из различных источников и для управления этими данными. | |
System Forms | Данная библиотека позволяет создавать диалоговые окна и связь между ними. | |
System Text | Содержат типы для работы с кодировками символов и для управления строками. Позволяет обрабатывать текст с использованием регулярных выражений. | |
System ComponentModel | содержат типы, реализующие поведение компонентов и элементов управления во время разработки и выполнения. Данное пространство имен включает базовые классы и интерфейсы, предназначенные для реализации преобразователей атрибутов и типов, для привязки к источникам данных и для лицензирования компонентов. | |
System Drawing | Родительское пространство имен содержит типы, поддерживающие базовые графические функции GDI+. Дочерние пространства имен поддерживают более сложные функции двухмерной и векторной графики, дополнительные функции обработки изображений. | |
Таблица 2 — Спецификация класса
Поле класса (метод) | Способ доступа | Назначение | Назначение параметров методов класса | |
void dobav (Form3 x, bool z) | Public | Добавление новой строки в таблицу и передача значений в строку из элементов окна редактирования. | bool z необходим чтобы определить нужно добавить новую строку или редактировать имеющуюся. Form3 x необходим для доступа к элементам окна редактирования | |
void obnov (Form3 x) | Public | Передача значений выбранной строки в окно редактирования. | Form3 x необходим для доступа к элементам окна редактирования | |
void sort () | Private | Сортировка значений в таблице главного окна. | ||
void sost () | Private | Выводит количество строк и номер выбранной строки в панель состояния | ||
void searchInDataGridView () | Public | Осуществляет поиск в таблице | ||
void combo () | Private | Определяет данные в ComboBox2 в зависимости от того какое значение выбрано в ComboBox1. | ||
void excel () | Private | Выгрузка таблицы в EXCEL. | ||
3.3 Описание входных и выходных данных
Входными данными называются база данных созданная в Microsoft Access.
Выходными данными являются таблицы выбранные пользователем из списка меню.
3.4 Требования к техническому и программному обеспечению
Для корректной работы программы необходимы IBM PC совместимый компьютер, оперативная память 128 Mb и выше, свободное место на диске 5500 Кбайт под размещение приложения, наличие монитора.
3.5 Руководство пользователя
Программа представляет собой проект созданный в Visual studio C# 2010, запускаемый в любой операционной системе семейства Windows. Чтобы просмотреть текст программы или запустить её на выполнение — надо скопировать с носителя папку с проектом на жёсткий диск компьютера. Чтобы просмотреть текст программы, шаблоны диалоговых окон и др., то следует открыть файл с расширением. sln, являющийся файлом проекта.
Заключения и выводы
В ходе выполнения курсового проекта я создала Windows-приложение, которое позволяет автоматизировать работу компьютерного центра, с возможностью добавления, удаления, сохранения, редактирования таблицы.
В ходе разработки курсового проекта была освоена работа с различными элементами интерфейса, работа с мастерами Visual C# 2010. А также работа с базой данных.
1. Нортроп, Т. Основы разработки приложений на платформе Microsoft .NET Framework. Учебный курс Microsoft. Перевод с англ./ Т. Нортроп, Ш. Уилдермьюс, Б. Райан. — М.: «Русская редакция», 2010. — 864 с.
2. Шилдт, Г. C#, учебный курс. / Г. Шилдт. — СПб.: Питер, 2010. — 512 с.
3. Робинсон, С. C# для профессионалов. Том 1. / С. Робинсон, О. Корнес, Д. Глин, Б. Харвей. — М.: Лори, 2010. — 1002 с.
4. Робинсон, С. C# для профессионалов. Том 2. / С. Робинсон, О. Корнес, Д. Глин, Б. Харвей. — М.: Лори, 2010. — 998 с.
5. Троелсен, Э. Язык программирования C# 2012 и платформа .NET 4.5: Пер с англ. / Э. Троелсен. — М.: ООО «И.Д. Вильямс», 2013. — 1168 с.
6. Методические указания к выполнению лабораторных работ по дисциплине «Технологии программирования» для студентов специальности 230 400 «Информационные системы и технологии» / сост. Николаев Е. И.; рец. Мочалов В. П. — Ставрополь: СКФУ, 2012. — 50 с.
7. Учебное пособие «Технологии программирования» для студентов специальности 230 400.62 «Информационные системы и технологии» / сост. Николаев Е. И.; рец. Мочалов В. П, Маликов А. В. — Ставрополь: СКФУ, 2013. — 150 с.
Приложение 1. Листинг программы
Form 1:
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;
namespace WindowsFormsApplication1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent ();
}
private void textBox1_TextChanged (object sender, EventArgs e)
{
}
private void textBox2_TextChanged (object sender, EventArgs e)
{
}
private void button1_Click (object sender, EventArgs e)
{
string a, b;
a = textBox1. Text;
b = textBox2. Text;
if (a == «Админ» && b == «666 666»)
{
Form2 f2 = new Form2();
f2.Show ();
}
else
{
Form3 f3 = new Form3();
f3.Show ();
}
}
private void label1_Click (object sender, EventArgs e)
{
}
}
}
Form 2:
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;
namespace WindowsFormsApplication1
{
public partial class Form2: Form
{
public Form2()
{
InitializeComponent ();
}
private void button1_Click (object sender, EventArgs e)
{
Form4 f4 = new Form4();
f4.Show ();
}
private void button2_Click (object sender, EventArgs e)
{
Form5 f5 = new Form5();
f5.Show ();
}
private void button3_Click (object sender, EventArgs e)
{
Form6 f6= new Form6();
f6.Show ();
}
private void button4_Click (object sender, EventArgs e)
{
Form7 f7 = new Form7();
f7.Show ();
}
private void button5_Click (object sender, EventArgs e)
{
Form8 f8 = new Form8();
f8.Show ();
}
private void Form2_Load (object sender, EventArgs e)
{
}
}
}
Form 3:
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;
namespace WindowsFormsApplication1
{
public partial class Form3: Form
{
public Form3()
{
InitializeComponent ();
}
private void Form3_Load (object sender, EventArgs e)
{
}
}
}
Form 4:
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;
namespace WindowsFormsApplication1
{
public partial class Form4: Form
{
public Form4()
{
InitializeComponent ();
}
private void сотрудникиBindingNavigatorSaveItem_Click (object sender, EventArgs e)
{
this.Validate ();
this.сотрудникиBindingSource.EndEdit ();
this.tableAdapterManager.UpdateAll (this.database1DataSet);
}
private void Form4_Load (object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу «database1DataSet.Сотрудники». При необходимости она может быть перемещена или удалена.
this.сотрудникиTableAdapter.Fill (this.database1DataSet.Сотрудники);
}
}
}
Form 5:
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;
namespace WindowsFormsApplication1
{
public partial class Form5: Form
{
public Form5()
{
InitializeComponent ();
}
private void клиентыBindingNavigatorSaveItem_Click (object sender, EventArgs e)
{
this.Validate ();
this.клиентыBindingSource.EndEdit ();
this.tableAdapterManager.UpdateAll (this.database1DataSet);
}
private void Form5_Load (object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу «database1DataSet.Клиенты». При необходимости она может быть перемещена или удалена.
this.клиентыTableAdapter.Fill (this.database1DataSet.Клиенты);
}
}
}
Form 6:
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;
namespace WindowsFormsApplication1
{
public partial class Form6: Form
{
public Form6()
{
InitializeComponent ();
}
private void поставщикиBindingNavigatorSaveItem_Click (object sender, EventArgs e)
{
this.Validate ();
this.поставщикиBindingSource.EndEdit ();
this.tableAdapterManager.UpdateAll (this.database1DataSet);
}
private void Form6_Load (object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу «database1DataSet.Поставщики». При необходимости она может быть перемещена или удалена.
this.поставщикиTableAdapter.Fill (this.database1DataSet.Поставщики);
}
}
}
Form 7:
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;
namespace WindowsFormsApplication1
{
public partial class Form7: Form
{
public Form7()
{
InitializeComponent ();
}
private void товарыУслугиBindingNavigatorSaveItem_Click (object sender, EventArgs e)
{
this.Validate ();
this.товарыУслугиBindingSource.EndEdit ();
this.tableAdapterManager.UpdateAll (this.database1DataSet);
}
private void Form7_Load (object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу «database1DataSet.ТоварыУслуги». При необходимости она может быть перемещена или удалена.
this.товарыУслугиTableAdapter.Fill (this.database1DataSet.ТоварыУслуги);
}
}
}
Form 8:
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;
namespace WindowsFormsApplication1
{
public partial class Form8: Form
{
public Form8()
{
InitializeComponent ();
}
private void доставкаBindingNavigatorSaveItem_Click (object sender, EventArgs e)
{
this.Validate ();
this.доставкаBindingSource.EndEdit ();
this.tableAdapterManager.UpdateAll (this.database1DataSet);
}
private void Form8_Load (object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу «database1DataSet.Доставка». При необходимости она может быть перемещена или удалена.
this.доставкаTableAdapter.Fill (this.database1DataSet.Доставка);
}
}
}
Приложение 2. Исходный код метода Program. cs
using System;
using System.Collections.Generic;
using System. Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
/// Главная точка входа для приложения.
[STAThread]
static void Main ()
{
Application.EnableVisualStyles ();
Application.SetCompatibleTextRenderingDefault (false);
Application.Run (new Form1());
}
}
}
Приложение 3. Связи в Access
Схема данных таблиц в Microsoft Access