Складской учет материала

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.07.2014
Размер файла 40,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C#-объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft.NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

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

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

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

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

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

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

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

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System. Windows. Forms;

using MySql. Data. MySqlClient;

using System. Globalization;

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

System. 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.

Encoding - класс - Представляет кодировку символов.

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

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

private void buttonDelete_Click (object sender, EventArgs e)

{

 // Удаление для выделенной строки

if (dataGridView1. SelectedRows. Count > 0)

{

string str = «»;

for (int i = 0; i < dataGridView1. SelectedRows. Count; ++i)

str += «id =» + dataGridView1. SelectedRows[i].Cells[0].Value + «or»;

str = str. Remove (str. Length - 3);

dataGridView1. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

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

if (dataGridView1. SelectedCells. Count > 0)

{DataGridViewSelectedCellCollection cells = dataGridView1. SelectedCells;

string str = «»;

for (int i = 0; i < cells. Count; ++i)

str += «id =» + dataGridView1. Rows [cells[i].RowIndex].Cells[0].Value + «or»;

str = str. Remove (str. Length - 3);

dataGridView1. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

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

}

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

Warning (textBox9, false);

string loopstr = textBox9. Text, str = «»;

foreach (char loopch in loopstr)

{

char ch = loopch;

if (ch == '.') ch = ', ';

str += ch;

}

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

}

if (textBox10. Text. Length == 0) {Warning (textBox10, true); ++warning;}

else {Warning (textBox10, false); Add += «'» + textBox10. Text + «');»;}

if (warning > 0)

{

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

return;

}

try

{

con = new MySqlConnection(sourse);

con. Open();

MySqlCommand com = new MySqlCommand (Add, con);

MySqlDataReader reader = com. ExecuteReader();

MessageBox. Show («Запись добавлена в таблицу»);

con. Close();

}

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

private void buttonSearchAdd_Click (object sender, EventArgs e)

{

dataGridView2. Rows. Add();

}

private void buttonSearchDelete_Click (object sender, EventArgs e)

{

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

{

if (dataGridView2. SelectedCells. Count > 0)

for (int i = 0; i < dataGridView2. SelectedCells. Count; ++i)

dataGridView2. Rows. RemoveAt (dataGridView2. SelectedCells[i].RowIndex);

if (dataGridView2. SelectedRows. Count > 0)

for (int i = 0; i < dataGridView2. SelectedRows. Count; ++i)

dataGridView2. Rows. RemoveAt (dataGridView2. SelectedRows[i].Index);

}

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

}

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

private DataTable DT()

{

string query = @ «select * from BD»;

bool ID = comboBoxID. Enabled && comboBoxID. Text!= «», Matherial = comboBoxMatherial. Enabled && comboBoxMatherial. Text!= «», Color = comboBoxColor. Enabled && comboBoxColor. Text!= «», Name = comboBoxNameItem. Enabled && comboBoxNameItem. Text!= «»;

if (ID || Name || Matherial || Sort || Chena || Kol-vo)

{

query += «where»;

if (ID) query += «ID =» + comboBoxID. Text + «and»;

if (Name) query += «Name =» + comboBoxNameItem. Text + «and»;

if (Matherial) query += «Matherial =» + comboBoxMatherial. Text + «and»;

if (Color) query += «Color =» + comboBoxColor. Text + «and»;

query = query. Substring (0, query. Length - 5);

}

query +=»;»;

return GetTable(query);

}

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

private void comboBoxNameItem_Click (object sender, EventArgs e)

{

comboBoxColor. Items. Clear();

DataTable dt = DT();

string [] str = new string [dt. Rows. Count];

for (int i = 0; i < dt. Rows. Count; ++i)

{

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

}

}

private void comboBoxColor_Click (object sender, EventArgs e)

{

comboBoxColor. Items. Clear();

DataTable dt = new DataTable();

dt = GetTable (@ «select Name» + ((checkBoxID. Enabled)? «»: «where ID =» + comboBoxID. Text) + «from BD;»);

for (int i = 0; i < dt. Rows. Count; ++i)

{

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

}

Выводы

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

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

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

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

Литература

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

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

Приложение

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

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System. Windows. Forms;

using MySql. Data. MySqlClient;

using System. Globalization;

namespace OOP_Kurs

{

public partial class Form1: Form

{

public Form1 ()

{

InitializeComponent();

}

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

private static MySqlConnection con;

private DataTable GetTable (string queryString)

{

DataTable dt = new DataTable();

con = new MySqlConnection(sourse);

MySqlCommand com = new MySqlCommand (queryString, con);

try

{

con. Open();

using (MySqlDataReader dr = com. ExecuteReader())

{

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

}

}

catch (Exception ex)

{

MessageBox. Show (ex. Message);

}

return dt;

}

private void buttonShow_Click (object sender, EventArgs e)

{

con = new MySqlConnection(sourse);

try

{

con. Open();

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

}

catch

{

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

}

con. Close();

}

private void Form1_Load (object sender, EventArgs e)

{

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

}

private void checkBoxAddId_CheckedChanged (object sender, EventArgs e)

{

textBox1. Enabled =! textBox1. Enabled;

}

private void Warning (TextBox tb, bool isError)

{

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

tb. ForeColor = color;

}

private void buttonAdd_Click (object sender, EventArgs e)

{

int warning = 0, temp;

double tempd;

string Add = @ «insert into BD (»;

if (textBox1. Enabled)

if (! Int32. TryParse (textBox1. Text, out temp)) {Warning (textBox1, true); ++warning;}

else {Warning (textBox1, false); Add += «ID,»;}

Add += «Name, Price, Quantity, Matherial, Height, Width, Depth, Weight, Color) values (»;

if (textBox1. Enabled && Int32. TryParse (textBox1. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out temp)) {Warning (textBox1, false); Add += textBox1. Text +»,»;}

if (textBox2. Text. Length == 0) {Warning (textBox2, true); ++warning;}

else {Warning (textBox3, false); Add += «'» + textBox2. Text + «',»;}

if (! Double. TryParse (textBox3. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out tempd)) {Warning (textBox3, true); ++warning;}

else

{

Warning (textBox3, false);

string loopstr = textBox3. Text, str = «»;

foreach (char loopch in loopstr)

{

char ch = loopch;

if (ch == '.') ch = ', ';

str += ch;

}

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

}

if (! Int32. TryParse (textBox4. Text, out temp)) {Warning (textBox4, true); ++warning;}

else {Warning (textBox4, false); Add += textBox4. Text +»,»;}

if (textBox5. Text. Length == 0) {Warning (textBox5, true); ++warning;}

else {Warning (textBox5, false); Add += «'» + textBox5. Text + «',»;}

if (! Int32. TryParse (textBox6. Text, out temp)) {Warning (textBox6, true); ++warning;}

else {Warning (textBox6, false); Add += textBox6. Text +»,»;}

if (! Int32. TryParse (textBox7. Text, out temp)) {Warning (textBox7, true); ++warning;}

else {Warning (textBox7, false); Add += textBox7. Text +»,»;}

if (! Int32. TryParse (textBox8. Text, out temp)) {Warning (textBox8, true); ++warning;}

else {Warning (textBox8, false); Add += textBox8. Text +»,»;}

if (! Double. TryParse (textBox9. Text, NumberStyles. Number, CultureInfo. InvariantCulture, out tempd)) {Warning (textBox9, true); ++warning;}

else

{

Warning (textBox9, false);

string loopstr = textBox9. Text, str = «»;

foreach (char loopch in loopstr)

{

char ch = loopch;

if (ch == '.') ch = ', ';

str += ch;

}

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

}

if (textBox10. Text. Length == 0) {Warning (textBox10, true); ++warning;}

else {Warning (textBox10, false); Add += «'» + textBox10. Text + «');»;}

if (warning > 0)

{

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

return;

}

try

{

con = new MySqlConnection(sourse);

con. Open();

MySqlCommand com = new MySqlCommand (Add, con);

MySqlDataReader reader = com. ExecuteReader();

MessageBox. Show («Запись добавлена в таблицу»);

con. Close();

}

catch (Exception ex)

{

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

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

}

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

}

private void buttonDelete_Click (object sender, EventArgs e)

{

 // Удаление для выделенной строки

if (dataGridView1. SelectedRows. Count > 0)

{

string str = «»;

for (int i = 0; i < dataGridView1. SelectedRows. Count; ++i)

str += «id =» + dataGridView1. SelectedRows[i].Cells[0].Value + «or»;

str = str. Remove (str. Length - 3);

dataGridView1. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

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

if (dataGridView1. SelectedCells. Count > 0)

{

DataGridViewSelectedCellCollection cells = dataGridView1. SelectedCells;

string str = «»;

for (int i = 0; i < cells. Count; ++i)

str += «id =» + dataGridView1. Rows [cells[i].RowIndex].Cells[0].Value + «or»;

str = str. Remove (str. Length - 3);

dataGridView1. DataSource = GetTable (@ «delete from BD where» + str +»;»);

}

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

}

private void buttonSearchAdd_Click (object sender, EventArgs e)

{

dataGridView2. Rows. Add();

}

private void buttonSearchDelete_Click (object sender, EventArgs e)

{

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

{

if (dataGridView2. SelectedCells. Count > 0)

for (int i = 0; i < dataGridView2. SelectedCells. Count; ++i)

dataGridView2. Rows. RemoveAt (dataGridView2. SelectedCells[i].RowIndex);

if (dataGridView2. SelectedRows. Count > 0)

for (int i = 0; i < dataGridView2. SelectedRows. Count; ++i)

dataGridView2. Rows. RemoveAt (dataGridView2. SelectedRows[i].Index);

}

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

}

private void buttonSearch_Click (object sender, EventArgs e)

{

string andor = (radioButtonSearchAnd. Checked)? «AND»: «OR»;

string result = @ «select * from BD»;

if (dataGridView2. Rows. Count > 0) result += «where»;

for (int i = 0; i < dataGridView2. Rows. Count; ++i)

{

if (i > 0) result += " " + andor;

result += «» + dataGridView2. Rows[i].Cells[0].Value + dataGridView2. Rows[i].Cells[1].Value + «'» + dataGridView2. Rows[i].Cells[2].Value + «'»;

}

result +=»;»;

con = new MySqlConnection(sourse);

try

{

con. Open();

dataGridView3. DataSource = GetTable(result);

}

catch

{

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

}

con. Close();

}

private void checkBoxID_CheckedChanged (object sender, EventArgs e)

{

comboBoxID. Enabled =! comboBoxID. Enabled;

}

private void checkBoxColor_CheckedChanged (object sender, EventArgs e)

{

comboBoxColor. Enabled =! comboBoxColor. Enabled;

}

private void checkBoxMatherial_CheckedChanged (object sender, EventArgs e)

{

comboBoxMatherial. Enabled =! comboBoxMatherial. Enabled;

}

private void checkBoxNameItem_CheckedChanged (object sender, EventArgs e)

{

comboBoxNameItem. Enabled =! comboBoxNameItem. Enabled;

}

private DataTable DT()

{

string query = @ «select * from BD»;

bool ID = comboBoxID. Enabled && comboBoxID. Text!= «», Matherial = comboBoxMatherial. Enabled && comboBoxMatherial. Text!= «», Color = comboBoxColor. Enabled && comboBoxColor. Text!= «», Name = comboBoxNameItem. Enabled && comboBoxNameItem. Text!= «»;

if (ID || Name || Matherial || Color)

{

query += «where»;

if (ID) query += «ID =» + comboBoxID. Text + «and»;

if (Name) query += «Name =» + comboBoxNameItem. Text + «and»;

if (Matherial) query += «Matherial =» + comboBoxMatherial. Text + «and»;

if (Color) query += «Color =» + comboBoxColor. Text + «and»;

query = query. Substring (0, query. Length - 5);

}

query +=»;»;

return GetTable(query);

}

private void comboBoxID_Click (object sender, EventArgs e)

{

comboBoxID. Items. Clear();

DataTable dt = new DataTable();

dt = GetTable (@ «select ID from BD;»);

for (int i = 0; i < dt. Rows. Count; ++i)

{

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

}

}

private void comboBoxNameItem_Click (object sender, EventArgs e)

{

comboBoxColor. Items. Clear();

DataTable dt = DT();

string [] str = new string [dt. Rows. Count];

for (int i = 0; i < dt. Rows. Count; ++i)

{

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

}

}

private void comboBoxColor_Click (object sender, EventArgs e)

{

comboBoxColor. Items. Clear();

DataTable dt = new DataTable();

dt = GetTable (@ «select Name» + ((checkBoxID. Enabled)? «»: «where ID =» + comboBoxID. Text) + «from BD;»);

for (int i = 0; i < dt. Rows. Count; ++i)

{

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

}

}

private void label11_Click (object sender, EventArgs e)

{

}

private void comboBox1_SelectedIndexChanged (object sender, EventArgs e)

{

}

}

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.