СОДЕРЖАНИЕ
1. Аналитический обзор разработки АСУ
1.2 Основные понятия и определения
1.3 Общее описание разрабатываемой АСУ
1.5 Анализ предметной области разработки
2. Разработка базы данных для системы
2.2 Построение концептуальной (инфологической) модели БД
2.3 Построение логической схемы БД
3. Разработка клиентского приложения
3.1 Выбор языка и среды программирования
3.2 Требования к клиентскому приложению
3.2.2 Требования к функционалу
3.3 Проектирование клиентского приложения
3.3.3 Выбор шаблонов проектирования
3.3.4 UML диаграмма классов с учетом выбранных шаблонов
3.3.5 Построение блок-схем алгоритмов подпрограмм
4.1 Общие сведения по разработке сайта
4.2 Выбор языков программирования
5.1 Тестирование клиентского приложения
5.1.3 Заказы. Перевод в поставки
5.1.4 Поставки. Установка цены продажи на товар
5.1.5 Тестирование продажи товара
5.1.8 Тестирование анализа продаж товаров
5.1.6 Тестирование отмены продажи товара
5.1.9 Тестирование функции «Остатки»
5.1.10 Тестирование подпрограммы для работы с пользователями сайта
5.2.1 Правильность выполнения функций по нажатию кнопок и переходов по гиперссылкам
5.2.2 Правильность выполнения SQL-запросов к БД
5.2.3 Тестирование слайдера «Slick»
6. Внедрение продукта в производство
//Лишние лейблы делаем невидимыми
//Лишние текстбоксы делаем невидимыми
//Лишние кнопки делаем невидимыми
//Чистим видимые текстбоксы при повторном нажатии на кнопку
//Изменяем имена лейблов на актуальные для выбранной таблицы
lbl1->Text = "Код_Поставщика";
lbl2->Text = "Название";
lbl3->Text = "Представитель";
lbl4->Text = "Телефон";
lbl5->Text = "Адрес";->Text = "E-mail";->Text = "Сайт";::getSingleton()->fillTable(dataGridView1, "select Код_Поставщика as 'Код поставщика',Название_поставщика as 'Название поставщика',Представитель,Телефон,Адрес,Эл_почта as 'E-mail',Сайт from autorun2.Поставщики ;");
}
// кнопка вывода информации из таблицы "заказы"
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
//Лишние лейблы делаем невидимыми
//Лишние текстбоксы делаем невидимыми
//Чистим видимые текстбоксы при повторном нажатии на кнопку
//Изменяем имена лейблов на актуальные для выбранной таблицы
lbl1->Text = "Код Заказа";
lbl2->Text = "Название товара";
lbl3->Text = "Брэнд";
lbl4->Text = "Заказано шт.";
lbl5->Text = "Стоимость закупки";
lbl6->Text = "Категория";
lbl7->Text = "Размеры";
lbl8->Text = "Характеристики";
lbl9->Text = "Для автомобиля";
//Лишние кнопки делаем невидимыми
ConnToDB::getSingleton()->fillTable(dataGridView1, "select Код_заказа as 'Код заказа', Название_товара as 'Название товара', Брэнд, Количество_ед_товара as 'Заказано шт.', Стоимость_закупки as 'Стоимость закупки',Категория as 'Категория', Размеры, Характеристики,Для_авто as 'Для авто', Дата_заказа as 'Дата заказа' from autorun2.Заказы ;");
}
//кнопка вывода информации из таблицы "поставки"
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
//Лишние лейблы делаем невидимыми
//Лишние текстбоксы делаем невидимыми
//Чистим видимые текстбоксы при повторном нажатии на кнопку
//Изменяем имена лейблов на актуальные для выбранной таблицы
lbl1->Text = "Код Поставки";
lbl2->Text = "Название товара";
lbl3->Text = "Брэнд";
lbl4->Text = "Доставлено товара";
lbl5->Text = "Стоимость заказа";
lbl6->Text = "Стоимость продажи";
lbl7->Text = "Категория";
lbl8->Text = "Размеры";
lbl9->Text = "Характеристики";
lbl10->Text = "Для автомобиля";
//Лишние кнопки делаем невидимыми
ConnToDB::getSingleton()->fillTable(dataGridView1, "select Код_поставки as 'Код поставки',Название_товара as 'Название товара',Брэнд, Доставлено_ед_товара as 'Доставлено товара',Стоимость_заказа as 'Стоимость заказа',Стоимость_продажи as 'Стоимость продажи',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_поставки as 'Дата поставки' from autorun2.Поставки ;");
}: System::Void form2_Load(System::Object^ sender, System::EventArgs^ e) {
//вывод даты и дня недели на форму
label2->Text = System::DateTime::Now.Date.ToShortDateString();::String^ WeekDayName;(System::DateTime::Now.DayOfWeek) {System::DayOfWeek::Sunday:= "воскресенье" + ","; break;System::DayOfWeek::Monday:= "понедельник" + ","; break;System::DayOfWeek::Tuesday:= "Вторник" + ","; break;System::DayOfWeek::Wednesday:= "Среда" + ","; break;System::DayOfWeek::Thursday:= "Четверг" + ","; break;System::DayOfWeek::Friday:= "Пятница" + ","; break;System::DayOfWeek::Saturday:= "Суббота" + ","; break;
}->Text = WeekDayName;(System::DateTime::Now.TimeOfDay.Minutes < 10) {->Text = System::DateTime::Now.TimeOfDay.Hours + ":0" + System::DateTime::Now.TimeOfDay.Minutes;
}{->Text = System::DateTime::Now.TimeOfDay.Hours + ":" + System::DateTime::Now.TimeOfDay.Minutes;
}
}
//кнопка сохранения данных в таблицу"клиенты"
private: System::Void save_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.Клиенты (Ф_И_О,Телефон,Автомобиль,WIN) values('" + this->txt2->Text + "','" + this->txt3->Text + "','" + this->txt4->Text + "','" + this->txt5->Text + "') ;");(myReader->Read()) {
}::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_клиента,Ф_И_О as 'Ф.И.О',Телефон,Автомобиль,WIN from autorun2.Клиенты ;");
}
//кнопка удаления из таблицы "клиенты"
private: System::Void drop_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления данных по любому введенному полю
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.клиенты where Код_клиента = '" + this->txt1->Text + "' ;");(myReader->Read()) {
}::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_клиента,Ф_И_О as 'Ф.И.О',Телефон,Автомобиль,WIN from autorun2.Клиенты ;");
}
//Кнопка сохранения информации в таблицу "товары"
private: System::Void save1_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для сохранения информации в таблицу "товары"
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.товары (Категория, Брэнд, Название_товара, Стоимость_закупки, Стоимость_продажи, Остаток_шт, Для_авто, Размеры, Характеристики) values('" + this->categ1->Text + "','" + this->txt3->Text + "', '" + this->txt4->Text + "', '" + this->txt5->Text + "', '" + this->txt6->Text + "', '" + this->txt7->Text + "', '" + this->txt8->Text + "', '" + this->txt9->Text + "', '" + this->txt10->Text + "') ;");
while (myReader->Read()) {
}
MessageBox::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_товара as 'Код товара', Категория as 'Категория', Брэнд, Название_товара as 'Наименование товара', Стоимость_закупки as 'Стоимость закупки', Стоимость_продажи as 'Стоимость продажи', Остаток_шт as 'Остаток шт.',Для_авто as 'Для автомобиля', Размеры, Характеристики from autorun2.Товары;");
}
//Кнопка удаления выбранной информации из таблицы "товары"
private: System::Void drop1_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления строки по любому введенному колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.товары where Код_Товара ='" + this->txt1->Text + "';");(txt1->Text != "" || txt2->Text != "" || txt3->Text != "" || txt4->Text != "" || txt5->Text != "")(myReader->Read()) {
}::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_товара as 'Код товара',Категория as 'Категория', Брэнд, Название_товара as 'Наименование товара', Стоимость_закупки as 'Стоимость закупки', Стоимость_продажи as 'Стоимость продажи', Остаток_шт as 'Остаток шт.',Для_авто as 'Для автомобиля', Размеры, Характеристики from autorun2.Товары;");
}
//кнопка сохранения информации в таблицу"пользователи"
private: System::Void save2_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для сохранения введенных данных в таблицу
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.users (user_name,password) values( '" + this->txt2->Text + "','" + this->txt3->Text + "') ;");(myReader->Read()) {
}::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}
}
//кнопка вывода информации из таблицы"пользователи"
private: System::Void users_Click(System::Object^ sender, System::EventArgs^ e) {
//Лишние лейблы делаем невидимыми
//Лишние текстбоксы делаем невидимыми
//Лишние кнопки делаем невидимыми
//меняем имена лэйблов на актуальные для выбранной таблицы
lbl1->Text = "Код_Пользователя";
lbl2->Text = "Имя пользователя";
lbl3->Text = "Пароль";
//чистим текстбоксы при повторном нажатии на кнопку
ConnToDB::getSingleton()->fillTable(dataGridView1, "select user_id,user_name from autorun2.users ;");
}
//кнопка удаления информации из таблицы "пользователи"
private: System::Void drop2_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления информации из таблицы по любому введенному в поле колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.users where user_id ='" + this->txt1->Text + "' or user_name='" + this->txt2->Text + "';");(txt1->Text != "" || txt2->Text != "" || txt3->Text != "")(myReader->Read()) {
}
MessageBox::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}
}
//кнопка сохранения данных в таблицу "поставщики"
private: System::Void save_provid_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для сохранения данных в таблицу
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.Поставщики (Название_поставщика, Представитель, Телефон, Адрес, Эл_почта, Сайт) values('" + this->txt2->Text + "','" + this->txt3->Text + "', '" + this->txt4->Text + "', '" + this->txt5->Text + "', '" + this->txt6->Text + "', '" + this->txt7->Text + "') ;");
MessageBox::Show("Данные успешно занесены в базу");
while (myReader->Read()) {
}
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_Поставщика as 'Код поставщика',Название_поставщика as 'Название поставщика',Представитель,Телефон,Адрес,Эл_почта as 'E-mail',Сайт from autorun2.Поставщики ;");
}
//кнопка удаления информации из таблицы "поставщики"
private: System::Void drop_provid_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.Поставщики where Код_поставщика ='" + this->txt1->Text + "' ;");(txt1->Text != "" || txt2->Text != "" || txt3->Text != "" || txt4->Text != "" || txt5->Text != "" || txt6->Text != "" || txt7->Text != "")(myReader->Read()) {
}::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_Поставщика as 'Код поставщика',Название_поставщика as 'Название поставщика',Представитель,Телефон,Адрес,Эл_почта as 'E-mail',Сайт from autorun2.Поставщики ;");
}
//кнопка сохранения данных в таблицу "заказы"
private: System::Void save_zak_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для сохранения данных в таблицу
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.Заказы (Название_товара, Брэнд, Количество_ед_товара, Стоимость_закупки,Категория,Размеры,Характеристики,Для_авто) values('" + this->txt2->Text + "','" + this->txt3->Text + "', '" + this->txt4->Text + "', '" + this->txt5->Text + "', '" + this->categ2->Text + "', '" + this->txt7->Text + "', '" + this->txt8->Text + "', '" + this->txt9->Text + "') ;");
while (myReader->Read()) {
}
MessageBox::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_заказа as 'Код заказа', Название_товара as 'Название товара', Брэнд, Количество_ед_товара as 'Заказано шт.',Стоимость_закупки as 'Стоимость закупки',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_заказа as 'Дата заказа' from autorun2.Заказы ;");
}
//Кнопка поиска клиентов по любому введенному полю
private: System::Void search_client_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_Клиента,Ф_И_О as 'Ф.И.О',Телефон,Автомобиль,WIN from autorun2.Клиенты where Код_Клиента ='" + this->txt1->Text + "' or Ф_И_О='" + this->txt2->Text + "' or Телефон='" + this->txt3->Text + "' or Автомобиль='" + this->txt4->Text + "'or WIN='" + this->txt5->Text + "';");
}
//Кнопка поиска поставщиков по любому введенному полю
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select Код_Поставщика as 'Код поставщика',Название_поставщика as 'Название поставщика',Представитель,Телефон,Адрес,Эл_почта as 'E-mail',Сайт from autorun2.Поставщики where Код_Поставщика ='" + this->txt1->Text + "' or Название_поставщика='" + this->txt2->Text + "';");
}
//Кнопка поиска пользователей по любому введенному полю
private: System::Void search_user_Click(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView1, "select user_id,user_name from autorun2.users where user_id='" + this->txt1->Text + "' or user_name='" + this->txt2->Text + "';");
}
//Кнопка удаления заказов: System::Void drop_zak_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.Заказы where Код_заказа ='" + this->txt1->Text + "' ;");(myReader->Read()) {
}::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}::getSingleton()->fillTable(dataGridView1, "select Код_заказа as 'Код заказа', Название_товара as 'Название товара', Брэнд, Количество_ед_товара as 'Заказано шт.',Стоимость_закупки as 'Стоимость закупки',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_заказа as 'Дата заказа' from autorun2.Заказы ;");
}
//Кнопка сохранения поставок: System::Void save_postavka_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для сохранения данных в таблицу
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("Insert into autorun2.Поставки (Название_товара,Брэнд,Доставлено_ед_товара,Стоимость_заказа,Стоимость_продажи,Категория,Размеры,Характеристики,Для_авто) values('" + this->txt2->Text + "','" + this->txt3->Text + "', '" + this->txt4->Text + "', '" + this->txt5->Text + "', '" + this->txt6->Text + "', '" + this->categ3->Text + "', '" + this->txt8->Text + "', '" + this->txt9->Text + "', '" + this->txt10->Text + "') ;");
while (myReader->Read()) {
}
MessageBox::Show("Данные успешно занесены в базу");
}(Exception^ ex) {::Show(ex->Message);
}
ConnToDB::getSingleton()->fillTable(dataGridView1, "select Код_поставки as 'Код поставки',Название_товара as 'Название товара',Брэнд, Доставлено_ед_товара as 'Доставлено товара',Стоимость_заказа as 'Стоимость заказа',Стоимость_продажи as 'Стоимость продажи',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_поставки as 'Дата поставки' from autorun2.Поставки ; ");
}
//кнопка удаления поставок: System::Void drop_postavka_Click(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для удаления строки из таблицы по любому введенному колумну
try {^ myReader = ConnToDB::getSingleton()->doSQLCommand("delete from autorun2.Поставки where Код_поставки ='" + this->txt1->Text + "' ;");(myReader->Read()) {
}::Show("Данные успешно удалены из базы");
}(Exception^ ex) {::Show(ex->Message);
}
ConnToDB::getSingleton()->fillTable(dataGridView1, "select Код_поставки as 'Код поставки',Название_товара as 'Название товара',Брэнд, Доставлено_ед_товара as 'Доставлено товара',Стоимость_заказа as 'Стоимость заказа',Стоимость_продажи as 'Стоимость продажи',Категория as 'Категория',Размеры,Характеристики,Для_авто as 'Для автомобиля', Дата_поставки as 'Дата поставки' from autorun2.Поставки ; ");