98633

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

Курсовая

Информатика, кибернетика и программирование

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

Русский

2015-11-05

873.22 KB

4 чел.

41

ГВУЗ «МАКЕЕВСКИЙ политехнический колледж»

(Полное наименование высшего учебного заведения)

 

Цикловой комиссии математики и вычислительной ТЕХНИКИ

(Полное название кафедры, цикловой комиссии)

 

 

 

 

 

  

 

КУРСОВАЯ РАБОТА

 

по дисциплине «Инструментальные средства и в визуального программирования»

(Название дисциплины)

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

 

 

Студента (ки) _____ курса ______ группы

направление 6.050103 «Программная инженерия»

специальности 5.05020301 «Разработка программного обеспечения»

__________________________________

(Фамилия и инициалы)

Руководитель ___________________________

____________________________________

(Должность, ученое звание, ученая степень, фамилия и инициалы)

Национальная шкала ________________ ________________

Количество баллов: __________ __ Оценка: ECTS _____ _____

 

 

Члены комиссии ________________ ___________________________

(Подпись) (фамилия и инициалы)

________________ ___________________________

(Подпись) (фамилия и инициалы)

г. ______________ - 20 _____ год  


                  
КАЛЕНДАРНЫЙ ПЛАН ВЫПОЛНЕНИЯ КУРСОВОГО ПРОЕКТА

Наименование этапа

Срок выполнения

консультация

дата

1

Выдача задания на курсовую работу. Уяснения задачи

1

 

2

Постановка задачи. Определение требований к программе.

а) запись постановки задачи;

б) составление технического задания и его утверждение.

2

 

3

Техническое проектирование:

а) разработка метода решения;

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

в) разработка основного алгоритма функционирования программы;

г) составление спецификации модулей.

3-4

 

4

Рабочее проектирование:

а) определение структур данных и разработка алгоритмов работы модулей,

б) оценка оптимальности структур данных и алгоритмов.

5-6

 

5

Написание программы

7-8

 

6

Настройка программы

9

 

7

Комплексная отладка и тестирование

10

 

8

Написание пояснительной записки

11

 

9

Защита курсовой работы

12-13

 

Исполнитель: ______________________________________________________

Руководитель: _____________________________________________________


ГОСУДАРСТВЕНное высшее учебное заведение

«МАКЕЕВСКИЙ политехнический колледж»

 

Задание на курсовую работу

по дисциплине: «Инструментальные средства визуального программирования»

студент группы ПР-41 Ржевского К.В

Тема курсовой работы: Разработки внешних долговых приложений к базе данных с использованием языка программирования высокого уровня С #.. 

  1.  Входные данные: таблицы «Таблица 1 - Атрибуты сущности« Книги » »
  2.  Перечень результатов: запрос на удаление, запрос на добавление, запрос с параметром.
  3.   Рекомендованные   способы   и  методы: обработчики событий для стандартных элементов управления, технология ADO.NET, объекты DataGrid, DataSet, OleDbConnection.
  4.  Рекомендованная  литература:

1.Культин Н. Microsoft Visual C# в примерах и задачах. — Санкт-Петербург "БХВ-Петербург", 2009. — 320 c. 

2.Климов А. П. C#. Советы программистам. — СПб.: БХВ-Петербург, 2008. — 517 с.

3.Шилдт Герберт. С# 4.0 – полное руководство, 2011 Вильямс, 1056 с.

4.Евсеева О. Н., Шамшев А. Б. Работа с базами данных на языке c#. Технология АDО.NET: учебное пособие - Ульяновск: УлГТУ, 2009. - 170 с.

5.Лабор В. В. Си Шарп: Создание приложений для Windows — Мн.: Харвест, 2003. -384 с.

6.Дрейер М. C# для школьников: Учебное пособие. Перевод с англ. под ред. В. Биллига - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2009. - 128 с.

7.Петцольд Ч.Программирование для Microsoft Windows на С#. В 2-х томах. Том 1. Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2002.- 576 с.

8.Гросс К. С# 2008: Пер. с англ. — СПб.: БХВ-Петербург, 2009. — 576 с.

9.Фаронов В. Программирование на языке С #. – СПб.: Питер, 2007, - 240с.

10.Мартынов Н.Н. С# для начинающих. – М.: КУДИЦ – ПРЕСС, 2007. - 272 с.

  1.  Содержание пояснительной записки и графической части : _______________

Дата выдачи задания:       Срок выполнения:

 

______________                                                                           _____________

 

Руководитель _____________________________________________________

(Должность, ФИО)

               __________________________________________________________

(Должность, ФИО)

Исполнитель ______________________________________________________

(ФИО)


РЕФЕРАТ

Курсовая работа:  страниц: 43 , иллюстраций: 20   таблиц: 3

Цель работы: Получить опыт в работе с базами данных и разработке графического интерфейса с использованием технологии визуального программирования в инструментальной среде Microsoft Visual Studio.

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

Основное внимание уделяется работе с БД инструментами Microsoft Visual Studio на языке C #. Результатом работы является готовый программный продукт для автоматизации основных функций в книжном магазине. Информационная система «Книжный магазин» существенно упрощает работу сотрудников книжного магазина. 

Объектно-ориентированный язык С #, ОБЪЕКТ, БАЗА ДАННЫХ, пользовательский интерфейс


СОДЕРЖАНИЕ

ВВЕДЕНИЕ 6

1 ОПИСАНИЕ предметной области. Постановка задачи. 8

1.1 Анализ предметной области 8

1.2 Постановка задачи 9

2 ПОСТРОЕНИЕ инфологической (КОНЦЕПТУАЛЬНОЙ) модели предметной области 12

3 ПРОЕКТИРОВАНИЕ ЛОГИЧЕСКОЙ И ФИЗИЧЕСКОЙ СТРУКТУРЫ БД. 18

4 РАЗРАБОТКА ИНТЕРФЕЙСА 23

ВЫВОДЫ 24

Список літератури 25

ПРИЛОЖЕНИЕ А – ЛИСТИНГ ПРОГРАММЫ 26

ПРИЛОЖЕНИЕ Б - Экранные формы 37

ПРИЛОЖЕНИЕ В. Руководство пользователя 41


ВВЕДЕНИЕ

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

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

Темой данного курсового проекта является разработка информационной системы «Книжный магазин». Для реализации данной задачи выбрана среда разработки Visual Studio 12.

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

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

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

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

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

Цели и задачи курсового проекта:

1. закрепление практических навыков программирования, полученных на лабораторных занятиях по дисциплине «Инструментальные средства визуального программирования»;

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

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

4. получение опыта сбора и обработки исходного материала, анализа научно-технической литературы, справочников, стандартов и технической документации;

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


1 ОПИСАНИЕ предметной области. Постановка задачи

1.1 Анализ предметной области

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

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

Книжный магазин, для которого проводится автоматизация, включает всего один отдел - отдел обслуживания (продавец, касса);

Отдел обслуживания работает с клиентами. Сотрудники с книжного магазина принимают заказ, производят его оформление.

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

Информация, подлежащая хранению: номера книг, название книг, количество книг.

В функции отделов обслуживания входит:

1. обслуживание клиентов (осуществляется продавцом);

2.внесение данных о клиентах;

3. выдача отчёта о выполненной работе.

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

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


1.2 Постановка задачи

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

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

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

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


Документы, на основании которых создается система:

1. справочник книг;

2. должностные инструкции;

3. список работников книжного магазина.

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

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

Система должна удовлетворять следующим требованиям:

1. надежности;

2. безопасности;

3. требования к защите информации от несанкционированного доступа;

4. должна быть предусмотрена защита от несанкционированного доступа к данным, ввод данных, их удаление;

5. данные должны сохранять в соответствии с имеющимися документами;

6. информация, которая хранится в системе, должна быть защищена от аварийных ситуаций, влияния внешних воздействий (радиоэлектронная защита);

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

К функциям, реализованным в данной задаче, относятся:

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

- Выбор книг по наименованию и цене и другим характеристикам.

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

- Выдача отчетов по заданным параметрам.

- Сортировка книг (автор, издательство, год ...).

Отчетность, реализована при автоматизации процесса:

- Составление чека на заказанные книги.

Программное обеспечение системы не должно зависеть от аппаратных средств компьютера. Необходимое программное обеспечение: MS Access 2003, библиотека компонентов NET. Framework 4.0.


2 ПОСТРОЕНИЕ инфологической (КОНЦЕПТУАЛЬНОЙ) модели предметной области

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

Рисунок 2.1 - Упрощенная диаграмма технологического

процесса книжного магазина

Рассмотрим работу подсистемы подробнее, для этого сделаем декомпозиции диаграммы.

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

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

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

Рисунок 2.2 - Процесс обслуживания клиента

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

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

Сущность имеет имя, уникальное в пределах модели. При этом имя сущности - это имя типа, а не конкретного экземпляра.

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

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

Сущность, на основе которой определяются подтипы, называется супер тип. Подтипы должны образовывать полное множество, то есть любой экземпляр супер тип должен относиться к некоторому подтипу. Иногда для полноты множества надо определять дополнительный подтип, например, «Другие».

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

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

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

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

Между двумя сущностям, например, А и В возможны четыре вида связей.

Первый тип - связь ОДИН -К- ОДНОМУ (1: 1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:

Второй тип - связь ОДИН -К- МНОГИМ (1: М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ -К- ОДНОМУ (М: 1) и МНОГО -КО - МНОГИМ (М: N).

Проведем инфологическое проектирование базы данных технологического процесса. На основании анализа предметной области выделим следующие сущности модели «сущность-связь»: «Книги», «Покупатель», «Должности». В таблицах 1, 2, 3 указаны атрибуты выделенных сущностей.

Код_Книги

Код книги

Наименование_Книги

Наименование книги

Автор

Автор

Издательство

Издательство

Год

Год

Язык

Язык

Колво_Проданых

Количество проданых

Код_Должности

Код должности

Цена

Цена

Код_Покупателя

Код покупателя

Таблица 1 - Атрибуты сущности «Книги»

Таблица 2 - Атрибуты сущности «Покупатель»

Код_Покупателя

Код покупателя

ФИО

ФИО

Телефон

Телефон


Таблица 3 - Атрибуты сущности - словаря «Должности»

Код_Должности

Код должности

Код_Покупателя

Код покупателя

Должность

Должность

ФИО

ФИО


3 ПРОЕКТИРОВАНИЕ ЛОГИЧЕСКОЙ И ФИЗИЧЕСКОЙ СТРУКТУРЫ БД

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

Рисунок 3.1 - Схема связи таблиц в реляционной БД

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

Сформируем таблицы по выявленным атрибутам. На рисунке 3.2 изображены таблицы с уже выявленными атрибутами.

Рисунок 3.2 - Соотношение между таблицами

Рисунок 3.3 - Таблица «Должности»

Рисунок 3.4 - Таблица «Книги»

Рисунок 3.5 - Таблица «Покупатель»


Рисунок 3.6 - Схема данных БД

Рисунок 3.7 - Таблица «Должности»

Рисунок 3.8 – Отчет по таблице «Должности»


4 РАЗРАБОТКА ИНТЕРФЕЙСА

 

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

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

 

Рисунок 4.1 - Управляющие кнопки

Рисунок каждой кнопки соответствует смысловому значению кнопки (рис. Б.3 – Б.7). Каждый элемент имеет подсказку, которая всплывает при наведении мыши.

Для работы с чеками использовано элемент ReportViewer, что предоставляет много возможностей для обработки бумажных результатов (рис. 4.2).

Рисунок 4.2 - Элемент просмотра ReportViewer

Элемент просмотра ReportViewer позволяет сохранить данные во многих форматах: « .xls », « .pdf », « .doc »и др., что упрощает дальнейшую обработку данных.


ВЫВОДЫ

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

  1.  Добавление;
  2.  Изменения;
  3.  Удаления;
  4.  Поиск.

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

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

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


Список літератури

  1.  Культин Н. Microsoft Visual C# в примерах и задачах. — Санкт-Петербург "БХВ-Петербург", 2009. — 320 c. 
  2.  Климов А. П. C#. Советы программистам. — СПб.: БХВ-Петербург, 2008. — 517 с.
  3.  Шилдт Герберт. С# 4.0 – полное руководство, 2011 Вильямс, 1056 с.
  4.  Евсеева О. Н., Шамшев А. Б. Работа с базами данных на языке c#. Технология АDО.NET: учебное пособие - Ульяновск: УлГТУ, 2009. - 170 с.
  5.  Лабор В. В. Си Шарп: Создание приложений для Windows — Мн.: Харвест, 2003. -384 с.
  6.  Дрейер М. C# для школьников: Учебное пособие. Перевод с англ. под ред. В. Биллига - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2009. - 128 с.
  7.  Петцольд Ч. Программирование для Microsoft Windows на С#. В 2-х томах. Том 1./Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2002.- 576 с.
  8.  Гросс К. С# 2008: Пер. с англ. — СПб.: БХВ-Петербург, 2009. — 576 с.
  9.  Фаронов В. Программирование на языке С #. – СПб.: Питер, 2007, - 240с.
  10.  Мартынов Н.Н. С# для начинающих. – М.: КУДИЦ – ПРЕСС, 2007. - 272 с.


ПРИЛОЖЕНИЕ А – ЛИСТИНГ ПРОГРАММЫ

A.1 Исходный код файла Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace WindowsFormsApplication1

{

   public partial class Form1 : Form

   {

       //int i = 0;

       public Form1()

       {

           InitializeComponent();

       }

       private void button1_Click(object sender, EventArgs e)

       {

           Book addForm1 = new Book();

           addForm1.ShowDialog(this);

       }

       private void button2_Click(object sender, EventArgs e)

       {

           Posts addForm2 = new Posts();

           addForm2.ShowDialog(this);

       }

       private void button3_Click(object sender, EventArgs e)

       {

           Client addForm3 = new Client();

           addForm3.ShowDialog(this);

       }

       private void button4_Click(object sender, EventArgs e)

       {

           Summary_table addForm4 = new Summary_table();

           addForm4.ShowDialog(this);

       }

   }

}


A.2 Исходный код файла Book.cs

using System;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Data.SqlClient;

using System.IO;

using System.Data.OleDb; //Библиотека

namespace WindowsFormsApplication1

{

   public partial class Book : Form

   {

       OleDbDataAdapter dataAdapter = null;

       DataTable data = new DataTable();

       OleDbConnection database;

       public string a;

       public string st1, st2, st3, st4, st5, st6, st7, st8, st9;

       string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

       public Book()

       {

           InitializeComponent();

           try

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               string queryString = "SELECT * FROM Книги";

               loadDataGrid(queryString);

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }

       }

       public void loadDataGrid(string sqlQueryString)

       {

           OleDbCommand SQLQuery = new OleDbCommand();

           DataTable data = null;

           dataGridView1.DataSource = null;

           SQLQuery.Connection = null;

           dataGridView1.Columns.Clear();

           SQLQuery.CommandText = sqlQueryString;

           SQLQuery.Connection = database;

           data = new DataTable();

           dataAdapter = new OleDbDataAdapter(SQLQuery);

           dataAdapter.Fill(data);

           dataGridView1.DataSource = data;

           dataGridView1.AllowUserToAddRows = false;

           dataGridView1.ReadOnly = true;

       }

       private void button1_Click(object sender, EventArgs e)

       {

           addBook1 addForm1 = new addBook1();

           addForm1.ShowDialog();

       }

       private void button2_Click_1(object sender, EventArgs e)

       {

           addBook2 addForm2 = new addBook2();

           addForm2.Owner = this;

           addForm2.ShowDialog();

       }

       private void button4_Click(object sender, EventArgs e)

       {

           this.Close();

       }

       private void Book_FormClosing(object sender, FormClosingEventArgs e)

       {

           database.Close();

       }

       private void button3_Click(object sender, EventArgs e)

       {

           OleDbConnection database;

           string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

           try

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               //MessageBox.Show(a);

               string queryString = "DELETE Наименование_Книги FROM Книги WHERE Код_Книги = " + a + "";

               //MessageBox.Show(queryString);

               OleDbCommand SQLQuery = new OleDbCommand();

               SQLQuery.CommandText = queryString;

               SQLQuery.Connection = database;

               SQLQuery.ExecuteNonQuery();

               database.Close();

               MessageBox.Show("Книга удалена!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }

       }

       private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

       {

           a = dataGridView1.CurrentRow.Cells[0].Value.ToString();

           st1 = dataGridView1.CurrentRow.Cells[1].Value.ToString();

           st2 = dataGridView1.CurrentRow.Cells[2].Value.ToString();

           st3 = dataGridView1.CurrentRow.Cells[3].Value.ToString();

           st4 = dataGridView1.CurrentRow.Cells[4].Value.ToString();

           st5 = dataGridView1.CurrentRow.Cells[5].Value.ToString();

           st6 = dataGridView1.CurrentRow.Cells[6].Value.ToString();

           st7 = dataGridView1.CurrentRow.Cells[7].Value.ToString();

           st8 = dataGridView1.CurrentRow.Cells[8].Value.ToString();

           st9 = dataGridView1.CurrentRow.Cells[9].Value.ToString();

       }

       private void Book_Load(object sender, EventArgs e)

       {

           a = dataGridView1.CurrentRow.Cells[0].Value.ToString();

           st1 = dataGridView1.CurrentRow.Cells[1].Value.ToString();

           st2 = dataGridView1.CurrentRow.Cells[2].Value.ToString();

           st3 = dataGridView1.CurrentRow.Cells[3].Value.ToString();

           st4 = dataGridView1.CurrentRow.Cells[4].Value.ToString();

           st5 = dataGridView1.CurrentRow.Cells[5].Value.ToString();

           st6 = dataGridView1.CurrentRow.Cells[6].Value.ToString();

           st7 = dataGridView1.CurrentRow.Cells[7].Value.ToString();

           st8 = dataGridView1.CurrentRow.Cells[8].Value.ToString();

           st9 = dataGridView1.CurrentRow.Cells[9].Value.ToString();

       }

       private void Book_Activated(object sender, EventArgs e)

       {

           database = new OleDbConnection(connectionString);

           database.Open();

           string queryString = "SELECT * FROM Книги";

           loadDataGrid(queryString);

       }

       private void button5_Click(object sender, EventArgs e)

       {

           SearshBook addForm5 = new SearshBook();

           addForm5.ShowDialog();

       }

       private void button6_Click(object sender, EventArgs e)

       {

           PrintBook addForm6 = new PrintBook();

           addForm6.ShowDialog();

       }

   }

A.3 Исходный код файла addBook1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace WindowsFormsApplication1

{

   public partial class addBook1 : Form

   {

       public addBook1()

       {

           InitializeComponent();

       }

       private void addBook1_Load(object sender, EventArgs e)

       {

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

           this.покупательTableAdapter.Fill(this.bsDataSet.Покупатель);

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

           this.должностиTableAdapter.Fill(this.bsDataSet.Должности);

        

       }

       private void button2_Click(object sender, EventArgs e)

       {

           OleDbConnection database;

           string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

           try

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               string queryString = "INSERT INTO Книги ( Наименование_Книги, Автор, Издательство, Год, Язык, Колво_Проданых, Код_Должности, Цена, Код_Покупателя )" +

               " VALUES('"  + textBox12.Text + "','" + textBox13.Text + "','" + textBox14.Text + "','" + textBox15.Text + "','" + textBox16.Text + "'," +

               " '" + textBox17.Text + "','" + comboBox1.SelectedValue.ToString() + "','" + textBox18.Text + "','" + comboBox2.SelectedValue.ToString() + "')";

               OleDbCommand SQLQuery = new OleDbCommand();

               SQLQuery.CommandText = queryString;

               SQLQuery.Connection = database;

               SQLQuery.ExecuteNonQuery();

               database.Close();

               MessageBox.Show("Книга добавлена!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

               this.Close();

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }

       }

   }

}

A.4 Исходный код файла addBook2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

namespace WindowsFormsApplication1

{

   public partial class addBook2 : Form

   {

       string s;

       int i = 0;

       public addBook2()

       {

           InitializeComponent();

       }

       private void addBook2_Load(object sender, EventArgs e)

       {

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

           this.покупательTableAdapter.Fill(this.bsDataSet.Покупатель);

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

           this.должностиTableAdapter.Fill(this.bsDataSet.Должности);

       }

       private void button2_Click(object sender, EventArgs e)

       {

           Book main = this.Owner as Book;

           if (main != null)

           {

               this.s = main.a;

           }

           OleDbConnection database;

           string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

           try 

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               //MessageBox.Show(s);

               string queryString = "UPDATE Книги SET Книги.Наименование_Книги = '" + textBox12.Text + "', Книги.Автор = '" + textBox13.Text + "', " +

               " Книги.Издательство = '" + textBox14.Text + "', Книги.Год = '" + textBox15.Text + "', Книги.Язык = '" + textBox16.Text + "', " +

               " Книги.Колво_Проданых = '" + textBox17.Text + "', Книги.Код_Должности = '" + comboBox1.SelectedValue.ToString() + "', Книги.Цена = '" + textBox18.Text + "', Книги.Код_Покупателя = '" + comboBox2.SelectedValue.ToString() + "' " +

               " WHERE (Книги.Код_Книги = " + s + " ) ";

               OleDbCommand SQLQuery = new OleDbCommand();

               //MessageBox.Show(queryString);

               SQLQuery.CommandText = queryString;

               SQLQuery.Connection = database;

               SQLQuery.ExecuteNonQuery();

               database.Close();

               MessageBox.Show("Книга изменена!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

               this.Close();

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }         }

       private void addBook2_Activated(object sender, EventArgs e)

       {

           if (i == 0)

           {

               Book main = this.Owner as Book;

               if (main != null)

               {

                   this.textBox12.Text = main.st1;

                   this.textBox13.Text = main.st2;

                   this.textBox14.Text = main.st3;

                   this.textBox15.Text = main.st4;

                   this.textBox16.Text = main.st5;

                   this.textBox17.Text = main.st6;

                   this.comboBox1.Text = main.st7;

                   this.textBox18.Text = main.st8;

                   this.comboBox2.Text = main.st9;

               }

               ++i;             }         }    } }
A.5 Исходный код файла SearshBook.cs

using System;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Data.SqlClient;

using System.IO;

using System.Data.OleDb;

namespace WindowsFormsApplication1

{

   public partial class SearshBook : Form

   {

       string queryString;

       string s, a;

       OleDbDataAdapter dataAdapter = null;

       DataTable data = new DataTable();

       OleDbConnection database;

       string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

       public SearshBook()

       {

           InitializeComponent();

           try

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               queryString = "SELECT * FROM Книги";

               loadDataGrid(queryString);

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }

       }

       public void loadDataGrid(string sqlQueryString)

       {

           OleDbCommand SQLQuery = new OleDbCommand();

           DataTable data = null;

           dataGridView1.DataSource = null;

           SQLQuery.Connection = null;

           dataGridView1.Columns.Clear();

           SQLQuery.CommandText = sqlQueryString;

           SQLQuery.Connection = database;

           data = new DataTable();

           dataAdapter = new OleDbDataAdapter(SQLQuery);

           dataAdapter.Fill(data);

           dataGridView1.DataSource = data;

           dataGridView1.AllowUserToAddRows = false;

           dataGridView1.ReadOnly = true;

       }

       private void button1_Click(object sender, EventArgs e)

       {

           OleDbConnection database;

           string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bs.mdb";

           try

           {

               database = new OleDbConnection(connectionString);

               database.Open();

               if (radioButton1.Checked == true)

               {

                   s = "Книги.Наименование_Книги";

                   a = "'";

               }

               else if (radioButton2.Checked == true)

               {

                   s = "Книги.Автор";

                   a = "'";

               }

               else if (radioButton3.Checked == true)

               {

                   s = "Книги.Издательство";

                   a = "'";

               }

               else if (radioButton4.Checked == true)

               {

                   s = "Книги.Год";

                   a = "";

               }

               else if (radioButton5.Checked == true)

               {

                   s = "Книги.Язык";

                   a = "'";

               }

               else

               {

                   s = "Книги.Цена";

                   a = "";

               }

               queryString = "SELECT * FROM Книги WHERE ( " + s + " = "+ a +"" + textBox1.Text + ""+ a +");";

               OleDbCommand SQLQuery = new OleDbCommand();

               SQLQuery.CommandText = queryString;

               SQLQuery.Connection = database;

               SQLQuery.ExecuteNonQuery();

               loadDataGrid(queryString);

               database.Close();

           }

           catch (Exception ex)

           {

               MessageBox.Show(ex.Message);

               return;

           }

       }

       private void SearshBook_FormClosing(object sender, FormClosingEventArgs e)

       {

           database.Close();

       }

       private void button2_Click(object sender, EventArgs e)

       {

           this.Close();

       }

   }

}


A.6 Исходный код файла PrintBook.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.Odbc;

using System.Data.SqlClient;

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

namespace WindowsFormsApplication1

{

   public partial class PrintBook : Form

   {

       public PrintBook()

       {

           InitializeComponent();

       }

       private void PrintBook_Load(object sender, EventArgs e)

       {

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

           this.КнигиTableAdapter.Fill(this.bsDataSet.Книги);

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

           //this.КнигиTableAdapter.Fill(this.bsDataSet.Книги);

           this.reportViewer1.RefreshReport();

       }

   }

}


A.7 Исходный код файла PrintClient.cs 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.Odbc;

using System.Data.SqlClient;

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

namespace WindowsFormsApplication1

{

   public partial class PrintClient : Form

   {

       public PrintClient()

       {

           InitializeComponent();

       }

       private void PrintClient_Load(object sender, EventArgs e)

       {

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

           this.ПокупательTableAdapter.Fill(this.bsDataSet.Покупатель);

           this.reportViewer1.RefreshReport();

       }

   }

}


A.8 Исходный код файла PrintBook.cs 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.Odbc;

using System.Data.SqlClient;

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

namespace WindowsFormsApplication1

{

   public partial class PrintPosts : Form

   {

       public PrintPosts()

       {

           InitializeComponent();

       }

       private void PrintPosts_Load(object sender, EventArgs e)

       {

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

           this.ДолжностиTableAdapter.Fill(this.bsDataSet.Должности);

           this.reportViewer1.RefreshReport();

       }

   }

}


ПРИЛОЖЕНИЕ Б - Экранные формы

 

Рисунок Б.1– Главная форма программы

Рисунок Б.2– Форма Книг

Рисунок Б.3– Форма добавлення Книг

Рисунок Б.4–  Реакция программы при удачном добавление записи

Рисунок Б.5– Форма и реакция программы при обновленные данных в записи

Рисунок Б.6– Форма и реакция программы при удаление

Рисунок Б.7– Использование кнопки «Поиск»

Рисунок Б.8– Использование кнопки «Експорт»


ПРИЛОЖЕНИЕ В. Руководство пользователя

В.1 Общие положения

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

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

В.2 Назначение и область применения программы

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

В.3 Краткое описание возможностей системы

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

- Добавление новой информации;

- Изменение внесенной информации;

- Удаление внесенной информации;

- Поиск необходимой информации;

- Формирование электронных данных для сопроводительных документов (например, отчёт);

Гибкий и интуитивно-понятный интерфейс обеспечивает достаточный минимум инструментов и действий для простоты и высокой скорости выполнения операций.

В4. Порядок проверки работоспособности системы

Перед началом работы необходимо убедиться в наличии основной базы данных по пути «Книжный магазин\WindowsFormsApplication1\bin\Debug\ bs.mdb». В случае отсутствия базы данных, необходимо скопировать файл «Книжный магазин\WindowsFormsApplication1\bin\Debug\ bs.mdb».

В5. Сопроводительная документация

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


 

А также другие работы, которые могут Вас заинтересовать

58366. Природа и люди Древней Индии 100.5 KB
  Учащиеся должны знать: географическое положение природные условия занятия религиозные верования жителей Индии. Стадия вызова: На доске иллюстрации по Индии и звучит музыка. Ребята как вы думаете что объединяет эту музыку и иллюстрации которые вы увидели...
58367. Отечественная война 1812 года 47 KB
  Цели урока: Обучающие цели: создать условия для формирования представления о войне 1812 года; показать общую картину Отечественной войны кто начал когда между какими государствами происходила итоги войны.
58369. Письмо строчной буквы «г» 43 KB
  Цели урока: формировать в памяти учащихся чётко дифференцированный зрительно двигательный образ строчной буквы г; развивать у учащихся фонематический слух и культуру звукопроизношения...
58371. РЕШЕНИЕ КВАДРАТНЫХ УРАВНЕНИЙ 120 KB
  Уравнение вида ахвхс=о где х переменная авс некоторые числа причём а≠0 квадратное. Значение переменной при котором уравнение обращается в верное равенство корень.
58373. Россия в условиях глобализации в экономике, политике, культуре. Межпредметный урок-проект 36.5 KB
  Nowadays globalisation is an extremely popular topic, whatever country you are in. - However, not everybody who speaks about it understands what this process actually means
58374. Урок-проект «Die Stadt» 50.5 KB
  Und jetzt wiederholen wir, was wir schon wissen. Schlagt eure Hefte auf. Schreibt das Datum eure Hefte. Heute ist der .... Januar. Ljuda und Artjom kommt an die Tafel! Ljuda nimm die Kreide und schreibe die Übungen an die Tafel.