Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 13

Перевести из C++ в C#: прогноз погоды

25.04.2018, 22:37. Показов 3717. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста перевести код,пробовал сам,ничего не вышло. Суть задачи состоит в том, что необходимо реализовать клиент-серверное приложение: сервер генерирует прогноз погоды на неделю. Клиент посылает день недели и получает соответствующий прогноз.
Клиентская часть программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<iostream> // потоки ввода-вывода
 
#include<winsock2.h> // работа с сокетами
 
using namespace std;
 
void main()
 
{
 
WORD wVersionRequested;
 
WSADATA wsaData;
 
SOCKET s;
 
sockaddr_in addr;
 
char b[200];
 
int err;
 
SetConsoleCP(1251); // локализация ввода
 
SetConsoleOutputCP(1251); // локализация вывода
 
wVersionRequested = MAKEWORD(2, 2); // максимальный номер версии
 
err = WSAStartup(wVersionRequested, &wsaData); // инициализация WinSock DLL
 
if(err!= 0)return; // если ошибка - завершение работы
 
addr.sin_family = AF_INET; // тип адреса
 
addr.sin_port = htons(1280); // номер порта
 
addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // IP-адрес сервера
 
s = socket(AF_INET, SOCK_STREAM, 0); // создание сокета, протокол TCP
 
connect(s, (sockaddr*) &addr, sizeof(addr)); // соединение с удалённым сокетом
 
cout<< "Введите номер дня недели (1..7)" <<endl;
 
cin.getline(b,sizeof(b), '\n'); // ввод строки
 
send(s,b,sizeof(b), 0); // отправка строки серверу
 
if (recv(s, b, sizeof(b), 0) != 0) // получение ответа
 
cout<<b<<endl; // вывод результата
 
closesocket(s); // закрытие сокета
 
WSACleanup(); // завершение работы сWinSockAPI
 
}
Серверная часть программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdlib.h> // стандартные функции
 
#include <iostream> // потоки ввода-вывода
 
#include<winsock2.h> // работа с сокетами
 
using namespace std;
 
void main()
 
{
 
WORD wVersionRequested;
 
WSADATA wsaData;
 
SOCKET s1, s2;
 
sockaddr_in addr1, addr2;
 
int i, t, r, err, size;
 
charb[200],weat[7][200];
 
char*dow[7] = {"понедельник", "вторник", "среду", "четверг", "пятницу", "субботу", "воскресенье"};
 
char*rain[3] = {"ясно", "переменная облачность", "ожидается дождь"};
 
for(i= 0;i< 7;i++) // генерация прогноза на неделю
 
{
 
r=rand() % 3; // осадки
 
t=rand() % 5 + 5; // тепмература
 
sprintf(weat[i], "Прогноз погоды на %s: температура воздуха %+i, %s.",dow[i],t,rain[r]);
 
}
 
wVersionRequested=MAKEWORD(2, 2); // максимальный номер версии
 
err = WSAStartup(wVersionRequested, &wsaData); // инициализация WinSock DLL
 
if(err!= 0)return; // если ошибка - завершение работы
 
addr1.sin_family = AF_INET; // тип адреса
 
addr1.sin_port = htons(1280); // номер порта
 
addr1.sin_addr.s_addr = inet_addr("127.0.0.1"); // IP-адрес сервера
 
s1 = socket(AF_INET, SOCK_STREAM, 0); // создание сокета, протокол TCP
 
bind(s1, (sockaddr*) &addr1,sizeof(addr1)); // связывание сокета с локальным адресом
 
listen(s1, 5); // перевод сокета в состояние прослушивания
 
while(true) // вечный цикл обработки
 
{
 
size = sizeof(addr2);
 
s2 = accept(s1, (sockaddr*)&addr2, &size); // ожидание соединения с клиентом
 
while ((i = recv(s2, b, sizeof(b), 0)) != 0) // пока не закрыто соединение
 
{
 
i=atoi(b); // номер дня недели
 
if((i>= 1) && (i<= 7)) // проверка на корректность
 
strcpy(b,weat[i- 1]); // прогноз на выбранный день
 
elsestrcpy(b, "Ошибка! Неверный день недели."); // сообщение о ошибке
 
send(s2,b,sizeof(b), 0); // отправка ответа клиенту
 
}
 
closesocket(s2); // закрытие сокета
 
}
 
WSACleanup(); // прекращение работы сWinSockDLL
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2018, 22:37
Ответы с готовыми решениями:

Прогноз погоды
Доброго времени суток! Пишу гаджет - средневзвешенный прогноз погоды с рейтингом доверия для каждого метео-портала. Уже пропарсил 2 сайта...

Написать программу, которая будет выводить прогноз погоды
Всем привет . У меня во время изучения с # возникла идея написать программу, которая будет выводить прогноз погоды в мою программу с...

Прогноз погоды
Пишу телеграм-бота. Показывает погоду на данный момент. Как реализовать ежедневную рассылку прогноза погоды на сутки?

1
 Аватар для Kill100
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
26.04.2018, 07:58
Цитата Сообщение от kirillpro1001 Посмотреть сообщение
Помогите пожалуйста перевести код,пробовал сам,ничего не вышло.
Где ваши попытки?
И да, вам как надо? через сокеты? как веб сервис SOAP/REST?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2018, 07:58
Помогаю со студенческими работами здесь

Прогноз погоды
Привет всем) &quot;l1 - список, элементами которого являются структуры, в которых хранятся дневные сводки температуры за месяц. Сформировать...

Прогноз погоды
Добрый день.Только познаю мир Delphi.Никак не могу разобраться с задачей: по клику на button или просто через label выводить на экран...

Прогноз погоды
Препод пытается завалить задачей, учитывая то, что Mathcad проходился лишь в ознакомительных целях на уровне базовых понятий и функций. ...

Прогноз погоды
Составить приложение которое по введенному прошедшему дню календаря показывает прогноз погоды. Не знаю с чего начать даже.

Прогноз погоды формат
Помогите пожалуйста! Hужно из этого проекта &quot;&quot; переделать так чтобы всю информацию которая получается в форме сохранялась в txt...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru