Розробка і впровадження інформаційного забезпечення магазину

Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 07.01.2017
Размер файла 1,6 M

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

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

_pmnt.ShowDialog();

}

catch

{

}

}

private void textBox2_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)

textBox1.Focus();

if (e.KeyCode == Keys.Enter)

{

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select ID_Goods,Name,Price from Goods where ID_Goods='" + textBox1.Text+"'";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dataGridView1.Rows.Add(dt.Rows[0][0], dt.Rows[0][1], textBox2.Text, dt.Rows[0][2]);

sum += Convert.ToDouble(dt.Rows[0][2]) * Convert.ToInt32(textBox2.Text);

moneyLabel.Text = Convert.ToString(sum);

conn.Close();

textBox1.Text = "";

textBox2.Text = "";

textBox1.Focus();

}

catch

{

MessageBox.Show("Даного товару не існує","Помилка");

textBox1.Focus();

conn.Close();

}

}

}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

if ((e.KeyChar <= 47 || e.KeyChar >= 58) && e.KeyChar != 8)

{

e.Handled = true;

}

}

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)

{

if ((e.KeyChar <= 47 || e.KeyChar >= 58) && e.KeyChar != 8)

{

e.Handled = true;

}

}

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)

textBox2.Focus();

if (e.KeyCode == Keys.Enter)

{

if (textBox1.Text != "")

{

textBox2.Focus();

textBox2.Text = "1";

}

}

}

private void Shoping_KeyDown(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.F11)

{

button1.PerformClick();// імітуємо натиснення кнопки button1

}

if (e.KeyCode == Keys.Delete)

{

button2.PerformClick();// імітуємо натиснення кнопки button1

}

}

}

}

Лістинг форми авторизації

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class Auth : Form

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

private Shoping shpng;

public Auth( Shoping _shp)

{

InitializeComponent();

shpng = _shp;

}

private void button1_Click(object sender, EventArgs e)

{

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select ID_Emploee,PIB from Emploee where ID_Emploee=" + textBox1.Text;

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

shpng.seller = dt.Rows[0][1].ToString();

shpng.label1.Text += dt.Rows[0][1].ToString();

shpng.ID_seller= dt.Rows[0][0].ToString();

conn.Close();

this.Close();

}

catch(Exception)

{

MessageBox.Show("Проблема авторизації", "Помилка");

conn.Close();

}

}

private void Auth_Load(object sender, EventArgs e)

{

}

private void button2_Click(object sender, EventArgs e)

{

shpng.Close();

this.Close();

}

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

button1.PerformClick();

}

}

}

}

Лістинг форми видачі чеку

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class Payment : Form

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

private Shoping shpng;

public Payment(Shoping _shp)

{

InitializeComponent();

shpng = _shp;

}

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

double costs=0.0;

if (e.KeyCode == Keys.Enter)

{

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "INSERT INTO Checks VALUES('"+shpng.checkLabel.Text+"'," +

shpng.ID_seller+ ","

+ shpng.moneyLabel.Text+ ",CONVERT(DATETIME,'" + shpng.dataLabel.Text+"',102))";

cmd.ExecuteNonQuery();

for (int i=0;i<shpng.dataGridView1.RowCount-1;i++)

{

costs = Convert.ToInt32(shpng.dataGridView1.Rows[i].Cells[2].Value.ToString()) * Convert.ToDouble(shpng.dataGridView1.Rows[i].Cells[3].Value.ToString());

cmd.CommandText = "INSERT INTO ChkGoods VALUES('" + shpng.checkLabel.Text + "','" +

shpng.dataGridView1.Rows[i].Cells[0].Value + "',"+

shpng.dataGridView1.Rows[i].Cells[2].Value + "," +costs+ ")";

cmd.ExecuteNonQuery();

cmd.CommandText = "UPDATE Goods SET Count = Count - " +

shpng.dataGridView1.Rows[i].Cells[2].Value + "WHERE ID_Goods = '" +

shpng.dataGridView1.Rows[i].Cells[0].Value + "'";

cmd.ExecuteNonQuery();

}

MessageBox.Show("Чек успішно оплачено");

conn.Close();

this.Close();

}

catch(Exception)

{

MessageBox.Show("Неможливо оформити чек", "Помилка");

conn.Close();

this.Close();

}

}

}

private void Payment_FormClosing(object sender, FormClosingEventArgs e)

{

shpng.dataLabel.Text = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select top 1 ID_Checks from Checks order by ID_Checks desc";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

shpng.checkLabel.Text = (Convert.ToInt32(dt.Rows[0][0].ToString()) + 1).ToString();

conn.Close();

shpng.dataGridView1.Rows.Clear();

shpng.moneyLabel.Text = "0.00";

}

private void Payment_Load(object sender, EventArgs e)

{

label3.Text = shpng.moneyLabel.Text;

label5.Text = "0.00";

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

double a = 0.0, b = 0.0, c = 0.0;

if (textBox1.Text != "")

{

try

{

a = Convert.ToDouble(label3.Text);

b = Convert.ToDouble(textBox1.Text);

c = b - a;

if (c > 0)

label5.Text = c.ToString();

}

catch

{

MessageBox.Show("Неправильний ввід");

}

}

}

}

}

Лістинг форми меню склада

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Shop

{

public partial class Store : Form

{

public Store()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

addGoods _addGoods = new addGoods();

_addGoods.ShowDialog();

}

private void button2_Click(object sender, EventArgs e)

{

showGoods _showGoods = new showGoods();

_showGoods.ShowDialog();

}

private void button3_Click(object sender, EventArgs e)

{

showOrder _showOrder = new showOrder();

_showOrder.ShowDialog();

}

}

}

Лістинг форми додання товарів на склад

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class addGoods : Form

{

public addGoods()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "INSERT INTO Goods VALUES('" + textBox1.Text + "','" +

textBox3.Text + "',"

+ textBox4.Text + "," + textBox5.Text + ",'" + textBox2.Text + "')";

cmd.ExecuteNonQuery();

conn.Close();

MessageBox.Show("Товар успішно додано");

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

textBox4.Text = "";

textBox5.Text = "";

}

catch

{

MessageBox.Show("Неможливо додати товар","помилка");

conn.Close();

}

}

}

}

Лістинг форми відображення товарів на складі

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class showGoods : Form

{

public showGoods()

{

InitializeComponent();

}

private void showGoods_Load(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select * from Goods";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

catch

{

MessageBox.Show("Неможливо відкрити склад", "Помилка");

conn.Close();

}

}

}

}

Лістинг форми відображення товарів, які потрібно закупити

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class showOrder : Form

{

public showOrder()

{

InitializeComponent();

}

private void showOrder_Load(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select * from Goods where Count<2";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

catch

{

MessageBox.Show("Неможливо відкрити склад", "Помилка");

conn.Close();

}

}

}

}

Лістинг форми меню відділу кадрів

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Shop

{

public partial class menuPersonal : Form

{

public menuPersonal()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

newEmploee _newEmploee = new newEmploee();

_newEmploee.ShowDialog();

}

private void button2_Click(object sender, EventArgs e)

{

deleteEmploee _dltEmploee = new deleteEmploee();

_dltEmploee.ShowDialog();

}

private void button4_Click(object sender, EventArgs e)

{

Emploee _emploee = new Emploee();

_emploee.ShowDialog();

}

private void button3_Click(object sender, EventArgs e)

{

ZP _zp = new ZP();

_zp.ShowDialog();

}

}

}

Лістинг форми прийняття працівника на роботу

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class newEmploee : Form

{

public newEmploee()

{

InitializeComponent();

}

int flag=0;

private void button1_Click(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

if (radioButton1.Checked == true)

{

flag = 1;

}

else

flag = 0;

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "insert into Emploee values ("+textBox1.Text+",'"+textBox2.Text+

"','"+textBox3.Text+"',"+textBox5.Text+

","+flag+",'"+textBox4.Text+"')";

cmd.ExecuteNonQuery();

MessageBox.Show("Працівника прийнято на роботу");

conn.Close();

}

catch

{

MessageBox.Show("Неможливо найняти працівника. Перевірте коректність вводу всіх даних", "Помилка");

conn.Close();

}

}

}

}

Лістинг форми звільнення працівника

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class deleteEmploee : Form

{

public deleteEmploee()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "delete from Emploee where ID_Emploee = '"+textBox1.Text+"'";

cmd.ExecuteNonQuery();

MessageBox.Show("Працівника звільнено");

conn.Close();

}

catch

{

MessageBox.Show("Неможливо звільнити працівника. Можливо даного працівника не існує в базі", "Помилка");

conn.Close();

}

}

}

}

Лістинг форми відображення переліку працівників

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class Emploee : Form

{

public Emploee()

{

InitializeComponent();

}

private void Emploee_Load(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "select * from Emploee";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dataGridView1.DataSource = dt;

conn.Close();

}

catch

{

MessageBox.Show("Неможливо відкрити базу працівників", "Помилка");

conn.Close();

}

}

}

}

Лістинг форми нарахування зарплатні

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace Shop

{

public partial class ZP : Form

{

public ZP()

{

InitializeComponent();

}

string day = "";

string date = "";

double sum;

private void ZP_Load(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

day = DateTime.Now.ToString("dd");

if (day == "01")

{

date = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");

try

{

conn.Open();

SqlCommand cmd = conn.CreateCommand();

cmd.CommandType = CommandType.Text;

cmd.CommandText = "Select ID_Emploee, Stavka, ZP from Emploee";

cmd.ExecuteNonQuery();

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dataGridView1.DataSource = dt;

for (int i = 0; i < dataGridView1.RowCount - 1; i++)

{

MessageBox.Show(dataGridView1.Rows[i].Cells[1].Value.ToString());

if (dataGridView1.Rows[i].Cells[1].Value.ToString() == "False")

{

cmd.CommandType = CommandType.Text;

cmd.CommandText = "INSERT INTO ZP VALUES(" + dataGridView1.Rows[i].Cells[0].Value.ToString() + ",CONVERT(DATETIME,'" +

date + "',102)," + Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value.ToString()) + ")";

cmd.ExecuteNonQuery();

}

else

{

cmd.CommandType = CommandType.Text;

cmd.CommandText = "Select Costs from Checks where Emploee =" + dataGridView1.Rows[i].Cells[0].Value.ToString();

cmd.ExecuteNonQuery();

DataTable dt1 = new DataTable();

SqlDataAdapter da1 = new SqlDataAdapter(cmd);

da1.Fill(dt1);

dataGridView2.DataSource = dt1;

sum = 1;

for (int j = 0; j < dataGridView2.RowCount - 1; j++)

{

sum += Convert.ToDouble(dataGridView2.Rows[j].Cells[0].Value);

}

cmd.CommandType = CommandType.Text;

cmd.CommandText = "INSERT INTO ZP VALUES(" + dataGridView1.Rows[i].Cells[0].Value.ToString() + ",CONVERT(DATETIME,'" +

date + "',102)," + (Convert.ToInt16(dataGridView1.Rows[i].Cells[2].Value.ToString()) * sum / 100) + ")";

cmd.ExecuteNonQuery();

}

}

MessageBox.Show("Зарплата успішно нарахована");

cmd.CommandType = CommandType.Text;

cmd.CommandText = "Select * from ZP";

cmd.ExecuteNonQuery();

DataTable dt2 = new DataTable();

SqlDataAdapter da2 = new SqlDataAdapter(cmd);

da2.Fill(dt2);

dataGridView3.DataSource = dt2;

conn.Close();

}

catch (Exception)

{

MessageBox.Show("Неможливо нарахувати зарплату", "Помилка");

conn.Close();

}

}

else

MessageBox.Show("Заробітна плата нараховується тільки першого числа");

}

}

}

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


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

  • Опис вхідних та вихідних повідомлень, процедури перетворення даних. Розробка інфологічної моделі, інформаційні об’єкти та їх характеристика. Автоматизація даталогічного проектування. Опис структур таблиць бази даних на фізичному рівні, реалізація запитів.

    курсовая работа [2,5 M], добавлен 02.01.2014

  • Модель аналізу-синтезу компіляції. Формальний опис вхідної мови програмування. Вибір технології програмування, проектування таблиць транслятора та вибір структур даних. Опис програми реалізації лексичного аналізатора. Розробка дерев граматичного розбору.

    курсовая работа [75,8 K], добавлен 26.12.2009

  • Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.

    курсовая работа [4,5 M], добавлен 03.01.2014

  • Визначення мети створення бази даних магазину та таблиць, які вона повинна містити. Розгляд видів полів та ключів таблиць. Створення запитів, форм, звітів, макросів та модулів. Вибір системи управління базами даних. Реалізація моделі у Microsoft Access.

    курсовая работа [3,8 M], добавлен 20.07.2014

  • Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.

    курсовая работа [43,1 K], добавлен 30.06.2015

  • Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.

    курсовая работа [1,7 M], добавлен 22.06.2017

  • Створення і реалізація в СУБД MS Access бази даних "Internet-ресурси з інформаційних технологій". Опис предметної області, інфологічне проектування. Побудова ER-діаграми. Даталогічне і фізичне проектування інформаційних систем. Опис роботи програми.

    курсовая работа [8,2 M], добавлен 30.05.2013

  • Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.

    курсовая работа [147,2 K], добавлен 02.06.2019

  • Проектування бази даних у середовищі Visual FoxPro 9.0. Реалізація можливості вносити та зберігати дані про клієнтів салону, про співробітників, перелік послуг, які надає салон. Створення форм та таблиць. Керівництво користувача і лістинг програми.

    курсовая работа [4,4 M], добавлен 02.09.2016

  • Розробка програми для управління навчальним процесом студентської групи вищого навчального закладу. Об’єктно-орієнтоване проектування об’єктів групи. Створення мови програмування Java. Побудова графічного інтерфейсу. Робота з невеликими базами даних.

    курсовая работа [935,3 K], добавлен 21.12.2013

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