ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.09.2024
Просмотров: 17
Скачиваний: 0
Висновок
Під час виконання курсового проекту я створив програму з класом матриці , яка дозволяє створювати та заповнювати масив матриці, виводити повну матрицю, або її під матрицю на екран. При розробці цього проекту я використовував знання здобуті на лекціях та лабораторних заняттях з дисципліни «Об’єктно - орієнтована технологія програмування» та при роботі з середовищем програмування і компілятором «Borland С++ 6», створюючи свій клас, що необхідний для виконання завдання.
Література
1 «Программирование в C++ Builder 6» А. Я. Архангельский. «Бином-Пресс» . Год: 2003. 308с
2 «C++Builder 6. Справочное пособие. Книга 2. Классы и компоненты».А. Я. Архангельский. Издательство: «Бином-Пресс». 2002. 108с.
3 http://uk.wikipedia.org/
4 http://www.google.ru
Додаток а
Лістинг модуля matrix
#pragma once
class CMatrixStr
{
private:
int Rows;
int Cols;
int ** Data;
public:
CMatrixStr(int Row=1,int Col=1);
~CMatrixStr(void);
void Display(TMemo *Memo1);
void podDisplay(TMemo *Memo3, int i1=1, int i2=1, int j1=2, int j2=2);
void Fill();
};
Додаток б Лістинг модуля Unit1
//--------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "matrix.h"
#include "Unit1.h"
#include "string.h"
//--------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Clear();
Edit2->Clear();
Memo1->Clear();
Memo2->Clear();
Memo3->Clear();
Edit3->Clear();
Edit4->Clear();
Edit5->Clear();
Edit6->Clear();
Memo2->Lines->Add("Створити объект матриці.
Вивести всю матрицю та підматрицю.");
}
//--------------------------------------------------------------------
CMatrixStr::CMatrixStr(int Row,int Col)
{
Rows=Row;
Cols=Col;
Data= new int * [Rows];
for (int j=0;j<Rows;j++){
Data[j] = new int[Cols];
for (int i=0;i<Cols;i++)
{
Data[j][i]=0.0;
}
}
return;
};
CMatrixStr::~CMatrixStr()
{
for (int j=0;j<Rows;j++)
{
delete Data[j];
}
};
void CMatrixStr::Fill()
{
for (int j=0;j<Rows;j++)
{
for (int i=0;i<Cols;i++)
{
Data[j][i]=random(10)-5;
}
}
return;
}
void CMatrixStr::Display(TMemo *Memo1)
{ String st;
Memo1->Lines->Add("Matrix:\n ");
for (int i=0;i<Rows;i++)
{
st="";
for (int j=0;j<Cols;j++)
{
st+=Data[i][j]; st+="\t ";
}
Memo1->Lines->Add(AnsiString(st)+"\n");
}
return;
}
void CMatrixStr::podDisplay(TMemo *Memo3, int i1, int i2, int j1, int j2)
{
String st;
Memo3->Lines->Add("Matrix:\n ");
for (int i=i1-1;i<i2;i++)
{
st="";
for (int j=j1-1;j<j2;j++)
{
st+=Data[i][j]; st+="\t ";
}
Memo3->Lines->Add(AnsiString(st)+"\n");
}
return;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo2->Clear();
Memo3->Clear();
Memo2->Lines->Add("Створити объект матриці. Вивести всю матрицю та підматрицю.");
Memo1->Clear();
int Row, Col;
int i1,i2,j1,j2;
try
{
Row=StrToInt(Edit1->Text);
Col=StrToInt(Edit2->Text);
i1=StrToInt(Edit3->Text);
j1=StrToInt(Edit4->Text);
i2=StrToInt(Edit5->Text);
j2=StrToInt(Edit6->Text);
}
catch (EConvertError &e)
{
ShowMessage("Помилка. Всі значення повинні бути заповнені та цілочисельні.");
return;
}
if((i1>Row)||(i2>Row)) {ShowMessage("Рядок першого або другого елементу більший за кількість рядків в матриці"); return;}
if((j1>Row)||(j2>Row)) {ShowMessage("Стовпчик першого або другого елементу більший за кількість стовпців в матриці"); return;}
if((i1>i2)&&(j1>j2)) {ShowMessage("Індекси першого елементу не може бути більший за другого");return;}
else
{
CMatrixStr matrix(Row,Col);
matrix.Fill();
matrix.Display(Memo1);
matrix.podDisplay(Memo3,i1,i2,j1,j2);
}
}
//--------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
//--------------------------------------------------------------------