Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Описание основных функций программного продукта

Введение

 

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

Достаточно широкое трактованные понятия «информационная система» подразумевает, что неотъемлемыми компонентами ИС являются аппаратное обеспечение, а также персонал и организационные мероприятия.

Цели: Разработка информационной системы для работы с базой данных «Складской учет материала».

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

 

1.
Средства и методы разработки программного продукта

информационный программный учет накладная

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

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

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

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

Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент его появления в 1967 году в нём были предложены революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

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

Абстрагирование - это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция - это набор всех таких характеристик.

Инкапсуляция - это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.

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

Полиморфизм - это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

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

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

Прототип - это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка.#-объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft.NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Pascal, Модула, Smalltalk и в особенности Java - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

MySQL - свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

2.
Проектирование и разработка программного продукта

 

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

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

 

using System;System. Collections. Generic;System. ComponentModel;System. Data;System. Drawing;System. Linq;System. Text;System. Windows. Forms;MySql. Data. MySqlClient;System. Globalization;

 

System. Collections. Generic - содержит интерфейсы и классы, определяющие универсальные коллекции, которые позволяют пользователям создавать строго типизированные коллекции, обеспечивающие повышенную производительность и безопасность типов по сравнению с неуниверсальными строго типизированными коллекциями.. ComponentModel - Инициализирует новый экземпляр класса EventDescriptor, используя имя и атрибуты заданного объекта.

Пространство имен System. Data обеспечивает доступ к классам, которые представляют архитектуру ADO.NET. Архитектура ADO.NET позволяет создавать компоненты, эффективно работающие с данными из различных источников.

Пространство имен System. Drawing обеспечивает доступ к функциональным возможностям графического интерфейса GDI+. Пространства имен System. Drawing. Drawing2D, System. Drawing. Imaging, и System. Drawing. Text обеспечивают дополнительные функциональные возможности.

Пространство имен System. Windows. Forms содержит классы для создания приложений Windows, которые позволяют наиболее эффективно использовать расширенные возможности пользовательского интерфейса, доступные в операционной системе Microsoft Windows.

Пространство имен System. Globalization содержит классы, определяющие сведения, относящиеся к культуре, такие как язык, название страны, используемые календари, шаблоны форматирования дат, денежных сумм и чисел, а также порядок сортировки строк. Эти классы применяются при создании многоязыковых приложений. Такие классы, как StringInfo и TextInfo, обладают расширенными возможностями глобализации, включая поддержку заменителей и обработку текстовых элементов.

Пространство имен System. Linq содержит классы и интерфейсы, которые поддерживают запросы, использующие LINQ.- класс - Представляет кодировку символов.

 

Описание основных функций программного продукта

 

Функция удаление и просмотра записей:

 

private void buttonDelete_Click (object sender, EventArgs e)

{

// Удаление для выделенной строки(dataGridView1. SelectedRows. Count > 0)

{str = «»;(int i = 0; i < dataGridView1. SelectedRows. Count; ++i)+= «id =» + dataGridView1. SelectedRows[i].Cells[0].Value + «or»;= str. Remove (str. Length - 3);. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

 // Удаление для выделенной ячейки

if (dataGridView1. SelectedCells. Count > 0)

{DataGridViewSelectedCellCollection cells = dataGridView1. SelectedCells;str = «»;(int i = 0; i < cells. Count; ++i)+= «id =» + dataGridView1. Rows [cells[i].RowIndex].Cells[0].Value + «or»;= str. Remove (str. Length - 3);. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}.buttonShow_Click (this, new EventArgs());

}

 

Функция добавления записей:

 

Warning (textBox9, false);loopstr = textBox9. Text, str = «»;(char loopch in loopstr)

{ch = loopch;(ch == '.') ch = ', ';+= ch;

}+= «'» + str + «',»;

}(textBox10. Text. Length == 0) {Warning (textBox10, true); ++warning;}{Warning (textBox10, false); Add += «'» + textBox10. Text + «');»;}(warning > 0)

{. Show («Ошибка. Неверный формат данных»);

return;

}

{= new MySqlConnection(sourse);. Open();com = new MySqlCommand (Add, con);reader = com. ExecuteReader();. Show («Запись добавлена в таблицу»);. Close();

}

 

Функция поиска записей:

 

private void buttonSearchAdd_Click (object sender, EventArgs e)

{. Rows. Add();

}

void buttonSearchDelete_Click (object sender, EventArgs e)

{(dataGridView2. SelectedCells. Count > 0 || dataGridView2. SelectedRows. Count > 0)

{(dataGridView2. SelectedCells. Count > 0)(int i = 0; i < dataGridView2. SelectedCells. Count; ++i). Rows. RemoveAt (dataGridView2. SelectedCells[i].RowIndex);(dataGridView2. SelectedRows. Count > 0)(int i = 0; i < dataGridView2. SelectedRows. Count; ++i). Rows. RemoveAt (dataGridView2. SelectedRows[i].Index);

}dataGridView2. Rows. RemoveAt (dataGridView2. Rows. Count - 1);

}

 

Функция заказа услуг

 

private DataTable DT()

{query = @ «select * from BD»;ID = comboBoxID. Enabled && comboBoxID. Text!= «», Matherial = comboBoxMatherial. Enabled && comboBoxMatherial. Text!= «», Color = comboBoxColor. Enabled && comboBoxColor. Text!= «», Name = comboBoxNameItem. Enabled && comboBoxNameItem. Text!= «»;(ID || Name || Matherial || Sort || Chena || Kol-vo)

{+= «where»;(ID) query += «ID =» + comboBoxID. Text + «and»;(Name) query += «Name =» + comboBoxNameItem. Text + «and»;(Matherial) query += «Matherial =» + comboBoxMatherial. Text + «and»;(Color) query += «Color =» + comboBoxColor. Text + «and»;= query. Substring (0, query. Length - 5);

}+=»;»;GetTable(query);

}

 

Функция прайс-лист:

 

private void comboBoxNameItem_Click (object sender, EventArgs e)

{. Items. Clear();dt = DT();[] str = new string [dt. Rows. Count];(int i = 0; i < dt. Rows. Count; ++i)

{[i] = (string) dt. Rows[i] [«Name»];

}

}

void comboBoxColor_Click (object sender, EventArgs e)

{. Items. Clear();dt = new DataTable();= GetTable (@ «select Name» + ((checkBoxID. Enabled)? «»: «where ID =» + comboBoxID. Text) + «from BD;»);(int i = 0; i < dt. Rows. Count; ++i)

{. Items. Add (dt. Rows[i] [0]);

}


Выводы

 

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

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

В курсовой работе были получены знания по подключению и работе с базой данных MySQL в C#.

Задача была выполнена успешно.

 

 


Литература

 

1. ГСТУ 3008-95. Документация. Отчеты в сфере науки и технологии. Структура и правила оформления. - Киев: Изд-во стандартов, 1995. - 38 с.

.   Методические указания к курсовому проектированию для студентов колледжа «Сервер», 2002 г. - 8 с.

 


Приложение

 

Листинг программы

 

using System;

using System. Collections. Generic;System. ComponentModel;System. Data;System. Drawing;System. Linq;System. Text;System. Windows. Forms;MySql. Data. MySqlClient;System. Globalization;

OOP_Kurs

{partial class Form1: Form

{Form1 ()

{();

}

static string sourse = @«charset = 'utf8'; Database = OOP_Praktika; Data Source = localhost; User Id = root; Password = «;»;

static MySqlConnection con;

DataTable GetTable (string queryString)

{dt = new DataTable();= new MySqlConnection(sourse);com = new MySqlCommand (queryString, con);

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

{

(dr. HasRows) dt. Load(dr);

}

}(Exception ex)

{. Show (ex. Message);

}dt;

}

void buttonShow_Click (object sender, EventArgs e)

{= new MySqlConnection(sourse);

{. Open();. DataSource = GetTable (@ «Select * from BD order by ID;»);

}

{. Show («Ошибка»);

}. Close();

}

void Form1_Load (object sender, EventArgs e)

{.buttonShow_Click (this, new EventArgs());

}

void checkBoxAddId_CheckedChanged (object sender, EventArgs e)

{. Enabled =! textBox1. Enabled;

}

void Warning (TextBox tb, bool isError)

{color = Color. FromName((isError)? «Red»: «Black»);. ForeColor = color;

}

void buttonAdd_Click (object sender, EventArgs e)

{warning = 0, temp;tempd;Add = @ «insert into BD (»;(textBox1. Enabled)(! Int32. TryParse (textBox1. Text, out temp)) {Warning (textBox1, true); ++warning;}{Warning (textBox1, false); Add += «ID,»;}+= «Name, Price, Quantity, Matherial, Height, Width, Depth, Weight, Color) values (»;(textBox1. Enabled && Int32. TryParse (textBox1. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out temp)) {Warning (textBox1, false); Add += textBox1. Text +»,»;}(textBox2. Text. Length == 0) {Warning (textBox2, true); ++warning;}{Warning (textBox3, false); Add += «'» + textBox2. Text + «',»;}(! Double. TryParse (textBox3. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out tempd)) {Warning (textBox3, true); ++warning;}

{(textBox3, false);loopstr = textBox3. Text, str = «»;(char loopch in loopstr)

{ch = loopch;(ch == '.') ch = ', ';+= ch;

}+= «'» + str + «',»;

}(! Int32. TryParse (textBox4. Text, out temp)) {Warning (textBox4, true); ++warning;}{Warning (textBox4, false); Add += textBox4. Text +»,»;}(textBox5. Text. Length == 0) {Warning (textBox5, true); ++warning;}{Warning (textBox5, false); Add += «'» + textBox5. Text + «',»;}(! Int32. TryParse (textBox6. Text, out temp)) {Warning (textBox6, true); ++warning;}{Warning (textBox6, false); Add += textBox6. Text +»,»;}(! Int32. TryParse (textBox7. Text, out temp)) {Warning (textBox7, true); ++warning;}{Warning (textBox7, false); Add += textBox7. Text +»,»;}(! Int32. TryParse (textBox8. Text, out temp)) {Warning (textBox8, true); ++warning;}{Warning (textBox8, false); Add += textBox8. Text +»,»;}(! Double. TryParse (textBox9. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out tempd)) {Warning (textBox9, true); ++warning;}

{(textBox9, false);loopstr = textBox9. Text, str = «»;(char loopch in loopstr)

{ch = loopch;(ch == '.') ch = ', ';+= ch;

}+= «'» + str + «',»;

}(textBox10. Text. Length == 0) {Warning (textBox10, true); ++warning;}{Warning (textBox10, false); Add += «'» + textBox10. Text + «');»;}(warning > 0)

{. Show («Ошибка. Неверный формат данных»);

return;

}

{= new MySqlConnection(sourse);. Open();com = new MySqlCommand (Add, con);reader = com. ExecuteReader();. Show («Запись добавлена в таблицу»);

con. Close();

}(Exception ex)

{(ex. Message. Contains («Duplicate entry»)) MessageBox. Show («Ошибка. Запись с таким ID уже существует»);

else MessageBox. Show («Ошибка:\n» + ex. Message);

}.buttonShow_Click (this, new EventArgs());

}

void buttonDelete_Click (object sender, EventArgs e)

{

// Удаление для выделенной строки(dataGridView1. SelectedRows. Count > 0)

{str = «»;(int i = 0; i < dataGridView1. SelectedRows. Count; ++i)+= «id =» + dataGridView1. SelectedRows[i].Cells[0].Value + «or»;= str. Remove (str. Length - 3);. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

 // Удаление для выделенной ячейки

if (dataGridView1. SelectedCells. Count > 0)

{cells = dataGridView1. SelectedCells;str = «»;(int i = 0; i < cells. Count; ++i)+= «id =» + dataGridView1. Rows [cells[i].RowIndex].Cells[0].Value + «or»;= str. Remove (str. Length - 3);. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}.buttonShow_Click (this, new EventArgs());

}

void buttonSearchAdd_Click (object sender, EventArgs e)

{. Rows. Add();

}

void buttonSearchDelete_Click (object sender, EventArgs e)

{(dataGridView2. SelectedCells. Count > 0 || dataGridView2. SelectedRows. Count > 0)

{(dataGridView2. SelectedCells. Count > 0)(int i = 0; i < dataGridView2. SelectedCells. Count; ++i). Rows. RemoveAt (dataGridView2. SelectedCells[i].RowIndex);(dataGridView2. SelectedRows. Count > 0)(int i = 0; i < dataGridView2. SelectedRows. Count; ++i). Rows. RemoveAt (dataGridView2. SelectedRows[i].Index);

}dataGridView2. Rows. RemoveAt (dataGridView2. Rows. Count - 1);

}

void buttonSearch_Click (object sender, EventArgs e)

{andor = (radioButtonSearchAnd. Checked)? «AND»: «OR»;result = @ «select * from BD»;(dataGridView2. Rows. Count > 0) result += «where»;(int i = 0; i < dataGridView2. Rows. Count; ++i)

{(i > 0) result += " " + andor;+= «» + dataGridView2. Rows[i].Cells[0].Value + dataGridView2. Rows[i].Cells[1].Value + «'» + dataGridView2. Rows[i].Cells[2].Value + «'»;

}+=»;»;= new MySqlConnection(sourse);

{. Open();. DataSource = GetTable(result);

}

{. Show («Error:\\»);

}. Close();

}

void checkBoxID_CheckedChanged (object sender, EventArgs e)

{. Enabled =! comboBoxID. Enabled;

}

void checkBoxColor_CheckedChanged (object sender, EventArgs e)

{. Enabled =! comboBoxColor. Enabled;

}

void checkBoxMatherial_CheckedChanged (object sender, EventArgs e)

{. Enabled =! comboBoxMatherial. Enabled;

}

void checkBoxNameItem_CheckedChanged (object sender, EventArgs e)

{. Enabled =! comboBoxNameItem. Enabled;

}

DataTable DT()

{query = @ «select * from BD»;ID = comboBoxID. Enabled && comboBoxID. Text!= «», Matherial = comboBoxMatherial. Enabled && comboBoxMatherial. Text!= «», Color = comboBoxColor. Enabled && comboBoxColor. Text!= «», Name = comboBoxNameItem. Enabled && comboBoxNameItem. Text!= «»;(ID || Name || Matherial || Color)

{+= «where»;(ID) query += «ID =» + comboBoxID. Text + «and»;(Name) query += «Name =» + comboBoxNameItem. Text + «and»;(Matherial) query += «Matherial =» + comboBoxMatherial. Text + «and»;(Color) query += «Color =» + comboBoxColor. Text + «and»;= query. Substring (0, query. Length - 5);

}+=»;»;GetTable(query);

}

void comboBoxID_Click (object sender, EventArgs e)

{. Items. Clear();dt = new DataTable();= GetTable (@ «select ID from BD;»);(int i = 0; i < dt. Rows. Count; ++i)

{. Items. Add (dt. Rows[i] [0]);

}

}

void comboBoxNameItem_Click (object sender, EventArgs e)

{. Items. Clear();dt = DT();[] str = new string [dt. Rows. Count];(int i = 0; i < dt. Rows. Count; ++i)

{[i] = (string) dt. Rows[i] [«Name»];

}

}

void comboBoxColor_Click (object sender, EventArgs e)

{. Items. Clear();dt = new DataTable();= GetTable (@ «select Name» + ((checkBoxID. Enabled)? «»: «where ID =» + comboBoxID. Text) + «from BD;»);(int i = 0; i < dt. Rows. Count; ++i)

{. Items. Add (dt. Rows[i] [0]);

}

}

void label11_Click (object sender, EventArgs e)

{

 

}

void comboBox1_SelectedIndexChanged (object sender, EventArgs e)

{

 

}

}

}

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...