
- •Индивидуальное задание
- •Содержимое технического задания
- •Схемы алгоритмов
- •Функция ввода данных
- •Программный код библиотеки
- •Программный код событийной процедуры
- •Результаты работы программы
- •Результаты работы программы
- •Список использованных источников
- •Лабораторная работа №2 «Одномерные массивы»
- •Задание
- •Cодержимое технического задания
- •Функция генерации динамического массива
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №3
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №4
- •Задание
- •Cодержимое технического задания
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №5
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •6. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •Схемы алгоритмов.
- •Программный код dll-библиотеки
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №6
- •4. Подготовить тесты для контрольного решения задачи. Показать их
- •5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •Программный код событийной процедуры
- •Список использованных источников
- •Лабораторная работа №7
- •Индивидуальное задание
- •Содержание тз
- •4. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
- •5. Выполнить отчет в соответствии с гост на схемы алгоритмов и согласно гост оформления отчетов по нир.
- •3 Разработка схем алгоритмов
- •4 Разработка программного кода
- •5 Результаты выполнения проекта
Список использованных источников
1 Гуриков С. Р. Основы алгоритмизации и программирования на Visual C++ : учебное пособие / С.Р. Гуриков. — Москва : ИНФРА-М, 2022. — 515 с. — (Высшее образование: Бакалавриат). — DOI 10.12737/1039154. - ISBN 978-5-16-015500-5. - Текст: электронный. - URL: https://znanium.com/catalog/product/1039154 – Режим доступа: по подписке.
2 "ГОСТ 7.32-2017. Межгосударственный стандарт. Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления" (введен в действие Приказом Росстандарта от 24.10.2017 N 1494-ст) — М., Стандартинформ, 2017.
Лабораторная работа №6
«Запись одномерных массивов в редактор таблиц Microsoft Excel»
Вариант №18
Выполнил: Студент группы которую ненавидит Гуриков С.Р.
Великий студент
Вариант ахуенный
Проверил: Доцент каф. «Информатика»
Гуриков С. Р.
Задание
Разработайте функцию для создания одномерного динамического вещественного массива состоящего из случайных положительных и отрицательных чисел. Разработайте функцию, которая находит минимальный отрицательный элемент в массиве. Разработайте функцию, которая формирует новый массив, из индексов элементов исходного массива, значения которых больше найденного числа и разработайте метод который производит запись массивов в редактор таблиц Microsoft Excel.
Cодержимое технического задания
1. Разработать алгоритмы решения заданной задачи (количество алгоритмов равно количеству используемых пользовательских функций + алгоритм событийной).
2. Добавить в существующую DLL-библиотеку функции, решающие предписанные задачи. Обмен данными между подпрограммами должен осуществляться через параметры, без использования глобальных переменных. Событийная процедура должна содержать только операторы вызова пользовательских подпрограмм.
3. В ходе решения задачи своего варианта предусмотреть написание функций для создания массива из случайных чисел, создания нового из исходного и для вывода массивов в dataGridView. Для решения задачи своего варианта использовать многочисленные методматериалы, которые перечислены в пояснениях (ЭОИС).
4. Подготовить тесты для контрольного решения задачи. Показать их
использование, отобразив в отчете по заданию.
5. Выполнить проект и получить результаты, которые отобразить в виде рисунков при написании отчета по заданию.
6. Осуществить запись массивов в редактор таблиц Microsoft Excel.
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[1]->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);
}
}
void Class1::ZapExcel(int* mas, int* rezmas, int n, int j) {
auto XL = gcnew Microsoft::Office::Interop::Excel::ApplicationClass;
XL->Visible = true;
Object^ t = Type::Missing;
auto Workbook = XL->Workbooks->Add(t);
String^ str;
XL->Cells[1, 1] = "Исходный массив";
for (int i = 0; i < n; i++) {
XL->Cells[2, i + 1] = Convert::ToString(i);
str = String::Format("{0:f0}", mas[i]);
XL->Cells[3, i + 1] = str;
}
XL->Cells[5, 1] = "Результирующий массив";
for (int i = 0; i < j; i++) {
XL->Cells[6, i + 1] = Convert::ToString(i);
str = String::Format("{0:f0}", rezmas[i]);
XL->Cells[7, i + 1] = str;
}
}