Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

ЗАДАЧА ПО С++

ДЗ 9
Создать базу данных 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) * процент.
Вариант 1:
Выбор конкретных материалов реализовать через выпадающий список. Выпадающий список сделать с помощью Windows Forms.

Что нужно сделать:
создать БД, подключить её к Visual Studio
создать и заполнить таблицы с сердцевинами и древесиной
сделать выпадающий список с помощью Windows Forms
реализовать выбор материала через выпадающий список
вывести на экран стоимость палочки и материалы

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

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

Наибольшая стоимость:
1. Найти наибольшее значение из столбца core_cost (сердцевина)
2. Найти наибольшее значение из столбца wood_cost (древесина)
3. Сложить два наибольших значения
Вариант 3:
Реализовать выбор материалов через ГПСЧ. Отсортировать таблицу с палочками по возрастанию стоимости.
Что нужно сделать:
создать БД, подключить её к Visual Studio
создать и заполнить таблицы с сердцевинами и древесиной
реализовать выбор материалов для 10 палочек с помощью ГПСЧ
вывести на экран данные о палочках: стоимость палочки, материалы палочки
палочки должны быть отсортированы по возрастанию стоимости

По дате
По рейтингу
Аватар пользователя
Знаток

1) Это вы решили сделать задачу ничего не делая? Вы конечно забавно придумали, но пожалуйста, старайтесь делать все сами.
2) Однажды мне приходилось работать с SQL Server, где пришлось создать запросы на получения логина

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
 bool GetLogin(std::wstring login, std::wstring password) 
{ 
	std::wstring command = L"SELECT * FROM LoginsAndPasswords WHERE login='" + login + L"' AND password='" + password + L"'"; 
	SQLHANDLE sqlConnHandle; 
	SQLHANDLE sqlStmtHandle; 
	SQLHANDLE sqlEnvHandle; 
	SQLWCHAR retconstring[128]; 
 
	SQLWCHAR sqlVersion[128] = L""; 
 
	sqlConnHandle = NULL; 
	sqlStmtHandle = NULL; 
 
	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle)) { 
		MessageBox(NULL, L"Error", L"Error", MB_OK); 
	} 
	if (SQL_SUCCESS != SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0)) { 
		MessageBox(NULL, L"Error", L"Error", MB_OK); 
	} 
	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnHandle)) { 
		MessageBox(NULL, L"Error", L"Error", MB_OK); 
	} 
 
	SQLDriverConnect( 
		sqlConnHandle, 
		NULL, 
		(SQLWCHAR*)L"DRIVER={SQL Server};SERVER=.\\sqlexpress;DATABASE=Gym;", 
		SQL_NTS, 
		retconstring, 
		1024, 
		NULL, 
		SQL_DRIVER_NOPROMPT); 
 
	if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, sqlConnHandle, &sqlStmtHandle)) { 
		MessageBox(NULL, L"Error", L"Could not connect to SQL Server", MB_OK); 
	} 
 
	SQLINTEGER ptrSqlVersion; 
 
	if (SQL_SUCCESS != SQLExecDirect(sqlStmtHandle, (SQLWCHAR*)command.c_str(), SQL_NTS)) { 
		MessageBox(NULL, L"Error", L"Could not connect to SQL Server", MB_OK); 
	} 
	else 
	{ 
		SQLFetch(sqlStmtHandle); 
		SQLGetData(sqlStmtHandle, 1, SQL_WCHAR, sqlVersion, 128, &ptrSqlVersion); 
	} 
 
	SQLFreeHandle(SQL_HANDLE_STMT, sqlStmtHandle); 
	SQLDisconnect(sqlConnHandle); 
	SQLFreeHandle(SQL_HANDLE_DBC, sqlConnHandle); 
	SQLFreeHandle(SQL_HANDLE_ENV, sqlEnvHandle); 
 
	if (sqlVersion[0] != '\0') { 
		return true; 
	} 
	return false; 
} 

Это вам для создания запросов в БД для локального хоста. Если вы знакомы с простейшими запросами в БД, то вам не составит труда создать таблицу. За запросы отвечает переменная command. SQLDriverConnect подключает нас к СУБД (Приношу свои глубочайшие извинения, но что туда передают в качестве параметров я не могу сказать, ведь и сам не знаю, но надеюсь вы разберетесь). sqlStmtHandle получает данные из таблицы, с помощью SQLExecDirect. sqlVersion же хранит получаемы ответы.
3) https://learn.microsoft.com/ru-ru/windows/win32/controls/create-a-simple-combo-box - это создание простого списка WinApi. Уверен вам понравится, а что более круто, найдено по первому же запросу и первой ссылке. (Google: "выпадающий список winapi" надеюсь у вас найдет тоже самое)

4) Надеюсь я смог помочь лучше понять, что ВАМ предстоит сделать, так как не кто не хочет работать за +2 балла или за спасибо. Удачи вам!
P.S. Я надеюсь вы понимаете, что тут естественно могут быть ошибки с которыми вам придется столкнуться, все пользователи, что увидели ваш запрос верят в Вас. НЕ СДАВАЙТЕСЬ!