Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания практические ООП 2012 час...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
18.03 Mб
Скачать

3 Частина

Своримо нове прикладення

Додамо до проекту наступну бібліотеку

Створимо нову форму та розташуємо наступні компоненти

Для форми створимо обробники подій

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {

this->Text = "Расчет ежемесячных платежей";

label1->Text = "Год. ставка в %";

label2->Text = "Срок в месяцах";

label3->Text = "Размер кредита";

textBox1->Clear(); textBox2->Clear(); textBox3->Clear();

button1->Text = "Расчет";

}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

try

{

Microsoft::Office::Interop::Excel::Application^ XL = gcnew Microsoft::Office::Interop::Excel::Application();

// Перменная с "пустым" значением:

System::Object^ t = Type::Missing;

// Получаем размер месячного платежа:

double pay = XL->WorksheetFunction->Pmt(

(Convert::ToDouble(textBox1->Text)) / 1200,

Convert::ToDouble(textBox2->Text),

Convert::ToDouble(textBox3->Text), t, t);

// ИЛИ, если использовать функцию Pmt()

// из Microsoft.VisualBasic:

// double FV = 0;

// Microsoft::VisualBasic::DueDate dt =

// Microsoft::VisualBasic::DueDate::EndOfPeriod;

// double pay = Microsoft::VisualBasic::Financial::Pmt(

// (Convert::ToDouble(textBox1->Text)) / 1200,

// Convert::ToDouble(textBox2->Text),

// Convert::ToDouble(textBox3->Text), FV, dt);

String^ Строка = String::Format("Каждый месяц следует платить {0:$#.##} долларов",Math::Abs(pay));

MessageBox::Show(Строка);

XL->Quit();

}

catch (Exception ^ Ситуация)

{

MessageBox::Show(Ситуация->Message, "Ошибка",

MessageBoxButtons::OK, MessageBoxIcon::Exclamation);

}

Запустимо прикладення.

Якщо клацнемо на кнопці

Завершимо роботу із програмою.

4 Частина

Розташуємо на формі кнопку та надпис

Додамо до обробника подій на завантаження форми наступний код:

button2->Text = "Решение СЛАУ";

Створимо нову форму

Для форми створимо обробники подій

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {

// Матричное уравнение AX = L решаем через

// обратную матрицу: X = A(-1)L.

// Здесь (-1) - "знак" обратной матрицы.

// Решаем систему

// X1 + X2 + X3 = 6

// X1 + X2 = 3

// X2 + X3 = 5

// Для этой системы прямая матрица будет иметь вид:

// array<double,2> ^ A = gcnew array<double,2>(n, n);

array<double,2> ^ A = { {1, 1, 1},

{1, 1, 0},

{0, 1, 1} };

// Строка свободных членов:

// array<double> ^ L = gcnew array<double>(n);

// Свободные члены:

array<double> ^ L = { 6, 3, 5 };

// Создание экземпляра класса Excel::Application:

Microsoft::Office::Interop::Excel::Application^ XL1 = gcnew Microsoft::Office::Interop::Excel::Application();

// Вычисление детерминанта матрицы А

double det_A = XL1->WorksheetFunction->MDeterm(A);

// Если det_A != 0, то выход из процедуры:

if (Math::Abs(det_A) < 0.01)

{

label1->Text = "Система не имеет решения, поскольку\n\n" +

"определитель равен нулю";

return;

}

// Получение обратной матрицы oA:

Object ^ oA = XL1->WorksheetFunction->MInverse(A);

// Функция Transpose преобразует строку свободных

// членов в вектор:

Object ^ ВекторL = XL1->WorksheetFunction->Transpose(L);

// Умножение обратной матрицы на вектор свободных членов:

Object ^ X = XL1->WorksheetFunction->MMult(oA, ВекторL);

// Чтобы ответ приобрел индексированные свойства,

// преобразуем его в массив:

array<Object^,2> ^ Xd = (array<Object^,2> ^)X;

// Получаем двумерный массив, индексы которого

// начинаются с единицы:

label4->Text = String::Format(

"Неизвестные равны:\n\nX1 = {0}; X2 = {1}; X3 = {2}.",

Xd[1, 1], Xd[2, 1], Xd[3, 1]);

}

Повернемося до першої форми. До першої форми підключимо нову форму. Для події клацання на кнопці створимо обробник для відкриття нової форми

Запустимо прикладення.

Якщо клацнемо на кнопці

Завершимо роботу із програмою.

Завдання до виконання практичної роботи №9

Виконати завдання частин 1-4, створити індивідуальне прикладення, назви форм повинні відрізнятися від наведених у прикладу розробки.

Критерії оцінювання :

на "3" студент виконує два із завдань на вибір , пояснює лістинги своїх програм

на "4" студент виконує три завдання, пояснює лістинги своїх програм

на "5" студент виконує чотири завдання, пояснює лістинги своїх програм.

Контрольні запитання:

  1. Яким чином відбувається робота із пакетами програм MS Office?

  2. Яку бібліотеку та яким чином потрібно підключити для роботи із Word?

  3. Яким чином працювати із функціями Word?

  4. Яку бібліотеку та яким чином потрібно підключити для роботи із Excel?

  5. Яким чином працювати із функціями Excel?

Практична робота № 10

Тема:"Створення бази даних у середовищі MS SQL Server 2005"

Мета: Навчитися створювати БД у середовищі MS SQL Server 2005

Ход роботи:

Visual Studio 2005 предоставляет пользователям платформу разработки для создания приложений. Используя Visual С++, можно разрабатывать приложения для устройств, которые обмениваются информацией с базами данных SQL Server и SQL Server Compact Edition.

Связи между различными компонентами показаны на следующем рисунке 1.

Рисунок 1-Связи между компонентами

Чтобы обеспечить обмен данными между устройством и экземпляром Microsoft SQL Server, SQL Server 2005 Compact Edition (SQL Server Compact Edition) использует несколько компонентов клиентской и серверной сред.

Взаимосвязи между клиентскими и серверными компонентами показаны на следующем рисунке 2.

Клиентская среда

Рисунок 2- Взаимосвязи между клиентскими и серверными компонентами

Клиентская среда состоит из приложения и SQL Server Compact Edition.