Программное средство автоматизации учёта операций обменного пункта валют

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    263,75 Кб
  • Опубликовано:
    2016-12-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программное средство автоматизации учёта операций обменного пункта валют

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет информатики и радиоэлектроники»

филиал «Минский радиотехнический колледж»





Программное средство автоматизации учёта операций обменного пункта валют

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту по дисциплине

«Базы данных и системы управления базами данных»

Введение

Темой данного курсового проекта являет автоматизация учёта операций обменного пункта валют.

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

Для более эффективной работы обменных пунктов необходима их автоматизация. В связи с этим требуется дополнительные затраты. Однако не следует считать, что средний банк готов тратить большие суммы на компьютеризацию. Но для мелких и средних банков покупка дорогих модулей автоматизированных банковских систем не всегда выгодна, так как это дорогостоящие проекты, для которых нужна более мощная, современная техника с высокой стоимостью. А также не всегда известна длительность существования выносного обменного пункта, на этот фактор влияют и другие условия. Поэтому возникает необходимость к нахождению более дешевых альтернативных методов решения этой проблемы, так как банки такого уровня стремятся уменьшать свои затраты. Именно этим определяется практическая значимость выбранной темы и ее актуальность. Данная система проектируется с целью уменьшения времени обслуживания клиента и увеличения скорости обработки поступающей информации, что позволит облегчить труд оператору валютно-обменных операций, что увеличит его производительность. А также разрабатываемая автоматизированная система позволит вести более эффективно реестр валютно-обменных операций. Тема данного курсового проекта: «Автоматизация учета операций пункта обмена валют».

Целью курсового проекта является автоматизация обменного пункта валют.

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

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

Курсовое проектирование имеет следующие задачи:

закрепить, углубить и систематизировать теоретические знания и практические умения, полученные при изучении дисциплины БД и СУБД;

привить навыки самостоятельной разработки БД на SQL-сервере;

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

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

Предмет курсового проекта - отследить операции обменного пункта валют.

Пояснительная записка курсового проекта состоит из пяти разделов.

В разделе «Постановка задачи» описывается основные цели и задачи программного средства. Требования, которым должно соответствовать это программное средство.

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

В разделе «Программная реализация» описывает непосредственно разработку самой базы данных и программного средства.

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

В разделе «Описание применения» описывается рабочее программное средство с готовой базой данных, применение программного средства в работе.

В заключении можно отметить, что регистрация покупателя очень важна, как для налоговой, так и для сотрудников обменного пункта[3].

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

Необходимо разработать программное средство “Автоматизация учёта операций обменного пункта валют”. В данном программном средстве присутствуют следующие функции:

продажа иностранной валюты;

покупка иностранной валюты;

просмотр курса валют;

следить за проделанной работой обменного пункта.

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

.1 Описание предметной области

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

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

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

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

На рынке программного обеспечения существуют множество банковских систем и отдельных программных продуктов автоматизирующих валютно-обменные операции. Одно из решений - это UnionBusinessSystem компании «ЮниСАБ» (рисунок 1.1). В данной системе разработан бизнес «обменный пункт». Программа «Обменный пункт» обеспечивает полную автоматизацию работы кассира "выносного" обменного пункта и опосредованную связь с банком. В Бизнесе реализован автоматический контроль движения бланков строгой отчетности с выделением их состояния - неиспользованные, выданные, испорченные. Его широкие возможности позволяют настраивать программный модуль в соответствии с регламентом работы обменного пункта. Все выполняемые операции сопровождаются формированием необходимых печатных документов. Параметры каждой операции имеют гибкие настройки в соответствии с внутрибанковской инструкцией работы обменных пунктов. Программа готовит полный набор документов авансовая заявка и заявка на подкрепление, реестры по всем выполняемым операция, справка об остатках, препроводительные ведомости (валютная и рублевая), акт передачи другому кассиру.

Рисунок 1.1 - Union Business System

Плюсами данного программного средства являются:

возможность ведения электронного реестра валютно-обменных операций;

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

простота в обучении персонала.

К минусам можно отнести:

доступность цены разработок;

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

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

Рисунок 1.2 - Центавр-Дельта

Плюсами данного программного средства являются:

возможность ведения электронного реестра валютно-обменных операций;

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

простота в обучении персонала.

К минусам можно отнести:

доступность цены разработок;

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

В разрабатываемом программном продукте достоинствами являются:

возможность ведения электронного реестра валютно-обменных операций;

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

простота в обучении персонала;

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

Входными данными являются:

информация о клиенте (информация о документе удостоверяющего личность клиента);

информация о курсах валют и о самой валюте;

информация о проводимой операции (наименование операции, сумма, комиссия).

К постоянным данным можно отнести базу данных.

.2 Цели и задачи проектирования

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

ускорение времени оформления справки о проведении операции с валютой;

уменьшение времени обслуживания клиентов;

снижение рисков утраты или порчи документов;

увеличение эффективности ведения реестра валютно-обменных операций;

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

Предметной областью является валютно-обменные операции совершаемые оператором. С помощью данной системы можно совершать следующие операции:

продажа иностранной валюты;

покупка иностранной валюты;

конверсия;

просмотр курса валют;

следить за проделанной работой обменного пункта.

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

2. Проектирование задачи

.1 Проектирование схемы базы данных

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

Для этого необходимо решить ряд задач, таких как:

выбор модели данных;

нормализация таблиц;

проверка логической модели данных на предмет возможности выполнения всех транзакций;

определение требований поддержки целостности данных и их документирование;

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

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

должность;

смена;

сотрудник;

операция;

покупатель;

паспорт;

тип операции;

касса;

валюта;

покупка-продажа.

Далее следует идентифицировать связи.

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

один-к-одному;

один-ко-многим;

многие-к-одному;

много-ко-многим.

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

Связь типа один-к-многим означает, что один экземпляр одного отношения связан с несколькими экземплярами второго отношения. Это наиболее часто используемый тип связи. Первое отношение (со стороны «один») называется родительским, второе (со стороны «много») - дочерним.

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

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

Каждая связь может иметь одну из двух модальностей связи, таких как:

«может»;

«должен».

Модальность «может» означает, что экземпляр одного отношения может быть связан с одним или несколькими экземплярами другой отношения, а может быть и не связан ни с одним экземпляром.

Модальность «должен» означает, что экземпляр одного отношения обязан быть связан не менее чем с одним экземпляром другого отношения.

Далее при проектировании схемы базы данных следует определить атрибуты отношений.

Отношение «Должность» имеет следующий набор атрибутов:

идентификатор должности;

должность.

Отношение «Смена» имеет следующий набор атрибутов:

идентификатор смены;

смена.

Отношение «Сотрудник» имеет следующий набор атрибутов:

идентификатор сотрудника;

фамилия;

имя;

телефон;

идентификатор должности;

статус;

идентификатор смены.

Отношение «Операция» имеет следующий набор атрибутов:

идентификатороперации;

идентификатор сотрудника;

идентификатор типа;

идентификатор кассы;

идентификатор покупателя;

дата.

Отношение «Покупатель» имеет следующий набор атрибутов:

идентификатор покупателя;

фамилия;

имя;

отчество;

идентификатор паспорта.

Отношение «Паспорт» имеет следующий набор атрибутов:

идентификатор паспорта;

номер;

серия.

Отношение «Тип операции» имеет следующий набор атрибутов:

идентификатор типа;

операция.

Отношение «Касса» имеет следующий набор атрибутов:

идентификатор кассы;

сумма ввода;

итог;

идентификатор покупки-продажи.

Отношение «Покупка-продажа» имеет следующий набор атрибутов:

идентификатор покупки-продажи;

идентификатор валюты;

покупка;

продажа.

Отношение «Валюта» имеет следующий набор атрибутов:

идентификатор валюты;

название.

Рисунок 2.1 - Диаграмма «Сущность-связь»

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

2.2 Алгоритм реализации задачи

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

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

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

.3 Описание сред реализации задачи

Для разработки базы данных был выбран язык программирования SQL и среда разработки Microsoft Visual Studio 2015, операционная система Windows 10.

SQL - формальный <https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85>, управляемой соответствующей системой управления базами данных. SQL основывается на исчислении кортежей <https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D1%80%D1%82%D0%B5%D0%B6%D0%B5%D0%B9>. Он представляет собой совокупность операторов, инструкций и вычисляемых функций.является прежде всего информационно-логическим языком <https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA>, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных <https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85>. SQL можно назвать языком программирования <https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F>, при этом он не является тьюринг-полным <https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%BF%D0%BE_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D1%83>, но вместе с тем стандарт языка спецификацией SQL/PSM <https://ru.wikipedia.org/wiki/SQL/PSM> предусматривает возможность его процедурных расширений <https://ru.wikipedia.org/wiki/SQL>.

Изначально SQL был основным способом работы пользователя с базой данных <https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85> и позволял выполнять следующий набор операций:

создание в базе данных новой таблицы;

добавление в таблицу новых записей;

изменение записей;

удаление записей;

выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);

изменение структур таблиц.

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

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

Каждое предложение SQL - это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

запросы на получение данных;

запросы на добавление новых данных (записей);

запросы на удаление данных;

обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на:

запросы, оперирующие самими таблицами (создание и изменение таблиц);

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

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

типа хранимых в каждом поле значений;

связей между таблицами (задание первичных и внешних ключей);

информации, необходимой для построения индексов.

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

вставка новой строки;

изменение значений полей строки или набора строк;

удаление строки или набора строк.

Самый главный вид запроса - это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

просмотреть полученный набор;

изменить все записи набора;

удалить все записи набора.

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

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

Для реализации проекта выбрана следующая среда и средства разработки:

среда разработки - Visual Studio 2015 - это очень современная и высококлассная среда разработки, которая имеет удобный интерфейс и большие возможности. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. В этой среде возможно выбрать язык программирования из достаточно большого списка предложенных, что тоже немеловажно;

интерфейс программирования приложений - Windows Forms - интерфейс программирования приложений (API), отвечающий за графический интерфейс пользователя и являющийся частью Microsoft .NET Framework. Данный интерфейс упрощает доступ к элементам интерфейса Microsoft Windows. Приемуществом является и то, что управляемый код - классы, реализующие API для Windows Forms, не зависят от языка разработки. То есть программист одинаково может использовать Windows Forms как при написании ПО на C#, С++, так и на VB.Net, J# и др.;

способ организации графического интерфейса пользователя - MDI (Multiple document interface) - способ организации графического интерфейса пользователя, предполагающий использование оконного интерфейса, в котором большинство окон (исключая, как правило, только модальные окна) расположены внутри одного общего окна. Этим он и отличается от SDI, в котором окна располагаются независимо друг от друга. У него много преимуществ, среди которых: уменьшение загромождённости экрана элементами интерфейса, все окна приложения можно прятать/показывать, сворачивать/разворачивать и проводить с ними другие манипуляции, как с одним окном.;

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

В C# применяется унифицированная система типов. Все типы C#, включая простые типы (например, int и double), наследуются от единственного корневого типа object. Таким образом, все типы используют набор общих операций, что обеспечивает согласованные хранение, передачу и обработку значений любого типа. Кроме того, в C# поддерживаются пользовательские ссылочные типы и типы значений, что обеспечивает динамическое размещение объектов в памяти и встроенное хранение упрощенных структур.

Чтобы обеспечить совместимость и возможность дальнейшего развития программ и библиотек C#, в языке C# большое внимание уделяется управлению версиями. В большинстве языков программирования этому вопросу уделяется недостаточное внимание, в результате чего в создаваемых на таких языках программах чаще обычного возникают проблемы при переходе на новые версии зависимых библиотек. В C# реализованы следующие возможности по управлению версиями: разделение модификаторов virtual и override, применение правил разрешения перегрузки метода и поддержка явного объявления членов интерфейса.

Данный язык был выбран исходя из двух критериев: знание и удобство языка. C# - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework[4].

. Программная реализация

.1 Физическая структура базы данных

Физические модели баз данных определяют способы размещения данных в среде хранения и способы доступа к этим данным, которые поддерживаются на физическом уровне.

Разрабатываемая база данных “obmen” была создана командой create database obmen;.Таблицы в базе данных состоят из следующих атрибутов и обладают следующими свойствами:

“dolchnost”состоящая из следующих атрибутови типов данных:id_dolchnosti int, dolchosts text;

“smena”состоящая из следующих атрибутови типов данных: id_smeni int, rabochaa_smena text;

“sotrudnik” состоящая из следующих атрибутов и типов данных:id_sotrudika int,familiatext, imatext, otchestvotext, telefonint, id_dolchnostiint, id_smeniint;

“pasport” состоящая из следующих атрибутов и типов данных:id_pasporta int, nomer int, seria text;

“pokupatel” состоящая из следующих атрибутов и типов данных:id_pokupatela int, familia text, ima text, otchestvo text, id_pasporta int;

“tip_operacii” состоящая из следующих атрибутов и типов данных:id_tipa int, operaciatext;

“valuta” состоящая из следующих атрибутов и типов данных: id_valuti int, nazvanie text;

“pokupka_prodacha” состоящая из следующих атрибутов и типов данных: id_pokupki int, id_valuti int, pokupak int, prodacha int;

“kassa” состоящая из следующих атрибутов и типов данных: id_kassiint, summa_vvoda int, itog int, id_pokupki int;

“operacia” состоящая из следующих атрибутов и типов данных:id_operacii int, id_sotrudika int, id_tipa int, id_kassi int, id_pokupatela int, data date.

Синтаксис создания таблиц createtable<имя таблица>(<атрибуты>);.

create table dolchnost(id_dolchnosti int AUTO_INCREMENT,dolchosts text,PRIMARY KEY (id_dolchnosti));table smena(_smeni int AUTO_INCREMENT,_smena text,KEY(id_smeni)

);table sotrudnik(_sotrudika int AUTO_INCREMENT,text,text,text,int,_dolchnosti int,_smeni int,text,KEY(id_sotrudika),KEY (id_dolchnosti) REFERENCES dolchnost (id_dolchnosti),KEY (id_smeni) REFERENCES smena (id_smeni)

);table pasport(_pasporta int AUTO_INCREMENT,int,text,KEY(id_pasporta)

);table pokupatel(_pokupatela int AUTO_INCREMENT,text,text,text,_pasporta int,KEY (id_pokupatela),KEY (id_pasporta) REFERENCES pasport (id_pasporta)

);table tip_operacii(_tipa int AUTO_INCREMENT,text,KEY(id_tipa)

);table valuta(_valuti int AUTO_INCREMENT,text,KEY(id_valuti)

);table pokupka_prodacha(_pokupki int AUTO_INCREMENT,_valuti int,int,int,KEY (id_pokupki),KEY (id_valuti) REFERENCES valuta (id_valuti)

);table kassa(_kassi int AUTO_INCREMENT,_vvoda int,int,_pokupki int,KEY(id_kassi),KEY (id_pokupki) REFERENCES pokupka_prodacha (id_pokupki)

);table operacia(_operacii int AUTO_INCREMENT,_sotrudika int,_tipa int,_kassi int,_pokupatela int,date,KEY(id_operacii),KEY (id_sotrudika) REFERENCES sotrudnik (id_sotrudika),KEY (id_tipa) REFERENCES tip_operacii (id_tipa),KEY (id_kassi) REFERENCES kassa (id_kassi),KEY (id_pokupatela) REFERENCES pokupatel (id_pokupatela));

Всё выше описанное продемонстрировано в таблице 3.1.

Таблица 3.1-”Таблицы и их атрибуты”

Атрибут

Тип данных

Атрибут

Тип данных

Таблица “dolchnost”

“smena”

id_dolchnosti

Int

id_smeni

int

dolchosts

Text

rabochaa_smena

text

Таблица “sotrudnik"

Таблица “operacia”

id_sotrudika

Int

id_operacii

int

familia

Text

id_sotrudika

int

ima

Text

id_tipa

int

otchestvo

Text

id_kassi

unt

telefon

Int

id_pokupatela

int

id_dolchnosti

Int

data

date

id_smeni

Int

Таблица “pokupka_prodacha”

status

Text

id_pokupki

int

Таблица “pasport”

id_valuti

int

id_pasporta

Int

pokupak

int

nomer

Int

prodacha

int

seria

Text

Таблица “pokupatel”

Таблица “kassa”

id_pokupatela

int

id_kassi

Int

familia

text

summa_vvoda

Int

ima

text

itog

Int

otchestvo

text

id_pokupki

Int

id_pasporta

int

Таблица “tip_operacii”

Таблица “valuta”

id_tipa

Int

id_valuti

int

operacia

Text

nazvanie

text


Также, для каждой записи базы данных, система присваивает внутренний идентификатор, называемый ключом базы данных. Значение ключа формируется системой при размещении записи и содержит информацию, позволяющую однозначно определить место размещения записи (её адрес)[2].

.2 Структура приложения

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

главное меню;

отображения списка операций;

отображения списка сотрудников;

отображения списка покупателей;

отображения списка валюты;

добавления новой операции;

добавления нового сотрудника;

добавления новой валюты.

Схематичный план главного меню представлен на рисунке 3.1.

Рисунок 3.1-Интерфейс главного меню

Схематичный план формы со списком операций представлен на рисунке 3.2.

Рисунок 3.2- Интерфейс формы со списком операций


Рисунок 3.3 - Интерфейс формы со списком сотрудников

Форма для добавления новой операции представлена на рисунке 3.4.

Рисунок 3.4 - Интерфейс формы для добавления новой операции

В программном средстве были использованы следующие библиотеки:

“MySql.Data” - служит для работы с MySql базой данных;

“itextsharp” - служит для сохранения информации в pdfфайл.

Так же был использован шрифт “Times New Roman” для корректного сохранения и отображения сохранённой информации.

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

Класс «Operacii»-содержит необходимые поля и методы для отображения списка операций.

Класс «Admin»-содержит необходимые поля для авторизации администратора.

Класс «NewOper»- содержит поля и методы для добавления новой операции.

Класс «Sortudniki»- содержит поля и методы для отображения списка сотрудников.

Класс «NewSotr»-содержит поля и методы для добавления и изменения сотрудников.

Класс «Pokupateli»- содержит поля и методы для отображения и поиска покупателей.

Класс «Kurs»-содержит поля и методы для отображения курсов валют.

Класс «NewVal»-содержит поля и методы для добавления или изменения курсов валют.

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

“GetComments(string queryString)”-процедура для выполнения SQL-запросов;

“ID(DataGridView dg, string s)”- процедура для получения идентификатора необходимой таблицы;

“Razmer(DataGridViewdg)”- процедура для изменения размеров таблицы в соответствии с количеством строк;

“Stolb()”- процедура для изменения названий столбцов таблицы;

“TB(string s)”- процедура для поиска сотрудника или покупателя в таблице.

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

Элементом для отображения табличных данных используется dataGridView.

4. Тестирование

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

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

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

В общем случае причина ошибки может быть связана с недостаточным пониманием задачи, недостатками проектирования, ошибками, допущенными при кодировании.

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

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

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

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

Тестирование данной программы описано в таблице 4.1.

Таблица 4.1 - Результаты выполнения тестовых заданий.

Название операции

Событие

Ожидаемый результат

Фактический результат

 

1

2

3

4

 

Переход на главную страницу»

Загрузка главной страницы

Переходна главную страницу

Переход на главную страницу

 

Просмотр списка операций

Загрузка списка операций

Просмотр списка операций

Просмотр списка операций

 

Сортировка списка операций по выбранному критерию

Сортировка списка операций

Вывод отсортированного списка операций

Вывод отсортированного списка операций

 

Добавление новой операции

Ввод информации и нажатие на кнопку добавления

Добавление операции и обновления списка операций

Добавление операции и обновления списка операций

 

Сохранение списка операций

Нажатие на кнопку сохранение

Сохранение списка на носитель

Сохранение списка на носитель

 

Просмотр списка покупателей

Загрузка списка покупателей

Просмотр списка покупателей

Просмотр списка покупателей

 

Просмотр списка сотрудников

Загрузка списка сотрудников

Просмотр списка сотрудников

Просмотр списка сотрудников

 

Изменения списка сотрудников

Ввод данных и нажатие на кнопку изменения информации

Изменение списка сотрудников

Изменение списка сотрудников

 

Просмотр списка валют

Загрузка списка валют

Просмотр списка валют

Просмотр списка валют

 

Добавление нового сотрудника

Заполнение требующихся форм и нажатие на кнопку добавить

Сотрудник добавлен

Сотрудник добавлен

Добавление новой валюты

Заполнение форм для добавления валюты и нажатие на кнопку добавить

Валюта добавлена

Валюта добавлена

Аутентификация администратора

Заполнение форм авторизации и нажатие на кнопку войти

Администратор аутентифицирован

Администратор аутентифицирован

Сохранение списка сотрудников

Нажатие на кнопку сохранения

Список сохранён

Список сохранён

Поиск покупателя по фамилии

Заполнение поля и нажатие на кнопку поиска

Покупатель выведен на новой форме

Покупатель выведен на новой форме

Сохранение результата поиска

Нажатие на кнопку сохранение

Список сохранён

Список сохранён

Просмотр полной информации о покупателе из списка операций

Двойной щелчок мыши по фамилии

Открытие новой формы и отображение информации

Открытие новой формы и отображение информации

Просмотр полной информации о сотруднике из списка операций

Двойной щелчок мыши по фамилии

Открытие новой формы и отображение информации

Открытие новой формы и отображение информации


После проведения тестовых заданий над программным средством не было выявлено ошибок[1].

. Описание применения

Программное средство “Автоматизация учёта операций обменного пункта валют” предназначено для ведения учёта операций обменного пункта валют, осуществления поиска нужной операции.

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

Для работы с данным программным средством необходим компьютер со следующими параметрами:

операционные системы WindowsXP, Windows 7, Windows 8/8.1 и Windows 10должны обладать последним пакетом обновлений CPUx86/x64 Intel или AMD 1GHz;

видеоадаптер с поддержкой цветовой палитры 16 бит или выше;

разрешение экрана 800x600 или выше;

свободное место на жестком диске не менее 250мб;

клавиатура, мышь.

Данное программное средство рассчитано на сотрудников пунктов обмена валют. Это эффективный инструмент по учёту операций по обмену валют.

Благодаря простому и удобному интерфейсу данным программным средством могут пользоваться люди разного возраста.

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

Рисунок 5.1 - Главное меню

Сразу открывается вкладка“Операции” со списком проделанных операций, представленное на рисунке 5.2.

Рисунок 5.2 - Окно со списком операций

Пользователь может отсортировать операции по дате или по сумме ввода. Так же пользователь может отобразить операции по продаже валют“Отобразить операции по продаже валюты”. Для добавления новой операции нужно нажать на кнопку “Добавить новую операцию” и в открывшемся окне, представленном на рисунке 5.3, ввести данные.

Рисунок 5.3- Добавление новой операции

После нажатия кнопки “Добавить”данные будут занесены в таблицу операции.

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

При нажатии на вкладку“Покупатели” открывается вкладка с информацией о покупателях валюты. Можно вывести фамилию покупателя по номеру паспорта, показанном на рисунке 5.4, сохранить результат в pdfформате.Для добавления нового покупателя нужно ввести данные, нажать на кнопку “Добавить покупателя”.

Рисунок 5.4 - Результат поиска

При нажатии на вкладку“Сотрудники” открывается вкладка, показанное на рисунке 5.5, с информацией о сотрудниках.

Рисунок 5.5 - Список сотрудников

При нажатии на вкладку “Валюта” открывается вкладка с информацией о текущем курсе валют, показанное на рисунке 5.6. Так же можно вывести курс доллара.

Рисунок 5.6 - Курс валют

Для входа в режим администратора нужно нажать на соответствующую кнопку главного меню и заполнить форму входа, показанную на рисунке 5.7.

Рисунок 5.7 - Форма входа в режим администратора

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

Рисунок 5.8 - Добавление сотрудника

Так же изменять курс валюты.

Для изменения нужно сделать щелчок мыши по нужно валюте и заполнить поля и нажать кнопку “Изменить курс”, показанной на рисунке 5.13.

Рисунок 5.9 - Изменение валюты

Для выхода из режима администратора нужно нажать на кнопку “Выйти из режима администратора” в главном меню. После этого все функции администратора станут недоступны.

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

Заключение

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

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

В программное средство присутствуют такие функции, как:

Сортировка операций по указанным критериям- для предоставления пользователю возможности удобного просмотра списка операций;

возможность поиска покупателей по фамилии - для предоставления информации по проделанным ими операций;

добавление новой операции - удобный и понятный интерфейс для добавления новой операции;

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

возможность отредактировать выбранную валюту - для своевременного изменения курсов валют;

возможность добавления новой валюты - для расширения клиентской базы;

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

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

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

возможность увольнения сотрудников - для возможности удалять из списка уволенных сотрудников; автоматизация учет валюта

При разработке программного средства «Автоматизация учёта операций обменного пункта валют», были закреплены навыки использования системы управления базами данных MySQL и языка программирования C#.

Список использованных источников

Список используемой литературы:

Канкурогова, C# для чайников: учеб. пособие / Н.И. Канкурогова. - Москва: ООО "Издательский центр "Академия", 2010. - 240 с.

Фаронов В.В. Программирование на языке C#/В.В. Фаронов - М.: Питер, 2007.- 241 с.

Курсы валют, вклады, кредиты на сайте крупнейшего банка Беларуси // Курсы валют, вклады, кредиты на сайте крупнейшего банка Беларуси URL: http://belarusbank.by (дата обращения: 30.10.2016);(T) - класс (System.Collections.Generic) // MSDN - сеть разработчиков Microsoft URL: https://msdn.microsoft.com/ru-ru/library/6sh2ey19(v=vs.110).aspx (дата обращения: 11.11.2016).

Приложение А

(обязательное)

Текст программы

using System;

using System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;MySql.Data.MySqlClient;БД_и_СУБД

{: Form

{Form1()

{();

}mysqlCSB;admin = false;ADM

{{ admin = value; }

}GetComments(string queryString)

{dt = newDataTable();(MySqlConnection con = newMySqlConnection())

{.ConnectionString = mysqlCSB.ConnectionString;com = newMySqlCommand(queryString, con);

{.Open();(MySqlDataReader dr = com.ExecuteReader())

{(dr.HasRows)

{.Load(dr);

}

}

}(Exception ex)

{.Show(ex.Message);

}

}dt;

}Razmer(DataGridView dg)

{.Width = dg.ColumnCount * 100 + 45;(dg.RowCount > 5)

{.Height = 150;

}.Height = dg.RowCount * 40;dg;

}Form1_Load(object sender, EventArgs e)

{= newMySqlConnectionStringBuilder();.Server = "localhost";.Database = "obmen";.UserID = "root";.Password = "qwerty8511";.DataSource = GetComments(@"SELECT * FROM dolchnost;");(dataGridView1);.DataSource = GetComments(@"SELECT * FROM smena;");(dataGridView2);.DataSource = GetComments(@"SELECT id_sotrudika, familia,ima,otchestvo,telefon, dolchosts, rabochaa_smena FROM sotrudnik, smena,dolchnost where sotrudnik.id_dolchnosti=dolchnost.id_dolchnosti AND sotrudnik.id_smeni=smena.id_smeni;");.Columns[0].Visible = false;(dataGridView3);.DataSource = GetComments(@"SELECT familia,ima,otchestvo, seria,nomer FROM pokupatel,pasport WHERE pokupatel.id_pasporta=pasport.id_pasporta;");(dataGridView5);.DataSource = GetComments(@"SELECT id_pokupki,nazvanie, pokupak,prodacha FROM pokupka_prodacha, valuta where pokupka_prodacha.id_valuti=valuta.id_valuti;");(dataGridView6);.Columns[0].Visible = false;.DataSource = GetComments(@"SELECT sotrudnik.familia, pokupatel.familia,tip_operacii.operacia, data,summa_vvoda,itog tip_operacii, kassa, operacia o,sotrudnik,pokupatel o.id_sotrudika=sotrudnik.id_sotrudika AND o.id_pokupatela=pokupatel.id_pokupatela AND o.id_tipa=tip_operacii.id_tipa AND o.id_kassi=kassa.id_kassi;");.Columns[0].HeaderText = "Фамилиясотрудника";.Columns[1].HeaderText = "Фамилияпокупателя";(dataGridView9);

}

button1_Click(object sender, EventArgs e)

{

Вывод_результата f = newВывод_результата();

f.DT = GetComments(@"SELECT familia,ima FROM sotrudnik where id_smeni=1");.Show();

}

button2_Click(object sender, EventArgs e)

{c = textBox1.Text;

Вывод_результата f = newВывод_результата();

string s = @"SELECT familia FROM pokupatel where id_pasporta=(select id_pasporta from pasport where nomer = " + c + ");";.DT = GetComments(s);.Show();

}button3_Click(object sender, EventArgs e)

{

Вывод_результата f = newВывод_результата();

f.DT = GetComments(@"SELECT pokupak,prodacha from pokupka_prodacha where id_valuti = (select id_valuti from valuta where nazvanie = 'USD');");.Show();

}button4_Click(object sender, EventArgs e)

{

Вывод_результата f = newВывод_результата();

f.DT = GetComments(@"SELECT * from kassa where itog>3;");.Show();

}button5_Click(object sender, EventArgs e)

{

Вывод_результата f = newВывод_результата();

f.DT = GetComments(@"SELECT sotrudnik.familia, pokupatel.familia,tip_operacii.operacia, data,summa_vvoda,itog tip_operacii, kassa, operacia o,sotrudnik,pokupatel o.id_sotrudika=sotrudnik.id_sotrudika AND o.id_pokupatela=pokupatel.id_pokupatela AND o.id_tipa=tip_operacii.id_tipa AND o.id_kassi=kassa.id_kassi AND o.id_tipa = (select id_tipa from tip_operacii where operacia = 'продажавалюты');");.Show();

}выйтиИзРежимаАдминистратораToolStripMenuItem_Click(object sender, EventArgs e)

{= false;

режимАдминистратораToolStripMenuItem.Visible = true;

выйтиИзРежимаАдминистратораToolStripMenuItem.Visible = false;.Visible = false;.Visible = false;.Visible = label2.Visible = label3.Visible = label4.Visible = label5.Visible = label6.Visible = false;.Visible = textBox3.Visible = textBox4.Visible = textBox5.Visible = textBox6.Visible = textBox7.Visible = false;.Visible = false;.Visible= false;.Enabled = false;

}

режимАдминистратораToolStripMenuItem_Click(object sender, EventArgs e)

{f = newAdmin();.Owner = this;.ShowDialog();(admin)

{

выйтиИзРежимаАдминистратораToolStripMenuItem.Visible = true;

режимАдминистратораToolStripMenuItem.Visible = false;.Visible = true;.Visible = true;.Visible = label2.Visible = label3.Visible = label4.Visible = label5.Visible = label6.Visible = true;.Visible = textBox3.Visible = textBox4.Visible = textBox5.Visible = textBox6.Visible = textBox7.Visible = true;.Visible = true;.Visible = true;.Enabled = true;

}

}button6_Click(object sender, EventArgs e)

{

{f = textBox2.Text;i = textBox3.Text;o = textBox4.Text;n = Int32.Parse(textBox5.Text);id1 = Int32.Parse(textBox6.Text);id2 = Int32.Parse(textBox7.Text);com = "insert into sotrudnik (familia, ima, otchestvo, telefon, id_dolchnosti, id_smeni) values (\"" + f + "\", \"" + i + "\", \"" + o + "\", " + n.ToString() + ", " + id1.ToString() + "," + id2.ToString() + ");";(com);.DataSource = GetComments(@"SELECT id_sotrudika, familia,ima,otchestvo,telefon, dolchosts, rabochaa_smena FROM sotrudnik, smena,dolchnost where sotrudnik.id_dolchnosti=dolchnost.id_dolchnosti AND sotrudnik.id_smeni=smena.id_smeni;");(dataGridView3);

}

{ MessageBox.Show("Ошибка!!!"); }

}nom;ID(DataGridView dt, string s)

{id=0;n = dt.RowCount;(int i =0;i<n;i++)

{(dt.Rows[i].Cells[1].Value.ToString() == s)

{= i+1;;

}

}id;

}dataGridView3_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)

{= dataGridView3.CurrentRow.Index;.Text = dataGridView3.Rows[nom].Cells[1].Value.ToString();.Text = dataGridView3.Rows[nom].Cells[2].Value.ToString();.Text = dataGridView3.Rows[nom].Cells[3].Value.ToString();.Text = dataGridView3.Rows[nom].Cells[4].Value.ToString();.Text = ID(dataGridView1, dataGridView3.Rows[nom].Cells[5].Value.ToString()).ToString();.Text = ID(dataGridView2, dataGridView3.Rows[nom].Cells[6].Value.ToString()).ToString();

}button7_Click(object sender, EventArgs e)

{f = textBox2.Text;i = textBox3.Text;o = textBox4.Text;n = Int32.Parse(textBox5.Text);id1 = Int32.Parse(textBox6.Text);id2 = Int32.Parse(textBox7.Text);id = dataGridView3.Rows[nom].Cells[0].Value.ToString();com = "update sotrudnik set familia='" + f + "',ima ='" + i + "',otchestvo='" + o + "', telefon=" + n.ToString() + ",id_dolchnosti=" + id1.ToString() + ",id_smeni=" + id2.ToString() + " where id_sotrudika="+id+";";(com);.DataSource = GetComments(@"SELECT id_sotrudika, familia,ima,otchestvo,telefon, dolchosts, rabochaa_smena FROM sotrudnik, smena,dolchnost where sotrudnik.id_dolchnosti=dolchnost.id_dolchnosti AND sotrudnik.id_smeni=smena.id_smeni;");

}button8_Click(object sender, EventArgs e)

{s = textBox8.Text;n = textBox9.Text;com = "insert into pasport (nomer, seria) values(" + n + ", \"" + s + "\");";(com);

}nom1;dataGridView5_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)

{= dataGridView5.CurrentRow.Index;.Text = dataGridView5.Rows[nom1].Cells[0].Value.ToString();.Text = dataGridView5.Rows[nom1].Cells[1].Value.ToString();.Text = dataGridView5.Rows[nom1].Cells[2].Value.ToString();.Text = dataGridView5.Rows[nom1].Cells[3].Value.ToString();.Text = dataGridView5.Rows[nom1].Cells[4].Value.ToString();

}button10_Click(object sender, EventArgs e)

{f = textBox10.Text;i = textBox11.Text;o = textBox12.Text;n = textBox9.Text;s = textBox8.Text;com = "insert into pasport (nomer, seria) values(" + n + ", \"" + s + "\"); ";(com);.DataSource = GetComments("SELECT id_pasporta from pasport");id = dataGridView4.Rows[dataGridView4.RowCount - 1].Cells[0].Value.ToString();= "insert into pokupatel(familia,ima,otchestvo,id_pasporta) values (\"" + f + "\",\"" + i + "\",\"" + o + "\"," + id + ");";(com);.DataSource = GetComments(@"SELECT familia,ima,otchestvo, seria,nomer FROM pokupatel,pasport WHERE pokupatel.id_pasporta=pasport.id_pasporta;");(dataGridView5);

}nom2;dataGridView6_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)

{= dataGridView6.CurrentRow.Index;.Text = dataGridView6.Rows[nom2].Cells[2].Value.ToString();.Text = dataGridView6.Rows[nom2].Cells[3].Value.ToString();

}button11_Click(object sender, EventArgs e)

{

string pok = textBox14.Text;prod = textBox15.Text;id = dataGridView6.Rows[nom2].Cells[0].Value.ToString();com = "update pokupka_prodacha set pokupak=" + pok + ", prodacha=" + prod + " where id_pokupki =" + id + ";";(com);.DataSource = GetComments(@"SELECT id_pokupki,nazvanie, pokupak,prodacha FROM pokupka_prodacha, valuta where pokupka_prodacha.id_valuti=valuta.id_valuti;");(dataGridView6);.Columns[0].Visible = false;

}privatevoid button12_Click(object sender, EventArgs e)

{.DataSource = GetComments(@"SELECT sotrudnik.familia, pokupatel.familia,tip_operacii.operacia, data,summa_vvoda,itog FROM tip_operacii, kassa, operacia o,sotrudnik,pokupatel where o.id_sotrudika=sotrudnik.id_sotrudika AND o.id_pokupatela=pokupatel.id_pokupatela AND o.id_tipa=tip_operacii.id_tipa AND o.id_kassi=kassa.id_kassiBY data;");(dataGridView9);

}button13_Click(object sender, EventArgs e)

{.DataSource = GetComments(@"SELECT sotrudnik.familia, pokupatel.familia,tip_operacii.operacia, data,summa_vvoda,itog FROM tip_operacii, kassa, operacia o,sotrudnik,pokupatel where o.id_sotrudika=sotrudnik.id_sotrudika AND o.id_pokupatela=pokupatel.id_pokupatela AND o.id_tipa=tip_operacii.id_tipa AND o.id_kassi=kassa.id_kassiBY summa_vvoda;");(dataGridView9);

}button14_Click(object sender, EventArgs e)

{

Добавление f = newДобавление();.ShowDialog();

dataGridView9.DataSource = GetComments(@"SELECT sotrudnik.familia, pokupatel.familia,tip_operacii.operacia, data,summa_vvoda,itog tip_operacii, kassa, operacia o,sotrudnik,pokupatel o.id_sotrudika=sotrudnik.id_sotrudika AND o.id_pokupatela=pokupatel.id_pokupatela AND o.id_tipa=tip_operacii.id_tipa AND o.id_kassi=kassa.id_kassi;");.Columns[0].HeaderText = "Фамилиясотрудника";.Columns[1].HeaderText = "Фамилияпокупателя";(dataGridView9);

}

}

}System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;MySql.Data.MySqlClient;БД_и_СУБД

{Добавление : Form

{Добавление()

{();

}mysqlCSB;GetComments(string queryString)

{dt = newDataTable();(MySqlConnection con = newMySqlConnection())

{.ConnectionString = mysqlCSB.ConnectionString;com = newMySqlCommand(queryString, con);

{.Open();(MySqlDataReader dr = com.ExecuteReader())

{(dr.HasRows)

{.Load(dr);

}

}

}(Exception ex)

{.Show(ex.Message);

}

}dt;

}Добавление_Load(object sender, EventArgs e)

{= newMySqlConnectionStringBuilder();.Server = "localhost";.Database = "obmen";.UserID = "root";.Password = "qwerty8511";.DataSource = GetComments("SELECT id_sotrudika,familia,ima,otchestvo FROM sotrudnik;");.Columns[0].Visible = false;.DataSource = GetComments("SELECT id_pokupatela,familia,ima,otchestvo FROM pokupatel;");.Columns[0].Visible = false;

}button1_Click(object sender, EventArgs e)

{

{id_s = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString();id_p = dataGridView2.Rows[dataGridView2.CurrentRow.Index].Cells[0].Value.ToString();sum = textBox1.Text;id_v = comboBox1.SelectedIndex.ToString();itog = textBox2.Text;id_t = comboBox2.SelectedIndex.ToString();com = "insert into kassa (summa_vvoda, itog, id_pokupki) values (" + sum + ", " + itog + "," + id_v + "); ";(com);.DataSource = GetComments("SELECT id_kassi from kassa;");id_k = dataGridView3.Rows[dataGridView3.RowCount - 1].Cells[0].Value.ToString();= "insert into operacia (id_sotrudika, id_tipa,id_kassi, id_pokupatela, data) values (" + id_s + "," + id_t + "," + id_k + "," + id_p + ", NOW())";(com);

}{ MessageBox.Show("Ошибка! Проверьтевведённыеданные!"); }

}

}

}System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;БД_и_СУБД

{: Form

{Admin()

{();

}button1_Click(object sender, EventArgs e)

{(textBox1.Text == "admin"&& textBox2.Text == "admin")

{f = this.Owner asForm1;.ADM = true;

}

{

}();

}

}

}System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.IO;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Reflection;iTextSharp.text.pdf;iTextSharp.text;БД_и_СУБД

{Вывод_результата : Form

{Вывод_результата()

{();

}dt;DT

{{ dt = value; }

}Razmer(DataGridView dg)

{.Width = dg.ColumnCount * 100 + 45;(dg.RowCount > 5)

{.Height = 150;

}.Height = dg.RowCount * 50;dg;

}Вывод_результата_Load(object sender, EventArgs e)

{.DataSource = dt;(dataGridView1);(this.Width < dataGridView1.Width)

{.Width = dataGridView1.Width + 100;

}

}button1_Click(object sender, EventArgs e)

{bs = BaseFont.CreateFont(Application.StartupPath + @"\Times New Roman.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);.text.Font f = new iTextSharp.text.Font(bs);pdfTable = newPdfPTable(dataGridView1.ColumnCount);.DefaultCell.Padding = 3;.WidthPercentage = 30;.HorizontalAlignment = Element.ALIGN_LEFT;.DefaultCell.BorderWidth = 1;

//Adding Header row(DataGridViewColumn column in dataGridView1.Columns)

{cell = newPdfPCell(newPhrase(column.HeaderText,f));.BackgroundColor = new iTextSharp.text.Color(240, 240, 240);.AddCell(cell);

}

//Adding DataRow(DataGridViewRow row in dataGridView1.Rows)

{(DataGridViewCell cell in row.Cells)

{c = cell.Value.ToString();col = newPdfPCell(newPhrase(c,f));.AddCell(col);

}

}

//Exporting to PDF.Filter = "PDF файлы(.pdf)|*.pdf|Всефайлы|*.*";.FilterIndex = 1;.RestoreDirectory = true;.ShowDialog();s = saveFileDialog1.FileName;(FileStream stream = newFileStream(s, FileMode.Create))

{pdfDoc = newDocument(PageSize.A2, 10f, 10f, 10f, 0f);.GetInstance(pdfDoc, stream);.Open();.Add(pdfTable);.Close();.Close();

}

}

}

}

Похожие работы на - Программное средство автоматизации учёта операций обменного пункта валют

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!