Анализ предметной области поставленной задачи 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Анализ предметной области поставленной задачи



СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ.. 5

1. Анализ предметной области поставленной задачи. 6

1.1. Постановка и развернутое описание задачи. 6

1.2. Средства решения поставленной задачи. 7

2. Разработка и реализация проекта базы данных. 10

2.1. Определение логической структуры реляционной базы данных. 10

2.2. Реализация защиты базы данных. 15

2.3. Разработанные запросы.. 18

2.4. Разработанные хранимые процедуры и триггеры.. 21

3. Разработка и реализация программной части проекта. 23

3.1. Разработка структуры системы.. 23

3.2. Разработка форм входных и выходных данных. 24

ЗАКЛЮЧЕНИЕ.. 31

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 32

ПРИЛОЖЕНИЕ А.. 33

ПРИЛОЖЕНИЕ Б.. 35

ПРИЛОЖЕНИЕ В.. 36

 


ВВЕДЕНИЕ

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

Тем не менее, компьютеры имеют обыкновение иногда «болеть». Это естественно для любого вида техники. Какие-то элементы могут потребовать замены или ремонта; может понадобиться переустанвока операционной систем; нужно будет удалить компьютерный вирус и восстановить данные, которые были повреждены в результате его разрушительного воздействия. Все виды помощи, которые могут понадобиться в процессе эксплуатации компьютера, просто невозможно перечислить. При этом большинство из них требует от исполнителя недюжинных знаний, ведь компьютер – сложное устройство, и возникающая проблема может носить самый разнообразный характер: системное администратирование, электроника, программное обеспечение, коммуникации и т.д.

Понятно, что владелец компьютера с большей долей вероятности не сможет справиться с подобными задачами самостоятельно. Что же ему остается? Безусловно, обратиться в фирму, которая оказывает подобного рода услуги. Специалисты компьютерной фирмы, получив заказ, в считанные минуты приедут и окажут компьютеру квалифицированную помощь.[4]


Анализ предметной области поставленной задачи

Разработка и реализация проекта базы данных

Разработанные запросы

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

1) Запросы с подзапросами

Формулировка запроса:

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

SQL-скрипт запроса:

SELECT ID_Type_of_Computer_Component, Manufacturer_Country, Price FROM computer_components WHERE Price IN (SELECT max(Price) WHERE Manufacturer_Country = 'Тайвань' AND ID_Type_of_Computer_Component = '1100');

Формулировка запроса:

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

SQL-скрипт запроса:

SELECT * FROM orders WHERE Order_ID IN (SELECT Computer_Component_ID FROM computer_components WHERE Warranty_Period = '24');

2) Запросы на добавление

Формулировка запроса:

Добавить нового сотрудника с должностью Инженер по ремонту и обслуживанию оборудования.

SQL-скрипт запроса:

INSERT employees(Employee_Full_Name, Date_of_Birth, Gender, Address, Employee_Phone_Number, Passport, ID_Employment)

VALUES('Шишкин Владимир Николаевич', '1985-05-17', 'male', 'Пушкин, ул. Маяковского 21', '89640546587', 'ВГАБД72394', '300');

Формулировка запроса:

Добавить новый комплектующий.

SQL-скрипт запроса:

INSERT computer_components(ID_Type_of_Computer_Component, Brand, Manufacturer_Company, Manufacturer_Country, Release_Date, Specifications, Warranty_Period, Computer_Component_Description, Price)

VALUES ('2200', 'Core i5 9600K', 'Intel', 'США', '2018-10-19', 'Технология производства - 14 нм. Количество ядер - 6. Количество потоков - 6. Базовая частота - 3.7 Ггц. Тепловыделение - 95 Вт.', '36', 'Совместимый только с материнскими платами на базе чипсетов 300 серии, шестиъядерный процессор с сокетом LGA 1151 Core i5-9600K и тактовой частотой 3,7 ГГц от Intel предназначен для игр, творчества и повышения производительности.', '17000');

3) Запросы на удаление

Формулировка запроса:

Уволить сотрудника «Шишкин Владимир Николаевич».

SQL-скрипт запроса:

delete from employees

where Employee_ID = 6;

Формулировка запроса:

Удалить из БД покупателя «Попова Алена Алексеевна».

SQL-скрипт запроса:

delete from customers

where Customer_ID = 3;

4) Запросы на изменение

Формулировка запроса:

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

SQL-скрипт запроса:

update employment

set Employment_Name = 'Директор', Salary = '250000'

where ID_Employment = '100';

Формулировка запроса:

Изменить адрес сотрудника.

SQL-скрипт запроса:

update employees

set Address = 'Калининград, ул. Советская, 6'

where Employee_ID = '4';

5) Запросы с использованием статистических функций

Формулировка запроса:

Выбрать случайного покупателя.

SQL-скрипт запроса:

select * from customers

order by rand()

limit 1;

Формулировка запроса:

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

SQL-скрипт запроса:

select avg(Salary) as 'Среднемесячная', avg(12 * Salary) as 'Среднегодовая'

from employment;

6) Запросы с использованием строковых функций.

Формулировка запроса:

Вывести адрес и фамилию сотрудников мужского пола.

SQL-скрипт запроса:

select concat_ws(',', Employee_Full_Name, Address, Gender) as 'Address', substring_index(Employee_Full_Name, ' ', 1) as 'Last Name' from employees

where Gender = 'male';

Формулировка запроса:

Вывести название компании-изготовителя комплектующих, марку.

SQL-скрипт запроса:

select concat_ws(' ', Manufacturer_Company, Brand) as 'Комплектующие' from computer_components;

7) Запросы с использованием функций работы с датой и временем.

Формулировка запроса:

Вывести дату рождения сотрудников в формате День, Месяц, Год.

SQL-скрипт запроса:

select DATE_FORMAT(Date_of_Birth, '%d.%m.%Y') as 'Дата рождения' from employees;

Формулировка запроса:

Вывести день недели из одной даты заказа как «День заказа».

SQL-скрипт запроса:

select dayname(Order_Datе) as 'День заказа' from orders

where Order_ID = '2';

ЗАКЛЮЧЕНИЕ

В ходе работы над данным курсовым проектом была спроектирована база данных «Компьютерная фирма» и создано клиентское приложение для работы с этой БД.

Для решения поставленной задачи была выбрана СУБД MySql. Клиентское приложение разрабатывалось с помощью языка программирования C# с применением технологии Windows Forms для создания графического интерфейса и взаимодействия пользователей с БД.

Защита базы данных реализовывалась посредством хранимых процедур, метода хеширования паролей и параметризированных запросов.

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

 

ПРИЛОЖЕНИЕ А

Таблицы с исходными данными

Рисунок 14 – Таблица computer_components

Рисунок 15 – Таблица customers

Рисунок 16 – Таблица employees

Рисунок 17 – Таблица employment

Рисунок 18 – Таблица orders

Рисунок 19 – Таблица orders_and_computer_components

Рисунок 20 – Таблица orders_and_services

Рисунок 21 – Таблица services

Рисунок 22 – Таблица types_of_computer_components

Рисунок 23 – Таблица users

 

ПРИЛОЖЕНИЕ Б

Листинг триггеров и хранимых процедур

Листинг хранимой процедуры «show_employees».

CREATE DEFINER=`root`@`localhost` PROCEDURE `show_employees`()

BEGIN

     SELECT * FROM employees;

END

 

Листинг хранимой процедуры «add_employee».

CREATE DEFINER=`root`@`localhost` PROCEDURE `add_employee`(

     IN Employee_Full_Name varchar(100),

     IN Date_of_Birth datetime,

     IN Gender enum('male', 'female'),

     IN Address varchar(45),

     IN Employee_Phone_Number varchar(45),

IN Passport varchar(45),

     IN ID_Employment int)

BEGIN

     INSERT INTO employees(

              Employee_Full_Name,

              Date_of_Birth,

              Gender,

              Address,

              Employee_Phone_Number,

              Passport,

              ID_Employment)

values(

              Employee_Full_Name,

              Date_of_Birth,

              Gender,

              Address,

              Employee_Phone_Number,

              Passport,

              ID_Employment);

END

 

ПРИЛОЖЕНИЕ В

Листинг приложения

Листинг модуля Form 1.

static string str = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

   MySqlConnection con = new MySqlConnection(str);

   MySqlCommand cmd = new MySqlCommand();

   //DataSet ds = new DataSet();

   private void button1_Click(object sender, EventArgs e)

   {

       try

       {

           string Login = textBox1.Text;

           string Password = textBox2.Text;

 

           if (Login == "" || Password == "")

           {

               MessageBox.Show("Поля не заполнены");

           }

           if (Login.Length < 3 || Password.Length < 3)

           {

               MessageBox.Show("Минимальная длина поля 3 символа");

           }

           {

               MySqlConnection con = new MySqlConnection(str);

               using (MySqlCommand cmd = new MySqlCommand("SELECT User_ID, User_Password, User_Guid FROM users WHERE User_Login=@Login;", con))

               {

                   cmd.Parameters.AddWithValue("@Login", Login);

                   con.Open();

 

                   MySqlDataReader dr = cmd.ExecuteReader();

 

                   while (dr.Read())

                   {

                       // dr.Read() = we found user(s) with matching login

                       int db_User_ID = Convert.ToInt32(dr["User_ID"]);

                       string db_Password = Convert.ToString(dr["User_Password"]);

                       string db_User_Guid = Convert.ToString(dr["User_Guid"]);

                      // Now we hash the UserGuid from the database with the password we want to check

                       string hashedPassword = Security.HashSHA1(Password + db_User_Guid);

                       // If its correct password the result of the hash is the same as in the database

                       if (db_Password!= hashedPassword)

                       {

                           Form3 form3 = new Form3();

                           form3.Show();

                          this.Hide();

                       }

                       else

                       {

                           Form5 form5 = new Form5();

                           form5.Show();

                           this.Hide();

                       }

                   }

                   con.Close();

               }

           }

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   public class Security

   {

       public static string HashSHA1(string value)

       {

           var sha1 = System.Security.Cryptography.SHA1.Create();

           var inputBytes = Encoding.ASCII.GetBytes(value);

           var hash = sha1.ComputeHash(inputBytes);

 

           var sb = new StringBuilder();

           for (var i = 0; i < hash.Length; i++)

           {

               sb.Append(hash[i].ToString("X2"));

           }

           return sb.ToString();

       }

   }

   private void button2_Click(object sender, EventArgs e)

   {

       Form4 form4 = new Form4();

       form4.Show();

       this.Hide();

  }

}

 

Листинг модуля Form2.

   private void button1_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "SELECT * FROM computer_components;";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button2_Click(object sender, EventArgs e)

   {

       dataGridView1.DataSource = null;

       dataGridView1.Rows.Clear();

       dataGridView1.Refresh();

   }

   private void button3_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "SELECT ID_Type_of_Computer_Component, Manufacturer_Country, Price FROM computer_components WHERE Price in (SELECT max(Price) WHERE Manufacturer_Country = 'Тайвань' and ID_Type_of_Computer_Component = '1100'); ";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button4_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select * from orders where Order_ID IN(select Computer_Component_ID from computer_components where Warranty_Period = '24'); ";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

              MessageBox.Show(ex.ToString());

       }

   }

   private void button6_Click(object sender, EventArgs e)

   {

       Form1 form1 = new Form1();

       form1.Show();

       this.Hide();

   }

   private void button5_Click(object sender, EventArgs e)

   {

       Form5 form5 = new Form5();

       form5.Show();

       this.Hide();

   }

 

Листинг модуля Form3.

public partial class Form3: Form

{

   public Form3()

   {

       InitializeComponent();

   }

   private void Form3_Load(object sender, EventArgs e)

   {

   }

   private void button1_Click(object sender, EventArgs e)

   {

       Form1 form1 = new Form1();

       form1.Show();

       this.Hide();

   }

   private void button2_Click(object sender, EventArgs e)

   {

       Form4 form4 = new Form4();

       form4.Show();

       this.Hide();

   }

}

 

Листинг модуля Form4.

static string str = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

   MySqlConnection con = new MySqlConnection(str);

   MySqlCommand cmd;

   DataSet ds = new DataSet();

 

   private void button1_Click(object sender, EventArgs e)

   {

       try

       {

           string Login = textBox1.Text;

           string Password = textBox2.Text;

           string Password_Repeated = textBox3.Text;

 

           // First create a new Guid (Global Unique ID) for the user. This will be unique for each user

           Guid user_Guid = System.Guid.NewGuid();

 

           // Hash the password together with the unique userGuid

           string hashedPassword = Security.HashSHA1(Password + user_Guid.ToString());

 

           if (Password == Password_Repeated)

           {

               cmd = new MySqlCommand("SELECT * FROM Users WHERE User_Login=@Login", con);

               MySqlDataAdapter da = new MySqlDataAdapter(cmd);

               cmd.Parameters.AddWithValue("@Login", Login);

               da.Fill(ds);

               int i = ds.Tables[0].Rows.Count;

               if (i > 0)

                {

                   MessageBox.Show("Пользователь " + Login + " уже существует");

                   ds.Clear();

               }

           }

           if (Login == "" || Password == "" || Password_Repeated == "")

           {

               MessageBox.Show("Поля не заполнены");

           }

           else

           {

               cmd = new MySqlCommand("INSERT INTO users(User_Login, User_Password, User_Guid) VALUES(@Login, @Password, @user_Guid)", con);

               cmd.Parameters.AddWithValue("@Login", Login);

               cmd.Parameters.AddWithValue("@Password", hashedPassword);

               cmd.Parameters.AddWithValue("@User_Guid", user_Guid);

               con.Open();

               cmd.ExecuteNonQuery();

               con.Close();

 

               this.Hide();

               Form1 form1 = new Form1();

               form1.Show();

           }

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.Message);

       }

   }

   public class Security

   {

       public static string HashSHA1(string value)

       {

           var sha1 = System.Security.Cryptography.SHA1.Create();

           var inputBytes = Encoding.ASCII.GetBytes(value);

           var hash = sha1.ComputeHash(inputBytes);

 

           var sb = new StringBuilder();

           for (var i = 0; i < hash.Length; i++)

           {

               sb.Append(hash[i].ToString("X2"));

           }

           return sb.ToString();

       }

   }

 

Листинг модуля Form5.

private void button4_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select * from customers order by rand() limit 1; ";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button5_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select avg(Salary) as 'Среднемесячная', avg(12 * Salary) as 'Среднегодовая' from employment; ";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button1_Click(object sender, EventArgs e)

   {

       dataGridView1.DataSource = null;

       dataGridView1.Rows.Clear();

       dataGridView1.Refresh();

   }

   private void button2_Click(object sender, EventArgs e)

   {

       Form2 form2 = new Form2();

       form2.Show();

       this.Hide();

   }

   private void button3_Click(object sender, EventArgs e)

   {

       Form6 form6 = new Form6();

       form6.Show();

       this.Hide();

   }

}

 

Листинг модуля Form6.

private void button4_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select concat_ws(',', Employee_Full_Name, Address, Gender) as 'Address', substring_index(Employee_Full_Name, ' ', 1) as 'Last Name' from employees where Gender = 'male';";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button5_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select concat_ws(' ', Manufacturer_Company, Brand) as 'Комплектующие' from computer_components;";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button2_Click(object sender, EventArgs e)

   {

       Form5 form5 = new Form5();

       form5.Show();

       this.Hide();

   }

   private void button3_Click(object sender, EventArgs e)

   {

       Form7 form7 = new Form7();

       form7.Show();

       this.Hide();

   }

   private void button1_Click(object sender, EventArgs e)

   {

       dataGridView1.DataSource = null;

       dataGridView1.Rows.Clear();

       dataGridView1.Refresh();

   }

}

 

Листинг модуля Form7.

private void button2_Click(object sender, EventArgs e)

   {

       Form6 form6 = new Form6();

       form6.Show();

       this.Hide();

   }

   private void button3_Click(object sender, EventArgs e)

   {

       Form8 form8 = new Form8();

       form8.Show();

       this.Hide();

   }

  private void button1_Click(object sender, EventArgs e)

   {

       dataGridView1.DataSource = null;

       dataGridView1.Rows.Clear();

       dataGridView1.Refresh();

   }

   private void button4_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select DATE_FORMAT(Date_of_Birth, '%d.%m.%Y') as 'Дата рождения' from employees;";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button5_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select dayname(Order_Datе) as 'День заказа' from orders where Order_ID = '2'; ";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

 

Листинг модуля Form8.

private void button5_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "select * from employees;";

           MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);

           DataSet ds = new DataSet();

           adapter.Fill(ds);

           dataGridView1.DataSource = ds.Tables[0];

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

   private void button3_Click(object sender, EventArgs e)

   {

       dataGridView1.DataSource = null;

       dataGridView1.Rows.Clear();

       dataGridView1.Refresh();

   }

 

   private void Form8_Load(object sender, EventArgs e)

   {

   }

   private void radioButton1_CheckedChanged(object sender, EventArgs e)

   {

       gender = "male";

   }

   private void radioButton2_CheckedChanged(object sender, EventArgs e)

   {

       gender = "female";

   }

   private void radioButton3_CheckedChanged(object sender, EventArgs e)

   {

       employmentID = "100";

   }

   private void radioButton4_CheckedChanged(object sender, EventArgs e)

   {

       employmentID = "200";

    }

   private void radioButton5_CheckedChanged(object sender, EventArgs e)

   {

       employmentID = "300";

   }

   private void button4_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

 

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           string Full_Name = textBox1.Text;

           string BirthDay = maskedTextBox1.Text;

           string address = textBox4.Text;

           string Phone_Number = maskedTextBox2.Text;

           string passport = textBox6.Text;

           connection.Open();

           MySqlCommand cmd = new MySqlCommand("add_employee", connection);

           cmd.CommandType = CommandType.StoredProcedure;

           cmd.Parameters.AddWithValue("?Employee_Full_Name", Full_Name);

           cmd.Parameters.AddWithValue("?Date_of_Birth", BirthDay);

           cmd.Parameters.AddWithValue("?Gender", gender);

           cmd.Parameters.AddWithValue("?Address", address);

           cmd.Parameters.AddWithValue("?Employee_Phone_Number", Phone_Number);

           cmd.Parameters.AddWithValue("?Passport", passport);

           cmd.Parameters.AddWithValue("?ID_Employment", employmentID);

 

           if(cmd.ExecuteNonQuery() == 1)

           {

               MessageBox.Show("Добавление прошло успешно");

           }

           else

           {

               MessageBox.Show("Ошибка при добавлении");

           }

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

 

Листинг модуля Form9.

   private void button5_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "insert into computer_components(ID_Type_of_Computer_Component, Brand, Manufacturer_Company, Manufacturer_Country, Release_Date, Specifications, Warranty_Period, Computer_Component_Description, Price) " +

               "values(@ID_Type_of_Computer_Component, @Brand, @Manufacturer_Company, @Manufacturer_Country, @Release_Date, @Specifications, @Warranty_Period, @Computer_Component_Description, @Price); ";

           MySqlCommand cmd = new MySqlCommand(query, connection);

            cmd.Parameters.AddWithValue("@ID_Type_of_Computer_Component", ComponentType);

           cmd.Parameters.AddWithValue("@Brand", textBox1.Text);

           cmd.Parameters.AddWithValue("@Manufacturer_Company", textBox2.Text);

           cmd.Parameters.AddWithValue("@Manufacturer_Country", textBox3.Text);

           cmd.Parameters.AddWithValue("@Release_Date", maskedTextBox1.Text);

           cmd.Parameters.AddWithValue("@Specifications", textBox4.Text);

           cmd.Parameters.AddWithValue("@Warranty_Period", Warranty);

           cmd.Parameters.AddWithValue("@Computer_Component_Description", textBox5.Text);

           cmd.Parameters.AddWithValue("@Price", textBox6.Text);

 

           cmd.CommandType = CommandType.Text;

           cmd.ExecuteNonQuery();

           textBox1.Clear();

           textBox2.Clear();

           textBox3.Clear();

           textBox4.Clear();

           textBox5.Clear();

           textBox6.Clear();

           maskedTextBox1.Clear();

           MessageBox.Show("Добавление прошло успешно");

 

           connection.Close();

 

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

 

Листинг модуля Form10.

private void button1_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           string query = "update employment set Salary='"+textBox2.Text+"'where ID_Employment='"+employment+"'";

           MySqlCommand cmd = new MySqlCommand(query, connection);

           cmd.Parameters.AddWithValue("@Salary", textBox2.Text);

           cmd.Parameters.AddWithValue("@ID_Employment", employment);

           cmd.CommandType = CommandType.Text;

           cmd.ExecuteNonQuery();

           textBox2.Clear();

           textBox3.Clear();

           textBox4.Clear();

           MessageBox.Show("Изменение прошло успешно");

           connection.Close();

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

 

Листинг модуля Form11.

private void button3_Click(object sender, EventArgs e)

   {

       string conn = "server=127.0.0.1;user=root;password=Plazma942427;database=computer_company;port=3306";

       MySqlConnection connection = new MySqlConnection(conn);

       try

       {

           connection.Open();

           // Delete a record

           string DeleteQuery = "DELETE FROM employees WHERE Employee_Full_Name='" + comboBox1.Text + "'";

           MySqlCommand cmd = new MySqlCommand(DeleteQuery, connection);

           cmd.Parameters.AddWithValue("@Employee_Full_Name", comboBox1.Text);

            cmd.CommandType = CommandType.Text;

           cmd.ExecuteNonQuery();

           MessageBox.Show("Удаление прошло успешно");

           comboBox1.SelectedIndex = -1;

           comboBox1.Items.Clear();

           // Select a record after deleting

           string SelectQuery = "SELECT * FROM computer_company.employees";

           MySqlCommand mySqlCommand = new MySqlCommand(SelectQuery, connection);

           MySqlDataReader reader = mySqlCommand.ExecuteReader();

           while (reader.Read())

           {

               comboBox1.Items.Add(reader.GetString("Employee_Full_Name"));

           }

           connection.Close();

           reader.Close();

 

       }

       catch (Exception ex)

       {

           MessageBox.Show(ex.ToString());

       }

   }

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ.. 5

1. Анализ предметной области поставленной задачи. 6

1.1. Постановка и развернутое описание задачи. 6

1.2. Средства решения поставленной задачи. 7

2. Разработка и реализация проекта базы данных. 10

2.1. Определение логической структуры реляционной базы данных. 10

2.2. Реализация защиты базы данных. 15

2.3. Разработанные запросы.. 18

2.4. Разработанные хранимые процедуры и триггеры.. 21

3. Разработка и реализация программной части проекта. 23

3.1. Разработка структуры системы.. 23

3.2. Разработка форм входных и выходных данных. 24

ЗАКЛЮЧЕНИЕ.. 31

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 32

ПРИЛОЖЕНИЕ А.. 33

ПРИЛОЖЕНИЕ Б.. 35

ПРИЛОЖЕНИЕ В.. 36

 


ВВЕДЕНИЕ

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

Тем не менее, компьютеры имеют обыкновение иногда «болеть». Это естественно для любого вида техники. Какие-то элементы могут потребовать замены или ремонта; может понадобиться переустанвока операционной систем; нужно будет удалить компьютерный вирус и восстановить данные, которые были повреждены в результате его разрушительного воздействия. Все виды помощи, которые могут понадобиться в процессе эксплуатации компьютера, просто невозможно перечислить. При этом большинство из них требует от исполнителя недюжинных знаний, ведь компьютер – сложное устройство, и возникающая проблема может носить самый разнообразный характер: системное администратирование, электроника, программное обеспечение, коммуникации и т.д.

Понятно, что владелец компьютера с большей долей вероятности не сможет справиться с подобными задачами самостоятельно. Что же ему остается? Безусловно, обратиться в фирму, которая оказывает подобного рода услуги. Специалисты компьютерной фирмы, получив заказ, в считанные минуты приедут и окажут компьютеру квалифицированную помощь.[4]


Анализ предметной области поставленной задачи



Поделиться:


Последнее изменение этой страницы: 2020-11-11; просмотров: 87; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.133.96 (0.691 с.)