
- •Цель работы
- •Лабораторное задание
- •Код программы
- •Void single_int_to_char(int a, char *c)
- •Void char_to_mas_int(char* c, int *mas)
- •Int char_to_int(char* c)
- •Void int_to_char(int *a, char *c)
- •Void string_to_char(string s, char *c)
- •Void parent(lpctstr parent_mail, lpctstr child_mail)
- •Void child(handle parent_handle, lpctstr parent_mail, lpctstr child_mail)
- •Int* divide(int* arr, int X, int* b)
- •Int char_to_int(char* c)
- •Void int_to_char(int *a, char *c)
- •Void string_to_char(string s, char *c)
- •Void parent(lpctstr parent_mail, lpctstr child_mail)
- •Void child(handle parent_handle, lpctstr parent_mail, lpctstr child_mail)
- •Int* divide(int* arr, int X, int* b)
- •Void string_to_char(string s, char *c)
- •Int char_to_int(char* c)
- •Void int_to_char(int *a, char *c)
- •Void char_to_mas_int(char* c, int *mas)
- •Int* divide(int* arr, int X, int* b)
- •Void single_int_to_char(int a, char *c)
- •Void char_to_mas_int(char* c, int *mas)
- •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)
- •Void char_to_mas_int(char* c, int *mas)
- •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)
{
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 – Отображение файлов