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:
90:
91:
92:
93:
94:
95:
96:
97:
|
#include "CTempSensor.h"
#include <iostream> // Header fuer die Standard-IO-Objekte (z.B. cout, cin)
#include <cstdlib> // fuer random values
#include <iomanip> // fuer setw()
#include <string>
using namespace std; // Erspart den scope vor Objekte der
// C++-Standard-Bibliothek zu schreiben
// z.B. statt "std::cout" kann man "cout" schreiben
CTempSensor::CTempSensor(float minTemp,float maxTemp)
{
CTempSensor::retrieveLastMeasurements();
m_minTemp = minTemp;
m_maxTemp = maxTemp;
}
// generiert 24 Zufallswerte zw. 5 und 95 Grad [vorgegeben]
void CTempSensor::retrieveLastMeasurements()
{
for (int i=0; i<24;i++) {
m_last24hrsTemp[i] = (rand() % 900 + 50) / (float)10;
}
}
// gibt min/max und die 24 Messwerte aus [vorgegeben]
void CTempSensor::print()
{
cout << "min: " << m_minTemp << " | max: " << m_maxTemp << " | Letzte 24 Messwerte: ";
for (int i=0; i<24;i++) {
cout << setw(4) << m_last24hrsTemp[i] << " | " ;
}
cout << endl;
}
// gibt den Prozentsatz der Werte in der Range zurueck [gegeben fuer Aufgane 3c]
float CTempSensor::checkTempRange(float low, float high)
{
int inRange = 0;
int outOfRange = 0;
for (int i=0; i<24;i++) {
if (m_last24hrsTemp[i] < low || m_last24hrsTemp[i] > high) {
outOfRange++;
}
else {
inRange++;
}
}
return 100*inRange/24.;
}
CTempSensor::~CTempSensor()
{
// TODO Auto-generated destructor stub
}
void CTempSensor::calculateMinMaxTemp(){
float m_last24hrsTemp[24];
int length =24-1;
for(int i = 0; i<lenght;i++){
if(m_last24hrsTemp[i]>m_last24hrsTemp[m_maxTemp]){
m_maxTemp = i;
}
}
for(int i = 0; i<length;i++){
if(m_last24hrsTemp[i]<m_last24hrsTemp[m_minTemp]){
m_minTemp = i;
}
}
}
|