
- •Индивидуальное задание
- •Содержимое технического задания
- •Схемы алгоритмов
- •Функция ввода данных
- •Программный код библиотеки
- •Программный код событийной процедуры
- •Результаты работы программы
- •Результаты работы программы
- •Список использованных источников
- •Лабораторная работа №2 «Одномерные массивы»
- •Задание
- •Cодержимое технического задания
- •Функция генерации динамического массива
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №3
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №4
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №5
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •Схемы алгоритмов.
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №6
- •4. Подготовить тесты для контрольного решения задачи. Показать их
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №7
- •Индивидуальное задание
- •Содержание тз
- •4. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •5. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •3 Разработка схем алгоритмов
- •4 Разработка программного кода
- •5 Результаты выполнения проекта
Cодержимое технического задания
1. Разработать алгоритмы решения заданной задачи (количество алгоритмов равно количеству используемых пользовательских функций + алгоритм событийной).
2. Добавить в существующую DLL-библиотеку функции, решающие предписанные задачи. Обмен данными между подпрограммами должен осуществляться через параметры, без использования глобальных переменных. Событийная процедура должна содержать только операторы вызова пользовательских подпрограмм.
3. В ходе решения задачи своего варианта предусмотреть написание функций для создания массива из случайных чисел, создания нового из исходного и для вывода массивов в dataGridView. Для решения задачи своего варианта использовать многочисленные методматериалы, которые перечислены в пояснениях (ЭОИС).
4. Подготовить тесты для контрольного решения задачи. Показать их
использование, отобразив в отчете по заданию.
5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
6. Осуществить запись массивов в текстовый редактор Microsoft Word.
7. Выполнить отчет в соответствии с ГОСТ на схемы алгоритмов и согласно ГОСТ оформления отчетов по НИР.
Программный код DLL-библиотеки
void Class1::enter_mas(int* mas, int n)
{
srand(time(0));
for (int i = 0; i < n; i++)
mas[i] = (int)(rand() % 900) / 20 - 20;
}
void Class1::output_mas(int* mas, int len, DataGridView^ grid)
{
grid->ColumnCount = len;
grid->RowCount = 2;
for (int i = 0; i < len; i++)
{
grid->Rows[0]->Cells[i]->Value = "[" + i + "]";
grid->Rows[0]->Cells[i]->Value = mas[i];
}
int widht = 0;
for (int s = 0; s < grid->ColumnCount; s++)
widht += grid->Columns[s]->Width;
if (widht > 400)
grid->Width = 440;
else
grid->Width = widht;
}
int Class1::kol(int* mas, int n)
{
int p = mas[0];
for (int i = 0; i < n; i++)
if (mas[i] < p)
{
p = mas[i];
}
return p;
}
void Class1::set_mas(int* mas, int* rezmas, int n, int p, int& j)
{
j = 0;
for (int i = 0; i < n; i++)
if (mas[i] > p)
{
rezmas[j] = mas[i];
j++;
}
}
void Class1::add() {
ADOX::Catalog^ k = gcnew ADOX::CatalogClass();
try {
k->Create("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\\Users\\User\\source\\repos\\DBAccess.mdb");
MessageBox::Show("База данных успешно создана");
}
catch (System::Runtime::InteropServices::COMException^ situation) {
MessageBox::Show(situation->Message);
}
finally {
k = nullptr;
}
}
void Class1::add_struct() {
auto p = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\\Users\\User\\source\\repos\\DBAccess.mdb");
p->Open();
auto c = gcnew OleDbCommand("CREATE TABLE [Massivs] ([Номер элемента] counter, [Исходный массив] char (200), [Результирующий массив] char(200))", p);
try {
c->ExecuteNonQuery();
MessageBox::Show("Структура базы данных записана");
}
catch (Exception^ situation) {
MessageBox::Show(situation->Message);
}
p->Close();
}
void Class1::add_zap(int* arr, int* rezmas, int len, int j) {
for (int i = 0; i < len; i++) {
auto p = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\\Users\\User\\source\\repos\\DBAccess.mdb");
p->Open();
if (i < j) {
auto c = gcnew OleDbCommand("INSERT INTO [Massivs] (" + " [Исходный массив], [Результирующий массив]) VALUES('" + arr[i] + "','" + rezmas[i] + "')");
c->Connection = p;
c->ExecuteNonQuery();
}
else {
auto c = gcnew OleDbCommand("INSERT INTO [Massivs](" + " [Исходный массив], [Результирующий массив]) VALUES ('" + arr[i] + "', '')");
c->Connection = p;
c->ExecuteNonQuery();
}
p->Close();
}
MessageBox::Show("В таблицу 'Массивы' добавлена запись");
}
void Class1::zapWord(int* mas, int* rezmas, int n, int j)
{
auto Wrd = gcnew Microsoft::Office::Interop::Word::ApplicationClass();
Wrd->Visible = true;
auto inf = Type::Missing;
String^ str;
auto Doc = Wrd->Documents->Add(inf, inf, inf, inf);
Wrd->Selection->TypeText("Исходный массив");
Wrd->Selection->TypeParagraph();
Object^ t1 = Microsoft::Office::Interop::Word::WdDefaultTableBehavior::wdWord8TableBehavior;
Object^ t2 = Microsoft::Office::Interop::Word::WdAutoFitBehavior::wdAutoFitContent;
Wrd->Selection->TypeParagraph();
Wrd->Selection->TypeParagraph();
Microsoft::Office::Interop::Word::Table^ tbl = Wrd->ActiveDocument->Tables->Add(Wrd->ActiveDocument->Paragraphs[2]->Range, 2, n, t1, t2);
for (int i = 0; i < n; i++)
{
tbl->Cell(1, i + 1)->Range->InsertAfter("[" + Convert::ToString(i) + "]");
str = String::Format("{0:f0}", mas[i]);
tbl->Cell(2, i + 1)->Range->InsertAfter(str);
}
String^ str2;
Wrd->Selection->TypeText("Результирующий массив");
Microsoft::Office::Interop::Word::Table^ tbl2 = Wrd->ActiveDocument->Tables->Add(Wrd->Selection->Range, 2, j, t1, t2);
for (int i = 0; i < j; i++) {
tbl2->Cell(1, i + 1)->Range->InsertAfter("[" + Convert::ToString(i) + "]");
str2 = String::Format("{0:f0}", rezmas[i]);
tbl2->Cell(2, i + 1)->Range->InsertAfter(str2);
}
}