Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.11.2022
Сообщений: 20

Вывести на экран наименьшую и наибольшую стоимости палочки

28.05.2023, 13:23. Показов 961. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите, пожалуйста, с заданием (помогите с выводом минимальной и максимальной стоимости палочек, запросы я, вроде, сделал правильные):

Создать базу данных SQL и внести туда информацию о компонентах палочек и конечной стоимости палочек (файл с входными данными будет предоставлен). Таблица должна содержать:
Таблицу core. Содержит информацию о сердцевинах. Состоит из:
Столбца core_id. Является ключевым. Содержит любое уникальное значение, которое позволит идентифицировать конкретный кортеж в таблице.
Столбца core_name. Символьный тип, содержит название сердцевины.
Столбца core_cost. Тип NUMERIC или DECIMAL. Формат: 2 цифры после запятой.
Таблицу wood. Содержит информацию о древесине. Состоит из:
Столбца wood_id. Является ключевым. Содержит любое уникальное значение, которое позволит идентифицировать конкретный кортеж в таблице.
Столбца wood_name. Символьный тип, содержит название древесины.
Столбца wood_cost. Тип NUMERIC или DECIMAL. Формат: 2 цифры после запятой.
На основании этих двух таблиц вывести таблицу, которая будет содержать столбцы:
core_name из таблицы core
wood_name из таблицы wood
Столбец cost. Содержит сумму столбцов core_cost и wood_cost, умноженную на процент добавочной стоимости. Т.е. формула расчёта значения будет: (core_cost + wood_cost) * процент.

Задачи:
Вывести на экран наименьшую и наибольшую стоимости палочки.
Подсказка: чтобы найти наименьшую стоимость палочки, нужно использовать функцию:
SELECT MIN(название столбца) FROM название таблицы;
Максимальное значение можно найти с помощью функции MAX

Алгоритм действий:
Наименьшая стоимость:
1. Найти наименьшее значение из столбца core_cost (сердцевина)
2. Найти наименьшее значение из столбца wood_cost (древесина)
3. Сложить два наименьших значения

Наибольшая стоимость:
1. Найти наибольшее значение из столбца core_cost (сердцевина)
2. Найти наибольшее значение из столбца wood_cost (древесина)
3. Сложить два наибольших значения

У меня есть несколько файлов (MyForm.h конструктор, MyForm.h, SelectDB и MyForm.cpp)

MyForm.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#pragma once
#include "SelectDB.h"
 
namespace Project10 {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::DataGridView^ dataGridView1;
    private: System::Windows::Forms::Button^ button1;
    private: System::Windows::Forms::MenuStrip^ menuStrip1;
    private: System::Windows::Forms::ToolStripMenuItem^ подробнееToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^ выходToolStripMenuItem;
    private: System::Windows::Forms::Label^ label1;
    private: System::Windows::Forms::Label^ label2;
    protected:
 
    private:
        /// <summary>
        /// Обязательная переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
            this->подробнееToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->выходToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->label1 = (gcnew System::Windows::Forms::Label());
            this->label2 = (gcnew System::Windows::Forms::Label());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->dataGridView1))->BeginInit();
            this->menuStrip1->SuspendLayout();
            this->SuspendLayout();
            // 
            // dataGridView1
            // 
            this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
            this->dataGridView1->Location = System::Drawing::Point(12, 42);
            this->dataGridView1->Name = L"dataGridView1";
            this->dataGridView1->RowHeadersWidth = 51;
            this->dataGridView1->Size = System::Drawing::Size(595, 585);
            this->dataGridView1->TabIndex = 0;
            this->dataGridView1->CellContentClick += gcnew System::Windows::Forms::DataGridViewCellEventHandler(this, &MyForm::dataGridView1_CellContentClick);
            // 
            // button1
            // 
            this->button1->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(253)), static_cast<System::Int32>(static_cast<System::Byte>(158)),
                static_cast<System::Int32>(static_cast<System::Byte>(104)));
            this->button1->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
            this->button1->Font = (gcnew System::Drawing::Font(L"Times New Roman", 13.8F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
                static_cast<System::Byte>(204)));
            this->button1->Location = System::Drawing::Point(653, 42);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(265, 67);
            this->button1->TabIndex = 1;
            this->button1->Text = L"Посмотреть продукцию";
            this->button1->UseVisualStyleBackColor = false;
            this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
            // 
            // menuStrip1
            // 
            this->menuStrip1->ImageScalingSize = System::Drawing::Size(20, 20);
            this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(2) {
                this->подробнееToolStripMenuItem,
                    this->выходToolStripMenuItem
            });
            this->menuStrip1->Location = System::Drawing::Point(0, 0);
            this->menuStrip1->Name = L"menuStrip1";
            this->menuStrip1->Size = System::Drawing::Size(953, 28);
            this->menuStrip1->TabIndex = 2;
            this->menuStrip1->Text = L"menuStrip1";
            // 
            // подробнееToolStripMenuItem
            // 
            this->подробнееToolStripMenuItem->Name = L"подробнееToolStripMenuItem";
            this->подробнееToolStripMenuItem->Size = System::Drawing::Size(103, 24);
            this->подробнееToolStripMenuItem->Text = L"Подробнее";
            this->подробнееToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::подробнееToolStripMenuItem_Click);
            // 
            // выходToolStripMenuItem
            // 
            this->выходToolStripMenuItem->Name = L"выходToolStripMenuItem";
            this->выходToolStripMenuItem->Size = System::Drawing::Size(67, 24);
            this->выходToolStripMenuItem->Text = L"Выход";
            this->выходToolStripMenuItem->Click += gcnew System::EventHandler(this, &MyForm::выходToolStripMenuItem_Click);
            // 
            // label1
            // 
            this->label1->AutoSize = true;
            this->label1->Location = System::Drawing::Point(650, 139);
            this->label1->Name = L"label1";
            this->label1->Size = System::Drawing::Size(44, 16);
            this->label1->TabIndex = 3;
            this->label1->Text = L"label1";
            this->label1->Click += gcnew System::EventHandler(this, &MyForm::label1_Click);
            // 
            // label2
            // 
            this->label2->AutoSize = true;
            this->label2->Location = System::Drawing::Point(650, 173);
            this->label2->Name = L"label2";
            this->label2->Size = System::Drawing::Size(44, 16);
            this->label2->TabIndex = 4;
            this->label2->Text = L"label2";
            this->label2->Click += gcnew System::EventHandler(this, &MyForm::label2_Click);
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(185)), static_cast<System::Int32>(static_cast<System::Byte>(203)),
                static_cast<System::Int32>(static_cast<System::Byte>(203)));
            this->ClientSize = System::Drawing::Size(953, 906);
            this->ControlBox = false;
            this->Controls->Add(this->label2);
            this->Controls->Add(this->label1);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->dataGridView1);
            this->Controls->Add(this->menuStrip1);
            this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::None;
            this->MainMenuStrip = this->menuStrip1;
            this->Name = L"MyForm";
            this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
            this->Text = L"MyForm";
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->dataGridView1))->EndInit();
            this->menuStrip1->ResumeLayout(false);
            this->menuStrip1->PerformLayout();
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
#pragma endregion
    private: System::Void dataGridView1_CellContentClick(System::Object^ sender, System::Windows::Forms::DataGridViewCellEventArgs^ e) {
    }
    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
        dataGridView1->DataSource = ConnectToDB();
    }
    private: System::Void подробнееToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
        MessageBox::Show("Здравствуйте! Вы оказались в магазине волшебных палочек 'Олливандер' \nЗдесь вы можете ознакомиться с ассортиментом палочек", "Приветствие");
    }
    private: System::Void выходToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
        Application::Exit();
    }
    private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {
    }
    private: System::Void label2_Click(System::Object^ sender, System::EventArgs^ e) {
    }
};
}
SelectDB.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#pragma once
 
// Импорт необходимых пространств имён
using namespace System;
using namespace System::Windows::Forms;
using namespace Data;
using namespace Data::SqlClient;
 
// Функция для подключения к базе данных и выполнения SQL-запроса
DataTable^ ConnectToDB() {
    // Создание объектов для подключения и выполнения SQL-запросов
    SqlConnection^ conn = gcnew SqlConnection();
    SqlConnectionStringBuilder^ connStringBuilder = gcnew SqlConnectionStringBuilder();
 
    // Настройка параметров подключения
    connStringBuilder->DataSource = "DESKTOP-82NBJ08"; // Имя ВАШЕГО сервера
    connStringBuilder->InitialCatalog = "my_db"; // Имя ВАШЕЙ базы данных
    connStringBuilder->IntegratedSecurity = true; // Использование Windows-аутентификации
 
    // Установка настроек подключения для объекта SqlConnection
    conn->ConnectionString = connStringBuilder->ToString();
 
    // Создание SQL-запроса
    String^ sql = "SELECT core.core_name, wood.wood_name, (core.core_cost + wood.wood_cost) * 1.2 AS cost FROM wood LEFT JOIN core ON wood.wood_id < 40";  //ВАШ запрос к ВАШЕЙ таблице
 
    SqlCommand^ cmd = gcnew SqlCommand(sql, conn);
 
    conn->Open();
 
    //MessageBox::Show("Наименьшая стоимость палочки: " + sqlmin->ToString() + "\nНаибольшая стоимость палочки: " + sqlmax->ToString());
    // Выполнение SQL-запроса и получение результатов в виде DataTable
    SqlDataAdapter^ da = gcnew SqlDataAdapter(cmd);
 
    DataTable^ dt = gcnew DataTable();
    da->Fill(dt);
 
    // Закрытие соединения
    conn->Close();
    // Возвращение DataTable с результатами запроса
    return dt;
}
 
DataTable^ Min() {
    // Создание объектов для подключения и выполнения SQL-запросов
    SqlConnection^ conn = gcnew SqlConnection();
    SqlConnectionStringBuilder^ connStringBuilder = gcnew SqlConnectionStringBuilder();
 
    // Настройка параметров подключения
    connStringBuilder->DataSource = "DESKTOP-82NBJ08"; // Имя ВАШЕГО сервера
    connStringBuilder->InitialCatalog = "my_db"; // Имя ВАШЕЙ базы данных
    connStringBuilder->IntegratedSecurity = true; // Использование Windows-аутентификации
 
    // Установка настроек подключения для объекта SqlConnection
    conn->ConnectionString = connStringBuilder->ToString();
 
    // Создание SQL-запроса
    String^ sql = "SELECT MIN(core_cost) + MIN(wood_cost) AS min_cost FROM core, wood";
 
    SqlCommand^ cmd = gcnew SqlCommand(sql, conn);
 
    conn->Open();
 
    //MessageBox::Show("Наименьшая стоимость палочки: " + sqlmin->ToString() + "\nНаибольшая стоимость палочки: " + sqlmax->ToString());
    // Выполнение SQL-запроса и получение результатов в виде DataTable
    SqlDataAdapter^ da = gcnew SqlDataAdapter(cmd);
    DataTable^ dt = gcnew DataTable();
    da->Fill(dt);
 
    // Закрытие соединения
    conn->Close();
    // Возвращение DataTable с результатами запроса
    return dt;
}
 
DataTable^ Max() {
    // Создание объектов для подключения и выполнения SQL-запросов
    SqlConnection^ conn = gcnew SqlConnection();
    SqlConnectionStringBuilder^ connStringBuilder = gcnew SqlConnectionStringBuilder();
 
    // Настройка параметров подключения
    connStringBuilder->DataSource = "DESKTOP-82NBJ08"; // Имя ВАШЕГО сервера
    connStringBuilder->InitialCatalog = "my_db"; // Имя ВАШЕЙ базы данных
    connStringBuilder->IntegratedSecurity = true; // Использование Windows-аутентификации
 
    // Установка настроек подключения для объекта SqlConnection
    conn->ConnectionString = connStringBuilder->ToString();
 
    // Создание SQL-запроса
    String^ sql = "SELECT MAX(core_cost) + MAX(wood_cost) AS max_cost FROM core, wood";
 
    SqlCommand^ cmd = gcnew SqlCommand(sql, conn);
 
    conn->Open();
 
    //MessageBox::Show("Наименьшая стоимость палочки: " + sqlmin->ToString() + "\nНаибольшая стоимость палочки: " + sqlmax->ToString());
    // Выполнение SQL-запроса и получение результатов в виде DataTable
    SqlDataAdapter^ da = gcnew SqlDataAdapter(cmd);
    DataTable^ dt = gcnew DataTable();
    da->Fill(dt);
 
    // Закрытие соединения
    conn->Close();
 
    // Возвращение DataTable с результатами запроса
    return dt;
}
MyForm.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "MyForm.h"
 
using namespace System;
using namespace System::Windows::Forms;
using namespace Data;
using namespace Data::SqlClient;
 
// Основная функция программы
[STAThreadAttribute] // Атрибут для установки атрибутов потока приложения
void main() {
    // Установка настроек рендеринга и стилей для Windows Forms
    Application::SetCompatibleTextRenderingDefault(false); // Отключение совместимого текстового рендеринга
    Application::EnableVisualStyles(); // Включение стилей Windows Forms
 
    // Создание и запуск экземпляра формы
 
    //CLRFORM - название моего проекта, у вас оно будет другое!
    Project10::MyForm form; // Создание экземпляра класса MyForm (предполагается, что такой класс существует в проекте)
    Application::Run(% form); // Запуск приложения с указанием формы в качестве основного окна
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2023, 13:23
Ответы с готовыми решениями:

Вывести на экран наименьшую и наибольшую строку
В файл вводиться n-ое количество строк. Вывести на экран наименьшую и наибольшую строку

В файл вводится n-ое количество строк. Вывести на экран наименьшую и наибольшую строку
Нельзя использовать vector. Не могу придумать алгоритм.

Запросить с клавиатуры целое число. Вывести на экран наименьшую и наибольшую цифры этого числа
Запросить с клавиатуры целое число. Вывести на экран наименьшую и наибольшую цифры этого числа. Обеспечить безопасный ввод числа с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2023, 13:23
Помогаю со студенческими работами здесь

В строке поменять местами наибольшую и наименьшую цифры, самую наименьшую в алфавитном порядке букву – с наибольшей
помогите пожалуйста нужен код ВБА 1. Символьная строка состоит из цифр и букв латинского алфавита. Поменяйте местами наибольшую и...

Вывести наибольшую и наименьшую цифры в десятмчной записи натурального числа
Вывести наибольшее и наименьшее цифры в записи натурального n-значного числа (n&gt;=2)

Вывести номера судей, которые поставили наименьшую и наибольшую оценки
В соревнованиях по фигурному катанию N судей выстав¬ляют оценки. Наибольшая и наименьшая отбрасываются, а по остальным выставляется...

Необходимо вывести наименьшую и наибольшую цифры данного числа через пробел
Дано натуральное число N. Напишите функцию, определяющую наименьшую и наибольшую цифры данного числа. (python) Входные данные Задано...

Ввести натуральное число n Вывести наименьшую и наибольшую цифры в его записи
1. Ввести натуральное число n. Вывести наименьшую и наибольшую цифры в его записи.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru