Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 4 Пантелеева БСТ1904.docx
Скачиваний:
67
Добавлен:
04.03.2022
Размер:
348.78 Кб
Скачать

Void char_to_mas_int(char* c, int *mas)

{

int count = 0;

string list = "0123456789";

string str = "";

for (int i = 0; i < strlen(c); i++)

{

if (c[i] != ' ')

{

bool check = false;

for (int j = 0; j < 10; j++)

{

if (c[i] == list[j])

{

str += c[i];

check = true;

}

}

if (!check)

{

return;

}

}

else

{

mas[count] = atoi(str.c_str());

count++;

str = "";

}

}

}

secondary3.cpp

#include "header.h"

#include <iostream>

#include <Windows.h>

#include <string>

#include <cstdlib>

#include <sstream>

using namespace std;

const int siz = 10;

void printArray(int[siz]);

void int_to_char(int *a, char *c);

void string_to_char(string s, char *c);

void char_to_mas_int(char* c, int *mas);

HANDLE hEvent;

HANDLE hEventTermination;

LPCTSTR lpEventName = "$EventName$";

LPCTSTR lpEventTerminationName = "$TerminationName$";

LPCTSTR lpFileShareName = "$ShareName$";

HANDLE memory_handle;

LPVOID memory;

int main()

{

setlocale(LC_ALL, "Russian");

CHAR chr;

hEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE, lpEventName);

hEventTermination = OpenEvent(EVENT_ALL_ACCESS, FALSE, lpEventTerminationName);

memory_handle = OpenFileMapping(FILE_MAP_READ | FILE_MAP_WRITE, FALSE, lpFileShareName);

memory = MapViewOfFile(memory_handle, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);

char message[255];

memcpy(message, memory, sizeof(message));

int b[siz];

char_to_mas_int(message, b);

cout << "Massiv get:" << endl;

for (int i = 0; i < siz; i++) cout << b[i] << " ";

cout << endl << endl;

int temp;

for (int i = 0; i < siz - 1; i++) {

for (int j = 0; j < siz - i - 1; j++) {

if (b[j] > b[j + 1]) {

temp = b[j];

b[j] = b[j + 1];

b[j + 1] = temp;

}

}

}

cout << "Result = " << endl;

printArray(b);

cout << endl;

int_to_char(b, message);

memcpy(memory, message, sizeof(message));

cout << "Done" << endl;

SetEvent(hEvent);

SetEvent(hEventTermination);

CloseHandle(hEvent);

CloseHandle(hEventTermination);

UnmapViewOfFile(memory);

CloseHandle(memory_handle);

system("pause");

return 0;

}

Void char_to_mas_int(char* c, int *mas)

{

int count = 0;

string list = "0123456789";

string str = "";

for (int i = 0; i < strlen(c); i++)

{

if (c[i] != ' ')

{

bool check = false;

for (int j = 0; j < 10; j++)

{

if (c[i] == list[j])

{

str += c[i];

check = true;

}

}

if (!check)

{

return;

}

}

else

{

mas[count] = atoi(str.c_str());

count++;

str = "";

}

}

}

Void int_to_char(int *a, char *c)

{

string str = "";

for (int i = 0; i < 10; i++)

{

ostringstream s;

s << a[i];

str += s.str();

str += ' ';

}

string_to_char(str, c);

}

Void string_to_char(string s, char *c)

{

int i;

for (i = 0; i < s.size(); i++)

{

c[i] = s[i];

}

c[i] = '\0';

}

void printArray(int arr[siz])

{

for (int i = 0; i < siz; i++)

{

cout << arr[i] << " ";

}

cout << endl << endl;

}

Результаты работы

Результат обмена почтовыми ящиками (рисунок 1).

Рисунок 1 – Почтовые ящики

На рисунке 2 представлен результат программы на основе каналов.

Рисунок 2 – Каналы

На рисунке 3 представлен результат работы программы с отображением файлов.

Рисунок 3 – Отображение файлов