Форум программистов, компьютерный форум CyberForum.ru

Метеорологическая станция - C++

Восстановить пароль Регистрация
 
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.07.2010, 00:44     Метеорологическая станция #1
Решил все же попробовать сделать это задание...

Система должна обеспечивать автоматический мониторинг следующих первичных погодных параметров:

скорость и направление ветра;
температура;
барометрическое давление;
влажность воздуха.
Система также должна вычислять некоторые производные параметры, в число которых входят:
коэффициент резкости погоды;
точка росы;
относительное изменение температуры;
относительное изменение барометрического давления.
В системе должна быть предусмотрена возможность определения текущего времени и даты, которые будут использоваться при генерации сообщении о максимальных и минимальных значениях первичных параметров за последние 24 часа.
Система должна обеспечивать постоянный вывод на дисплей текущих значений всех восьми первичных и производных параметров, а также текущее время и дату. Пользователь должен иметь возможность увидеть максимальные и минимальные значения любого из первичных параметров за 24 часа, сопровождаемые информацией о времени произведения соответствующего замера.

Система должна позволять пользователю проводить калибровку датчиков по известным опорным значениям, а также устанавливать текущие время и дату.
Вот что вырисовывается пока. Мне вот интересно, если я буду рассчитывать температуру, как наши синоптики - это нормально?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Classes.h
#ifndef _CLASSES_H_
#define _CLASSES_H_
class TempSens//Датчик температуры
{
protected:
    double temperature;//Температура
public:
    TempSens(){}
    ~TempSens(){}
    double currentTemperature();//Температура на данный момент
    double setMinTemperature();//Установка минимально-возможнаой температуры
    double setMaxTemperature();//Установка максимально-возможной температуры
};
#endif
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
//Classes.cpp
#include <iostream>
#include <ctime>
#include "Classes.h"
#include <boost/random.hpp>
////////////////////////////////////////////////////////////////////////////////////
template <typename EngineT, typename DistributionType=int>
struct CRandomT
{
        typedef boost::uniform_int<DistributionType> distribution_type;
        typedef typename distribution_type::result_type result_type;
 
        CRandomT(result_type a, result_type b) : 
        gen_(
                EngineT(static_cast<result_type>(time(NULL))),
                distribution_type(a, b)
                )
        {
        };
        result_type operator()()
        {
                return gen_();
        }
        boost::variate_generator<EngineT, distribution_type> gen_;
};
typedef CRandomT<boost::mt19937> CRandom;
////////////////////////////////////////////////////////////////////////////////////
double TempSens::currentTemperature()
{
    CRandom rnd(20, 35);
    temperature=rnd();
    return temperature;
}
double TempSens::setMaxTemperature()
{
    double MaxTemp=0;
    CRandom rnd(35, 40);
    MaxTemp=rnd();
    return MaxTemp;
}
double TempSens::setMinTemperature()
{
    double MinTemp=0;
    CRandom rnd(10,15);
    MinTemp=rnd();
    return MinTemp;
}
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
//Wheather_Station.cpp
#include <iostream>
#include <ctime>
#include "Classes.h"
void Time();
int main()
{
    Time();
    TempSens S;
    std::cout<<"Now temperature is: "<< S.currentTemperature() <<'\n';
    std::cout<<"Min temperature is: "<< S.setMinTemperature() <<'\n';
    std::cout<<"Max temperature is: "<< S.setMaxTemperature() <<'\n';
    return 0;
}
void Time()
{
        time_t t;
        tm * local_time;
        time( &t );
        //получаем локальное время
        local_time = localtime( &t );
        //выводим время
        std::cout<< local_time->tm_mday << "/" <<  ++local_time->tm_mon << "/" << 1900 + local_time->tm_year << std::endl; 
        std::cout<<local_time->tm_hour<< ":" <<local_time->tm_min << ":" <<local_time->tm_sec <<std::endl;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2010, 00:44     Метеорологическая станция
Посмотрите здесь:

C++ Международная телефонная станция
Пиратская станция.
Рабочая станция ?
Графическая станция
C++ Класс *Станция*
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.07.2010, 08:26     Метеорологическая станция #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Classes.h
#ifndef _CLASSES_H_
#define _CLASSES_H_
class TempSens//Датчик температуры
{
protected:
        double temperature;//Температура
public:
        TempSens(){}
        ~TempSens(){}
        double currentTemperature();//Температура на данный момент
        double setMinTemperature();//Установка минимально-возможнаой температуры
        double setMaxTemperature();//Установка максимально-возможной температуры
};
#endif
Я думаю перменные double temperature и double currentTemperature() нужно опреределять как volatile, ведь, чисто гипотетически, данные получаются из вне, в режиме реального времени, поэтому их значение может изменится неявно. Хотя в данной программе это роли не играет, но зато будет похоже на реальную программу для данных целей.

Добавлено через 2 минуты
если я буду рассчитывать температуру, как наши синоптики - это нормально?
Спец.прибором, который интерпритирует остатки кофейной гущи в прогноз погоды?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 11:11     Метеорологическая станция #3
Lavroff, данная задача не является задачей по программированию как таковому, эта задача на проектирование. Реализация здесь не столь важна. Поэтому лучше сначала разработать проект, а не код.
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я думаю перменные double temperature и double currentTemperature() нужно опреределять как volatile, ведь, чисто гипотетически, данные получаются из вне, в режиме реального времени, поэтому их значение может изменится неявно.
Не стоит. Только сам датчик может изменить значения данных полей. И стоит ли их хранить, тоже вопрос.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.07.2010, 14:10  [ТС]     Метеорологическая станция #4
Kastaneda, Не-а) Тупо рандомно))

CyBOSSeR, По сути, в инете есть сайт, на котором описывается разработка сей программы... Но там все завязано на датчики.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 15:50     Метеорологическая станция #5
Цитата Сообщение от Lavroff Посмотреть сообщение
CyBOSSeR, По сути, в инете есть сайт, на котором описывается разработка сей программы... Но там все завязано на датчики.
Понятно, что все завязано на датчики, но как я уже сказал это задача на ООП, здесь важнее проектирование, поэтому стоит посидеть и подумать над проектом, а не над кодом.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
24.07.2010, 23:03  [ТС]     Метеорологическая станция #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
CyBOSSeR, Ну что ж... Попробую быть может
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 23:23     Метеорологическая станция #7
Lavroff, Буч Г. Объектно-ориентированный анализ и проектирование. Это чтобы было лучше думать.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.07.2010, 01:45  [ТС]     Метеорологическая станция #8
CyBOSSeR, Попробую почитать. Спасибо!
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
25.07.2010, 20:54     Метеорологическая станция #9
Цитата Сообщение от Lavroff Посмотреть сообщение
Kastaneda, Не-а) Тупо рандомно))
Ну я предположил, я тоже только учусь и когда-то читал про volatile, но сам им некогда не пользовался. Мне показалось, что здесь ему будет самое место)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2010, 17:22     Метеорологическая станция
Еще ссылки по теме:

C++ Класс "Телефонная станция". Массив символов и массив строк - в чем разница?
Насосная станция

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.08.2010, 17:22  [ТС]     Метеорологическая станция #10
Я это вижу как-то так...

Предварительный вариант. Первый, если быть точнее
Миниатюры
Метеорологическая станция  
Yandex
Объявления
04.08.2010, 17:22     Метеорологическая станция
Ответ Создать тему
Опции темы

Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru