Пояснительная записка к курсовой работе по курсу Вычислительная техника и алгоритмические языки
Скачать 0.85 Mb.
|
6.2 Основной файл Source.cpp#include "Header.h" int main() { setlocale(LC_ALL, "russian"); char menu; Data data = {NULL,NULL,0}; // Массив данных float a = 0; // Коэффициенты для линейной функции float b = 0; // Коэффициенты для линейной функции float a_1 = 0; // Коэффициенты для логарифмической функции float b_1 = 0; // Коэффициенты для логарифмической функции float a_2 = 0; // Коэффициенты для квадратичной функции float b_2 = 0; // Коэффициенты для квадратичной функции float c_2 = 0; // Коэффициенты для квадратичной функции float Y[8]; // Теоретические значения ofstream out("result.txt"); bool file_1, file_2, file_3; // Переменные для записи данных в файл file_1 = file_2 = file_3 = true; do { mainMenu(); menu = _getch(); switch (menu) { case '1': // Ввдон данных с клавиатуры data = enterData(data); break; case '2': // Ввод данных с файла data = readFile(data); break; case '3': // Линейная зависимость. Коэффициент кореляции. system("cls"); linearDependence(data, &a, &b); cout << "Коэффициент a = " << a << endl; cout << "Коэффициент b = " << b << endl; for (int i = 0; i < data.N; i++) { Y[i] = (a * data.U[i] + b); } cout << "Коэффициент корреляция r = " << coefCorrelation(data, a, b) << endl; cout << "Ср. квадратичное отклонение S = " << S(data, Y) << endl; cout << "Относительная ошибка A = " << A(data, Y) << endl; cout << "Прознозное значение p для 0,78U = " << a * 0.78 + b << endl; cout << "Прознозное значение p для 0,93U = " << a * 0.93 + b << endl; cout << "Прознозное значение p для 0,98U = " << a * 0.98 + b << endl; cout << "Прознозное значение p для 1,15U = " << a * 1.15 + b << endl; cout << "Y теор."; for (int i = 0; i < data.N; i++) { cout << "\t" << data.p[i]; } cout << endl; cout << "Y ан."; for (int i = 0; i < data.N; i++) { cout << "\t" << Y[i]; } _getch(); // Запись в файл if (file_1) { out << "\n\nЗависимость №1: " << endl; out << "Коэффициент a = " << a << endl; out << "Коэффициент b = " << b << endl; out << "Коэффициент корреляция r = " << coefCorrelation(data, a, b) << endl; out << "Ср. квадратичное отклонение S = " << S(data, Y) << endl; out << "Относительная ошибка A= " << A(data, Y) << endl; out << "Прознозное значение p для 0,78U = " << a * 0.78 + b << endl; out << "Прознозное значение p для 0,93U = " << a * 0.93 + b << endl; out << "Прознозное значение p для 0,98U = " << a * 0.98 + b << endl; out << "Прознозное значение p для 1,15U = " << a * 1.15 + b << endl; out << "Y теор."; for (int i = 0; i < data.N; i++) { out << "\t" << data.p[i]; } out << endl; out << "Y ан."; for (int i = 0; i < data.N; i++) { out << "\t" << Y[i]; } file_1 = false; } break; case'4': // Логарифмическая system("cls"); for (int i = 0; i < data.N; i++) { data.U[i] = log(data.U[i]); } linearDependence(data, &a_1, &b_1); for (int i = 0; i < data.N; i++) { data.U[i] = exp(data.U[i]); } cout << "Коэффициент a = " << a_1 << endl; cout << "Коэффициент b = " << b_1 << endl; for (int i = 0; i < data.N; i++) { Y[i] = a_1 * log(data.U[i]) + b_1; } cout << "Индекс корреляция R = " << indexCorrelation(data, Y) << endl; cout << "Ср. квадратичное отклонение S = " << S(data, Y) << endl; cout << "Относительная ошибка A = " << A(data, Y) << endl; cout << "Прознозное значение p для 0,78U = " << a_1 * log(0.78) + b_1 << endl; cout << "Прознозное значение p для 0,93U = " << a_1 * log(0.93) + b_1 << endl; cout << "Прознозное значение p для 0,98U = " << a_1 * log(0.98) + b_1 << endl; cout << "Прознозное значение p для 1,15U = " << a_1 * log(1.15) + b_1 << endl; cout << "Y теор."; for (int i = 0; i < data.N; i++) { cout << "\t" << data.p[i]; } cout << endl; cout << "Y ан."; for (int i = 0; i < data.N; i++) { cout << "\t" << Y[i]; } _getch(); // Запись в файл if (file_2) { out << "\n\nЗависимость №2: " << endl; out << "Коэффициент a = " << a_1 << endl; out << "Коэффициент b = " << b_1 << endl; for (int i = 0; i < data.N; i++) { Y[i] = a_1 * log(data.U[i]) + b_1; } out << "Индекс корреляция R = " << indexCorrelation(data, Y) << endl; out << "Ср. квадратичное отклонение S = " << S(data, Y) << endl; out << "Относительная ошибка A = " << A(data, Y) << endl; out << "Прознозное значение p для 0,78U = " << a_1 * log(0.78) + b_1 << endl; out << "Прознозное значение p для 0,93U = " << a_1 * log(0.93) + b_1 << endl; out << "Прознозное значение p для 0,98U = " << a_1 * log(0.98) + b_1 << endl; out << "Прознозное значение p для 1,15U = " << a_1 * log(1.15) + b_1 << endl; out << "Y теор."; for (int i = 0; i < data.N; i++) { out << "\t" << data.p[i]; } out << endl; out << "Y ан."; for (int i = 0; i < data.N; i++) { out << "\t" << Y[i]; } file_2 = false; } break; case '5': // Квадратичная зависимость system("cls"); quadratic(data, &a_2, &b_2, &c_2); for (int i = 0; i < data.N; i++) { Y[i] = a_2 + b_2 * data.U[i] + c_2 * pow(data.U[i], 2); } cout << "Коэффициент a = " << a_2 << endl; cout << "Коэффициент b = " << b_2 << endl; cout << "Коэффициент c = " << c_2 << endl; cout << "Индекс корреляция R = " << indexCorrelation(data, Y) << endl; cout << "Ср. квадратичное отклонение S =" << S(data, Y) << endl; cout << "Относительная ошибка A =" << A(data, Y) << endl; cout << "Прознозное значение p для 0,78U = " << a_2 + b_2 * 0.78 + c_2 * pow(0.78, 2) << endl; cout << "Прознозное значение p для 0,93U = " << a_2 + b_2 * 0.93 + c_2 * pow(0.93, 2) << endl; cout << "Прознозное значение p для 0,98U = " << a_2 + b_2 * 0.98 + c_2 * pow(0.98, 2) << endl; cout << "Прознозное значение p для 1,15U = " << a_2 + b_2 * 1.15 + c_2 * pow(1.15, 2) << endl; cout << "Y теор."; for (int i = 0; i < data.N; i++) { cout << "\t" << data.p[i]; } cout << endl; cout << "Y ан."; for (int i = 0; i < data.N; i++) { cout << "\t" << Y[i]; } _getch(); // Запись в файл if (file_3) { out << "\n\nЗависимость №3: " << endl; out << "Коэффициент a = " << a_2 << endl; out << "Коэффициент b = " << b_2 << endl; out << "Коэффициент c = " << c_2 << endl; out << "Индекс корреляция R = " << indexCorrelation(data, Y) << endl; out << "Ср. квадратичное отклонение S =" << S(data, Y) << endl; out << "Относительная ошибка A =" << A(data, Y) << endl; out << "Прознозное значение p для 0,78U = " << a_2 + b_2 * 0.78 + c_2 * pow(0.78, 2) << endl; out << "Прознозное значение p для 0,93U = " << a_2 + b_2 * 0.93 + c_2 * pow(0.93, 2) << endl; out << "Прознозное значение p для 0,98U = " << a_2 + b_2 * 0.98 + c_2 * pow(0.98, 2) << endl; out << "Прознозное значение p для 1,15U = " << a_2 + b_2 * 1.15 + c_2 * pow(1.15, 2) << endl; out << "Y теор."; for (int i = 0; i < data.N; i++) { out << "\t" << data.p[i]; } out << endl; out << "Y ан."; for (int i = 0; i < data.N; i++) { out << "\t" << Y[i]; } file_3 = false; } break; case '0': break; default: break; } } while (menu != '0'); out.close(); return 0; } |