/
Messus
/
Source_power
Обзор
Документация
Войти
/
Messus
/
Source_power
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main_rus.c
210 строк
7 KB
Messus
add and insert db
16 дек 2025, 11:35
16 дек 2025, 11:35
9706e14
Код
Авторство
О чём код?
//тестируем тут #include <stdio.h> #include <sqlite3.h> #include <locale.h> #include <windows.h> #include "source.h" #define CONST_N 3 int main(int argc, char** argv) { setlocale(LC_ALL, ""); SetConsoleCP(1251); SetConsoleOutputCP(1251); //***************************SQLite****************************** sqlite3 *db; char *err_msg = 0; sqlite3_stmt *res; int result = sqlite3_open("power.db", &db); printf("result = %d\n", result); if (result == SQLITE_OK) { printf("Connection established\n"); } else { fprintf(stderr, "Error: %s\n", sqlite3_errmsg(db)); } char *sql = "DROP TABLE IF EXISTS users;" "CREATE TABLE users(id INTEGER PRIMARY KEY AUTOINCREMENT, \ name TEXT,\ value INTEGER,\ power_meh REAL,\ power_eng REAL,\ power_emg_min REAl,\ kpd REAL,\ cos_nom REAL,\ work_mode INTEGER,\ num_work INTEGER,\ kz REAL,\ power_inpt REAL,\ time_i REAL,\ work_time REAL,\ u_value INTEGER);"; result = sqlite3_exec(db, sql, 0, 0, &err_msg); if (result != SQLITE_OK ) { printf("SQL error: %s\n", err_msg); sqlite3_free(err_msg); // очищаем ресурсы sqlite3_close(db); return 1; } sqlite3_close(db); printf("Table created\n"); //*****************************DATA********************************* char *name = "Water pump"; int value = 1; double power_meh = 3.6; double power_eng = 4.0; double power_eng_min = 0.0; double kpd = 0.86; double cos_nom = 0.84; state_t work_mode = 5;; int num_work = 1; double kz = 0.7; double power_inpt = 0.0; double time_i = 1.0; double work_time = 24.0; int u_value = 3; //*****************************INSERT******************************** result = sqlite3_open("power.db", &db); char *sql_i = "INSERT INTO users ( name,\ value,\ power_meh,\ power_eng,\ power_eng_min,\ kpd,\ cos_nom,\ work_mode,\ num_work,\ kz,\ power_inpt,\ time_i,\ work_time,\ u_value\ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; result = sqlite3_prepare_v2(db, sql_i, -1, &res, 0); if (result == SQLITE_OK) { sqlite3_bind_text(res, 1, name, -1, SQLITE_STATIC); sqlite3_bind_int(res, 2, value); sqlite3_bind_double(res, 3, power_meh); sqlite3_bind_double(res, 4, power_eng); sqlite3_bind_double(res, 5, power_eng_min); sqlite3_bind_double(res, 6, kpd); sqlite3_bind_double(res, 7, cos_nom); sqlite3_bind_int(res, 8, work_mode); sqlite3_bind_int(res, 9, num_work); sqlite3_bind_double(res, 10, kz); sqlite3_bind_double(res, 11, power_inpt); sqlite3_bind_double(res, 12, time_i); sqlite3_bind_double(res, 13, work_time); sqlite3_bind_int(res, 14, u_value); int step = sqlite3_step(res); if (step == SQLITE_DONE) { printf("data inserted\n"); } } else { fprintf(stderr, "Error: %s\n", sqlite3_errmsg(db)); } sqlite3_finalize(res); sqlite3_close(db); //****************************MAIN****************************** double dev; user_type w_pump; user_type f_pump; user_type v_tex; user_construct(&w_pump, "Water pump"); user_construct(&f_pump, "Fire pump"); user_construct(&v_tex, "Vertex"); user_type users[CONST_N]; users[0] = w_pump; users[1] = f_pump; users[2] = v_tex; for (int i=0; i < CONST_N; i++) { switch (users[i].work_mode) { case ONE: double mp_one, ma_one, dis_one; mp_one = math_p_act_mode_one(&users[i]); ma_one = math_p_react_mode_one(&users[i]); dis_one = dispersion_mode_one(&users[i]); printf("Наименование потребителя: %s\n", users[i].name); printf("Режим - непрерывно работающий с постоянной нагрузкой.\n"); printf("Математическое ожидание активной нагрузки:\t%.2f, кВт\n", mp_one); printf("Математическое ожидание реактивной нагрузки:\t%.2f, кВАр\n", ma_one); printf("Дисперсия:\t\t\t\t\t%.2f\n", dis_one); break; case TWO: double mp_two, ma_two, dis_two; mp_two = math_p_act_mode_two(&users[i]); ma_two = math_p_react_mode_two(&users[i]); dis_two = dispersion_mode_two(&users[i]); printf("Наименование потребителя: %s\n", users[i].name); printf("Режим - непрерывно работающий с переменной нагрузкой.\n"); printf("Математическое ожидание активной нагрузки:\t%.2f, кВт\n", mp_two); printf("Математическое ожидание реактивной нагрузки:\t%.2f, кВАр\n", ma_two); printf("Дисперсия:\t\t\t\t\t%.2f\n", dis_two); break; case TREE: double mp_tree, ma_tree, dis_tree; mp_tree = math_p_act_mode_tree(&users[i]); ma_tree = math_p_react_mode_tree(&users[i]); dis_tree = dispersion_mode_tree(&users[i]); printf("Наименование потребителя: %s\n", users[i].name); printf("Режим - периодически работающий с постоянной нагрузкой.\n"); printf("Математическое ожидание активной нагрузки:\t%.2f, кВт\n", mp_tree); printf("Математическое ожидание реактивной нагрузки:\t%.2f, кВАр\n", ma_tree); printf("Дисперсия:\t\t\t\t\t%.2f\n", dis_tree); break; case FOUR: double mp_four, ma_four, dis_four; mp_four = math_p_act_mode_four(&users[i]); ma_four = math_p_react_mode_four(&users[i]); dis_four = dispersion_mode_four(&users[i]); printf("Наименование потребителя: %s\n", users[i].name); printf("Режим - дискретное распределение нагрузки.\n"); printf("Математическое ожидание активной нагрузки:\t%.2f, кВт\n", mp_four); printf("Математическое ожидание реактивной нагрузки:\t%.2f, кВАр\n", ma_four); printf("Дисперсия:\t\t\t\t\t%.2f\n", dis_four); break; case FIVE: double mp_five, ma_five, dis_five; mp_five = math_p_act_mode_five(&users[i]); ma_five = math_p_react_mode_five(&users[i]); dis_five = dispersion_mode_five(&users[i]); printf("Наименование потребителя: %s\n", users[i].name); printf("Режим - лебедки,краны при погрузке/разгрузке.\n"); printf("Математическое ожидание активной нагрузки:\t%.2f, кВт\n", mp_five); printf("Математическое ожидание реактивной нагрузки:\t%.2f, кВАр\n", ma_five); printf("Дисперсия:\t\t\t\t\t%.2f\n", dis_five); break; default: printf("Некорректный ввод режима...\n"); //"?"-чтобы в ячейку влез } } dev = standard_dev(&w_pump); printf("Среднеквадратическое отклонение:\t\t%.2f\n", dev); user_destruct(&w_pump); return 0; }