СОДЕРЖАНИЕ
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. Внедрение продукта в производство
}>Text = id;
}(Exception^ ex) {::Show(ex->Message);
}
}: System::Void Остатки_Enter(System::Object^ sender, System::EventArgs^ e) {::getSingleton()->fillTable(dataGridView4, "select Код_товара as 'Код товара', Категория as 'Категория', Брэнд, Название_товара as 'Наименование товара', Стоимость_закупки as 'Стоимость закупки', Стоимость_продажи as 'Стоимость продажи', Остаток_шт as 'Остаток шт.',Для_авто as 'Для автомобиля', Размеры, Характеристики from autorun2.Товары where Остаток_шт<=8 order by Остаток_шт;");::getSingleton()->fillTable(dataGridView5, "select Код_товара as 'Код товара', Категория as 'Категория', Брэнд, Название_товара as 'Наименование товара', Стоимость_закупки as 'Стоимость закупки', Стоимость_продажи as 'Стоимость продажи', Остаток_шт as 'Остаток шт.',Для_авто as 'Для автомобиля', Размеры, Характеристики from autorun2.Товары where Остаток_шт=0 order by Остаток_шт;");
}: System::Void button22_Click_2(System::Object^ sender, System::EventArgs^ e) {
//выполняем sql запрос к базе для добавления введенных данных на сервер в базу
if (comboSkidka->Text == "5") {
try {
MySqlDataReader^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.05 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");
while (myReader->Read()) {
}
MessageBox::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 5%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "10") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.1 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 10%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "15") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.15 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 15%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "20") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.2 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 20%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "25") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.25 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 25%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "50") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.5 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 50%");
}(Exception^ ex) {::Show(ex->Message);
}
}(comboSkidka->Text == "70") {{^ myReader = ConnToDB::getSingleton()->doSQLCommand("update autorun2.товары set Стоимость_продажи=Стоимость_продажи-Стоимость_продажи*0.7 where Название_товара='" + this->lbl_mask_name->Text + "' and Брэнд ='" + this->lbl_brend_mask->Text + "';");(myReader->Read()) {
}::Show("На товар'" + this->lbl_mask_name->Text + "' производителя '" + this->lbl_brend_mask->Text + "' установлена скидка 70%");
}(Exception^ ex) {::Show(ex->Message);
}
}>Text = "";
}
};
}
Программный код ConnToDB.cpp:
#include "stdafx.h"
#include "ConnToDB.h"::ConnToDB() {
//соединяемся с БД::String^ connString = L"datasource=localhost;port=3306; username=root;password=160795ad";= gcnew MySql::Data::MySqlClient::MySqlConnection(connString);>Open();
}^ ConnToDB::getSingleton() {(instance == nullptr) {= gcnew ConnToDB();
}instance;
}::Data::MySqlClient::MySqlConnection^ ConnToDB::getConnection() {connection;
}::Data::MySqlClient::MySqlDataReader^ ConnToDB::doSQLCommand(System::String^ command) {();= getSQLCommand(command)->ExecuteReader();reader;
}::Data::MySqlClient::MySqlCommand^ ConnToDB::getSQLCommand(System::String^ command) {gcnew MySql::Data::MySqlClient::MySqlCommand(command, connection);
}ConnToDB::closeReader() {(reader != nullptr && !reader->IsClosed) {>Close();
}(connection->State == System::Data::ConnectionState::Closed) {>Open();
}
}ConnToDB::fillTable(System::Windows::Forms::DataGridView^ table, System::String^ command) {{closeReader();::Data::MySqlClient::MySqlDataAdapter^ sda = gcnew MySql::Data::MySqlClient::MySqlDataAdapter(getSQLCommand(command));::Data::DataTable^ dbdataset = gcnew System::Data::DataTable();>Fill(dbdataset);::Windows::Forms::BindingSource^ bSource = gcnew System::Windows::Forms::BindingSource();>DataSource = dbdataset;>DataSource = bSource;>Update(dbdataset);
}(System::Exception^ ex) {::Windows::Forms::MessageBox::Show(ex->Message);
}
}::~ConnToDB() {connection->Close();
}
Программный код DateAdapter.cpp:
#include "stdafx.h"
#include "DateAdapter.h"namespace AutoRUNapp;::DateAdapter(DateTimePicker^ datePicker) : picker(datePicker) {}::String ^ AutoRUNapp::DateAdapter::getDate() {picker->Value.ToString("yyyy-MM-dd");
}
Программный код Command.h:
#pragma onceAutoRUNapp {namespace System::Windows::Forms;ref class Command abstract {:~Command() {}void execute() = 0;void undo() = 0;
};ref class NavigateCommand : public Command {:^ browser;::String^ url;:(WebBrowser^ browser, System::String^ url) : browser(browser), url(url) {}
~NavigateCommand() {}execute() override {>Navigate(url);
}
};ref class ForwardCommand : public Command {:^ browser;:(WebBrowser^ browser) : browser(browser) {}
~ForwardCommand() {}execute() override {>GoForward();
}undo() override {>GoBack();
}
};ref class BackCommand : public Command {:^ browser;:(WebBrowser^ browser) : browser(browser) {}
~BackCommand() {}execute() override {>GoBack();
}undo() override {>GoForward();
}
};
}