Klasa do konwersji temperatury PDF Drukuj Email
Wpisał doctor   
Czwartek, 01. Listopad 2007 00:18
Klasa do konwersji temperatury

W tej poradzie opiszę, jak stworzyć klasę odpowiedzialną za konwersję jednostek Celcjusza na Fahrenheita.
Na początek kilka istotnych faktów. Wyrażanie temperatury w stopniach Fahrenheita jest w powszechnym użyciu w krajach anglosaskich. Przelicznik między ['C] a ['F] jest następujący:

Temp['F] = (9/5)*C+32;         Temp['C] = (5/9)*(F-32);

W ramach utrudnienia, definicję klasy umieścimy w osobnym pliku zatytułowanym temp.h.
Klasa to posiada pola F i C typu double, ogólnodostępne, które służą do definiowania wielkości wejściowej.
Metoda ShowTemp() służy do wyświetlania przeliczonej temperatury. Dodatkowo posiada ona funkcje formatowania tekstu.

W pliku temp.h wklejamy następującą treść:

#ifndef TEMP_H
#define TEMP_H

#include <math.h>

class Temp
{
    private:
    int tryb;
    double convert_C2F();
    double convert_F2C();

    public:
    Temp();
    float C, F;
    String ShowTemp();
};
Temp::Temp()
{
    C=0; F=0; tryb = -1;
}

double Temp::convert_C2F()
{
    //tryb = 1;
    return ((double)9/5)*C+32;
}

double Temp::convert_F2C()
{
    //tryb = 0;
    return ((double)5/9)*(F-32);
}

String Temp::ShowTemp()
{
if(C != 0)
    tryb = 1;
    if(F != 0)
    tryb = 0;

    if(tryb == 1)
    {
String tmp = FloatToStrF(convert_C2F(), ffFixed, 10, 3);
return tmp + " ['F]";
    }
    if(tryb == 0)
    {
String tmp = FloatToStrF(convert_F2C(), ffFixed, 10, 3);
return tmp + " ['C]";
    }
}

#endif


Klasa Temp zawiera trzy funkcje, dwie z nich o dostępie prywatnym służą do właściwej konwersj iednostek
(convert_C2F, convert_F2C), natomiast funkcja ShowTemp sprawdza w którą stronę ma dokonać konwersji oraz obcina ciąg wyjściowy do 3 miejsc po przecinku.

Plik temp.h umieszczamy do katalogu z programem, w pliku .cpp  dołączamy nagłówek:

#include "temp.h"

Przykład
Przeliczenie temperatury Celcjusza na stopnie Fahrenheita.

Poniższ kod możemy umieścić np. w zdarzeniu OnClick.

Temp t;
t.C = 30;
Label1->Caption = t.ShowTemp();

Spójrzmy na 1 linijkę tego kodu. Tworzy ona instancję klasy Temp, a więc nowy obiekt.
Linia 2 odpowiada za wpisanie wartości temperatury w stopniach Celcjusza.
Końcowy efekt działania programu to wypisanie 86,000 ['F].

Przykład
Konwersja ze stopni Fahrenheita na stopnie Celcjusza.

Temp t;
t.F = 80;
Label1->Caption = t.ShowTemp();

W efekcie otrzymamy 26,667 ['C].

Przypisanie zmiennych do pól klasy może odbywać się na dwa sposoby.
W powyższym przykładzie zmienne F oraz C są typu klasowego, jako że utworzenie nowej zmiennej odbyło się za pomocą wskaĽnika Temp t. Jest to sposób dostępu bezpośredniego.
Dlatego dostęp do tych zmiennych odbywa się za pomocą operatora kropki (.).


Jeśli natomiast utworzymy zmienną za pomocą wskaĽnika na obiekt, to przypisywanie wartości pól klasy odbywa się za pomocą operatora strzałki (->). Jest to sposób dostępu pośredniego.


W ramach przypomnienia, zmienne typu wskaĽnikowego tworzone są za pomocą operatora new, natomiast ich usuwanie odbywa się za pomocą operatora delete. Często początkujący programiści zaniedbują gospodarkę zasobami komputera i często zapominają o zwolnieniu zasobów przydzielanych obiektom tworzonym dynamicznie.
Komentarze
Dodaj nowy Szukaj
+/-
Napisz komentarz
Nick:
E-mail:
 
Strona www:
Tytuł:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Proszę wpisać kod antyspamowy widoczny na obrazku.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Ostatnia aktualizacja: Piątek, 23. Listopad 2007 23:11
 
 

Losowy obraz

b6.jpg

Gościmy

Naszą witrynę przegląda teraz 13 gości 




| | | |