ОСТАЛОСЬ ФОРМАТНУТЬ. Служба доставки (клиенты, график доставки, транспорт, маршрут)
Скачать 1.08 Mb.
|
ЗАКЛЮЧЕНИЕВ данной работе была разработана конфигурация для ведения учета транспортной доставки заказов. Данный процесс на рассматриваемом предприятии наиболее сложен в связи с большим количеством клиентов, разнообразием заказов, что накладывает свои требования к разрабатываемой системе. В аналитической части выполнен комплекс работ, направленных на обоснование необходимости автоматизации: определена сущность задачи, описаны основные свойства системы, дано описание всем существующим бизнес-процессам, рассмотрены вопросы, связанные с анализом существующих разработок в этой области. Также в первой главе обосновываются проектные решения по информационному, программному, техническому и технологическому обеспечению. Проектная часть посвящена созданию конфигурации для решения задачи. Также дана характеристика информационной архитектуры разрабатываемой проекта, описана структура справочников, документов, проанализированы все информационные потоки входной, оперативной, нормативно-справочной и результатной информации. ПРИЛОЖЕНИЕЛистинг программы скрипта SQLusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.IO; namespace DataBase { public partial class Form1 : Form { //Создаём подключение к базе данных SqlConnection connect = new SqlConnection("Server=localhost;" + "database=Notarius;" + "Integrated Security=True"); public Form1() { InitializeComponent(); tabPage2.Text = "Клиенты"; tabPage1.Text = "Скидка"; tabPage3.Text = "Услуга"; tabPage4.Text = "Сделка"; tabPage5.Text = "Результат запроса"; tabPage6.Text = "Клиенты"; tabPage7.Text = "Скидка"; tabPage8.Text = "Услуга"; tabPage9.Text = "Сделка"; tabPage10.Text = "Добавить данные в таблицу"; tabPage11.Text = "Удалить данные из таблицы"; } private void подключитьсяКБДToolStripMenuItem_Click(object sender, EventArgs e) { connect.Open(); //Выводим данные из таблицы Клиент SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Klient", connect); DataSet ds = new DataSet(); SqlCommand comm = new SqlCommand("SELECT * FROM Klient", connect); adapter.SelectCommand = comm; DataTable table = new DataTable(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter.Fill(table); BindingSource bs = new BindingSource(); bs.DataSource = table; dataGridView1.DataSource = bs; // Выводим данные из таблицы Сделка SqlDataAdapter adapter2 = new SqlDataAdapter("SELECT * FROM Sdelka", connect); DataSet ds2 = new DataSet(); SqlCommand comm2 = new SqlCommand("SELECT * FROM Sdelka", connect); adapter2.SelectCommand = comm2; DataTable table2 = new DataTable(); table2.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter2.Fill(table2); BindingSource bs2 = new BindingSource(); bs2.DataSource = table2; dataGridView4.DataSource = bs2; //Выводим данные из таблицы Скидка SqlDataAdapter adapter3 = new SqlDataAdapter("SELECT * FROM Skidka", connect); DataSet ds3 = new DataSet(); SqlCommand comm3 = new SqlCommand("SELECT * FROM Skidka", connect); adapter3.SelectCommand = comm3; DataTable table3 = new DataTable(); table3.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter3.Fill(table3); BindingSource bs3 = new BindingSource(); bs3.DataSource = table3; dataGridView2.DataSource = bs3; //Выводим данные из таблицы Услуга SqlDataAdapter adapter4 = new SqlDataAdapter("SELECT * FROM Usluga", connect); DataSet ds4 = new DataSet(); SqlCommand comm4 = new SqlCommand("SELECT * FROM Usluga", connect); adapter4.SelectCommand = comm4; DataTable table4 = new DataTable(); table4.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter4.Fill(table4); BindingSource bs4 = new BindingSource(); bs4.DataSource = table4; dataGridView3.DataSource = bs4; connect.Close(); } private void button1_Click(object sender, EventArgs e) { //Выполняем первый запрос: Из таблицы Клиент Выводится Телефон и ФИО connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT FIO, Telefon FROM Klient", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT FIO, Telefon FROM Klient", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; connect.Close(); } private void button2_Click(object sender, EventArgs e) { //Выполняем второй запрос: Из таблиц Услуга и Клиент выводим Описание услуги и ФИО клиента connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT Opisanie, FIO FROM Usluga, Klient WHERE [N uslugi]=[N klienta] ORDER BY FIO", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT Opisanie, FIO FROM Usluga, Klient WHERE [N uslugi]=[N klienta] ORDER BY FIO", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; connect.Close(); } private void button3_Click(object sender, EventArgs e) { //Выполняем третий запрос: Из таблиц Сделка и Клиент вывести ФИО клиента и Дату connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT FIO, Data FROM Sdelka, Klient WHERE Klient.[N klienta]=[N sdelki]", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT FIO, Data FROM Sdelka, Klient WHERE Klient.[N klienta]=[N sdelki]", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; connect.Close(); } private void button4_Click(object sender, EventArgs e) { string Nkl = ""; string FIO = ""; string Viddet = ""; string Adr = ""; string Tel = ""; string sum = ""; Nkl = Convert.ToString(textBox1.Text); FIO = Convert.ToString(textBox2.Text); Viddet = Convert.ToString(textBox3.Text); Adr = Convert.ToString(textBox4.Text); Tel = Convert.ToString(textBox5.Text); sum = "('"+ Nkl + "', '" + FIO + "', '" + Viddet + "', '" + Adr + "', '" + Tel+"')"; connect.Open(); try { //Добавляем данные в таблицу Клиент SqlDataAdapter adapter5 = new SqlDataAdapter("INSERT INTO Klient VALUES " + sum, connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("INSERT INTO Klient VALUES " + sum, connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим дополненную таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Klient", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Klient", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView1.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!","Ошибка ввода"); } connect.Close(); } private void button5_Click(object sender, EventArgs e) { string Nsk = ""; string Vsk = ""; int Rsk; string sum = ""; Nsk = Convert.ToString(textBox6.Text); Vsk = Convert.ToString(textBox7.Text); Rsk = (int) Convert.ToInt32(textBox8.Text); sum = "('" + Nsk + "', '" + Vsk + "', '"; connect.Open(); try { //Добавляем данные в таблицу Скидка SqlDataAdapter adapter7 = new SqlDataAdapter("INSERT INTO Skidka VALUES " + sum + Rsk +"')", connect); DataSet ds7 = new DataSet(); SqlCommand comm7 = new SqlCommand("INSERT INTO Skidka VALUES " + sum + Rsk + "')", connect); adapter7.SelectCommand = comm7; DataTable table7 = new DataTable(); table7.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter7.Fill(table7); BindingSource bs7 = new BindingSource(); bs7.DataSource = table7; dataGridView5.DataSource = bs7; //Выводим дополненную таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Skidka", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Skidka", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView2.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button6_Click(object sender, EventArgs e) { string Nusl = ""; string OpUsl = ""; string StUsl = ""; string sum = ""; Nusl = Convert.ToString(textBox9.Text); OpUsl = Convert.ToString(textBox10.Text); StUsl = Convert.ToString(textBox11.Text); sum = "('" + Nusl + "', '" + OpUsl + "', '" + StUsl + "')"; connect.Open(); try { //Добавляем данные в таблицу Услуга SqlDataAdapter adapter5 = new SqlDataAdapter("INSERT INTO Usluga VALUES " + sum, connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("INSERT INTO Usluga VALUES " + sum, connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим дополненную таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Usluga", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Usluga", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView3.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button7_Click(object sender, EventArgs e) { string Nsd = ""; string Nsk = ""; string Nusl = ""; string Nkl = ""; string Data = ""; string SumSd = ""; string Kom = ""; string sum = ""; Nsd = Convert.ToString(textBox12.Text); Nsk = Convert.ToString(textBox13.Text); Nusl = Convert.ToString(textBox14.Text); Nkl = Convert.ToString(textBox15.Text); Data = Convert.ToString(textBox16.Text); SumSd = Convert.ToString(textBox17.Text); Kom = Convert.ToString(textBox18.Text); sum = "('" + Nsd + "', '" + Nsk + "', '" + Nusl + "', '" + Nkl + "', '" + Data + "', '" + SumSd + "', '" + Kom + "')"; connect.Open(); try { //Добавляем данные в таблицу Сделка SqlDataAdapter adapter5 = new SqlDataAdapter("INSERT INTO Sdelka VALUES " + sum, connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("INSERT INTO Sdelka VALUES " + sum, connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим дополненную таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Sdelka", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Sdelka", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView4.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button8_Click(object sender, EventArgs e) { //Выполняем четвёртый запрос: Из таблицы Услуга вывести максимальную стоимость услуги connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT MAX([Stoimost uslugi]) FROM Usluga", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT MAX([Stoimost uslugi]) FROM Usluga", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; dataGridView5.Columns[0].HeaderCell.Value = "MAX"; connect.Close(); } private void выходToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void button9_Click(object sender, EventArgs e) { //Выполняем пятый запрос: Из таблицы Сделка вывести Сумму всех сделок connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT SUM(SummaSdelki) FROM Sdelka", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT SUM(SummaSdelki) FROM Sdelka", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; dataGridView5.Columns[0].HeaderCell.Value = "Сумма"; connect.Close(); } private void button10_Click(object sender, EventArgs e) { string ns = ""; int n; ns = Convert.ToString(textBox19.Text); connect.Open(); try { n = Convert.ToInt32(ns); //Удаляем из таблицы Клиент SqlDataAdapter adapter5 = new SqlDataAdapter("DELETE FROM Klient WHERE [N klienta] = '" + n + "'", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("DELETE FROM Klient WHERE [N klienta] = '" + n + "'", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим изменённую таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Klient", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Klient", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView1.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button11_Click(object sender, EventArgs e) { string ns = ""; int n; ns = Convert.ToString(textBox20.Text); connect.Open(); try { n = Convert.ToInt32(ns); //Удаляем из таблицы Скидка SqlDataAdapter adapter5 = new SqlDataAdapter("DELETE FROM Skidka WHERE [N skidki] = '" + n + "'", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("DELETE FROM Skidka WHERE [N skidki] = '" + n + "'", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим изменённую таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Skidka", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Skidka", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView2.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button12_Click(object sender, EventArgs e) { string ns = ""; int n; ns = Convert.ToString(textBox21.Text); connect.Open(); try { n = Convert.ToInt32(ns); //Удаляем из таблицы Услуга SqlDataAdapter adapter5 = new SqlDataAdapter("DELETE FROM Usluga WHERE [N uslugi] = '" + n + "'", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("DELETE FROM Usluga WHERE [N uslugi] = '" + n + "'", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим изменённую таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Usluga", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Usluga", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView3.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button13_Click(object sender, EventArgs e) { string ns = ""; int n; ns = Convert.ToString(textBox22.Text); connect.Open(); try { n = Convert.ToInt32(ns); //Удаляем из таблицы Сделка SqlDataAdapter adapter5 = new SqlDataAdapter("DELETE FROM Sdelka WHERE [N sdelki] = '" + n + "'", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("DELETE FROM Sdelka WHERE [N sdelki] = '" + n + "'", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; //Выводим изменённую таблицу SqlDataAdapter adapter6 = new SqlDataAdapter("SELECT * FROM Sdelka", connect); DataSet ds6 = new DataSet(); SqlCommand comm6 = new SqlCommand("SELECT * FROM Sdelka", connect); adapter6.SelectCommand = comm6; DataTable table6 = new DataTable(); table6.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter6.Fill(table6); BindingSource bs6 = new BindingSource(); bs6.DataSource = table6; // dataGridView5.DataSource = bs6; dataGridView4.DataSource = bs6; } catch { MessageBox.Show("Вы ввели неверные значения!", "Ошибка ввода"); } connect.Close(); } private void button14_Click(object sender, EventArgs e) { //Выполняем шестой запрос: Из таблицы Сделка вывести Сумму сделки без комиссионых connect.Open(); SqlDataAdapter adapter5 = new SqlDataAdapter("SELECT SummaSdelki, Komissionie, (SummaSdelki-Komissionie) FROM Sdelka", connect); DataSet ds5 = new DataSet(); SqlCommand comm5 = new SqlCommand("SELECT SummaSdelki, Komissionie, (SummaSdelki-Komissionie) FROM Sdelka", connect); adapter5.SelectCommand = comm5; DataTable table5 = new DataTable(); table5.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter5.Fill(table5); BindingSource bs5 = new BindingSource(); bs5.DataSource = table5; dataGridView5.DataSource = bs5; dataGridView5.Columns[2].HeaderCell.Value = "Без комиссионных"; connect.Close(); } private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) { Form f2; f2 = new Form2(); f2.Show(this); } private void обАвтореToolStripMenuItem_Click(object sender, EventArgs e) { Form f3; f3 = new Form3(); f3.Show(this); } private void руководствоПользователяToolStripMenuItem_Click(object sender, EventArgs e) { Form f4; f4 = new Form4(); f4.Show(this); } } } СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ1. ГОСТ 34.602-89. «Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Техническое задание на создание автоматизированной системы». 2. Абрамов Г.В., Медведкова И.Е., Коробкова Л.А. «Проектирование информационных систем» - Воронеж:ВГУИТ, 2012. - 172 с. 3. Аверченков В.И., Лозбинев Ф.Ю., Тищенко А.А. «Информационные системы в производстве и экономике» - М.:ФЛИНТА, 2011. - 274 с. 4. Братищенко В.В. «Проектирование информационных систем» - Иркутск: Изд-во БГУЭП, 2010. - 84 с. 5. Вендеров А.М. «Проектирование программного обеспечения экономических информационных систем» - М.: Финансы и статистика, 2012. 6. Гвоздева Т.В., Баллод Б.А. «Проектирование информационных систем» - М.:Феникс, 2011. - 512 с. 7. Гвоздева В.А., Лаврентьева И.Ю. «Основы построения АИС» - М.: ИД «ФОРУМ»: ИНФРА-М, 2010. – 320с. 8. Калянов Г.Н. «Стратегическое управление информационными системами» - М.:БИНОМ, 2010. - 510 с. 9. Коровкина Н.Л. «Проектирование информационных систем» - М.: Инетрнет-университет информационных технологий - ИНТУИТ. ру, 2013. 10. Мишенин А.И. «Теория экономических информационных систем» - М.: Финансы и статистика, 2011. - 240 с. 11. Соловьев И.В., Майоров А.А. «Проектирование информационных систем» - М.:Академический проект, 2011. - 400 с. 12. Титоренко Г.А. «Информационные системы и технологии управления» - М.:ЮНИТИ-ДАНА, 2012. - 591 с. 13. Черемных С.В. «Моделирование и анализ систем» - М.: Финансы и статистика, 2013. - 192 с. |