Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
#1

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

24.07.2010, 00:44. Просмотров 891. Ответов 9
Метки нет (Все метки)

Решил все же попробовать сделать это задание...

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

скорость и направление ветра;
температура;
барометрическое давление;
влажность воздуха.
Система также должна вычислять некоторые производные параметры, в число которых входят:
коэффициент резкости погоды;
точка росы;
относительное изменение температуры;
относительное изменение барометрического давления.
В системе должна быть предусмотрена возможность определения текущего времени и даты, которые будут использоваться при генерации сообщении о максимальных и минимальных значениях первичных параметров за последние 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2010, 00:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метеорологическая станция (C++):

Класс *Станция* - C++
Вообщем в инете куча информации о классах но то что мне нужно сделать я так и не смог слепить в кучу, выручайте. Класс *Станция*,...

Международная телефонная станция - C++
Привет Всем. Вот нам задали задачку, а я не понимаю как ее решить. На международной телефонной станции картотека абонентов, содержащая...

Класс "Телефонная станция". Массив символов и массив строк - в чем разница? - C++
Всем привет. Не могу исправить в программе пункт корректировки. Весь проект прикрепляю к сообщению. ...

Графическая станция - Игровой компьютер
Здравствуйте. Нужна рабочая станция для профессиональной работы в 3ds Max. Какое железо стоит брать? Какое преимущество у Quadro видеокарт...

Насосная станция - Бытовая техника
У меня сломался диффузор в том месте, где соединяются две детали. Надломался кусочек одной штучки которая входит в более большую деталь....

Рабочая станция - Домашний компьютер
Здравствуйте. Решил купить б/у компьютер на соответствующем сайте. Надо еще указать, что ищу я дешевый вариант (до 9000р.), так как средств...

9
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 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 минуты
если я буду рассчитывать температуру, как наши синоптики - это нормально?
Спец.прибором, который интерпритирует остатки кофейной гущи в прогноз погоды?
1
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 11:11 #3
Lavroff, данная задача не является задачей по программированию как таковому, эта задача на проектирование. Реализация здесь не столь важна. Поэтому лучше сначала разработать проект, а не код.
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я думаю перменные double temperature и double currentTemperature() нужно опреределять как volatile, ведь, чисто гипотетически, данные получаются из вне, в режиме реального времени, поэтому их значение может изменится неявно.
Не стоит. Только сам датчик может изменить значения данных полей. И стоит ли их хранить, тоже вопрос.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
24.07.2010, 14:10  [ТС] #4
Kastaneda, Не-а) Тупо рандомно))

CyBOSSeR, По сути, в инете есть сайт, на котором описывается разработка сей программы... Но там все завязано на датчики.
1
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 15:50 #5
Цитата Сообщение от Lavroff Посмотреть сообщение
CyBOSSeR, По сути, в инете есть сайт, на котором описывается разработка сей программы... Но там все завязано на датчики.
Понятно, что все завязано на датчики, но как я уже сказал это задача на ООП, здесь важнее проектирование, поэтому стоит посидеть и подумать над проектом, а не над кодом.
1
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
24.07.2010, 23:03  [ТС] #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
CyBOSSeR, Ну что ж... Попробую быть может
1
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2010, 23:23 #7
Lavroff, Буч Г. Объектно-ориентированный анализ и проектирование. Это чтобы было лучше думать.
2
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.07.2010, 01:45  [ТС] #8
CyBOSSeR, Попробую почитать. Спасибо!
1
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 1
25.07.2010, 20:54 #9
Цитата Сообщение от Lavroff Посмотреть сообщение
Kastaneda, Не-а) Тупо рандомно))
Ну я предположил, я тоже только учусь и когда-то читал про volatile, но сам им некогда не пользовался. Мне показалось, что здесь ему будет самое место)
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
04.08.2010, 17:22  [ТС] #10
Я это вижу как-то так...

Предварительный вариант. Первый, если быть точнее
0
Миниатюры
Метеорологическая станция  
04.08.2010, 17:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2010, 17:22
Привет! Вот еще темы с ответами:

Рабочая станция ? - Выбор ноутбука
Нужен мощный ноут , типа &quot;рабочая станция&quot;, для работы с САПР и 3D,может с возможностью аб-ить, естестна = цена+качество ! Среди...

Станция с обслуживающим персоналом - GPSS
Форумчане, Каким образом на GPSS можно реализовать наличие человека на одноканальной станции обслуживания? Идея заключается в том, что...

Станция технического обслуживания - GPSS
Доброе время суток! В универе дали задачу для допуска к экзамену, в GPSS совершенно не сильна, да и сам предмет у нас для галочки...

Графическая станция для 2D и 3D - Игровой компьютер
Доброго времени суток всем. Прошу посоветовать комплектацию. Следует собрать системный блок для 2D и 3D графики. Для монитора Nec 24 PA....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru