Lennart Goetze
11 months ago
3 changed files with 181 additions and 0 deletions
@ -0,0 +1,98 @@ |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include "temperatur.h" |
|||
|
|||
float CzuF(float tempC){ |
|||
return (tempC * 9/5) + 32; |
|||
} |
|||
float CzuK(float tempC){ |
|||
return tempC + 273.15; |
|||
} |
|||
|
|||
float FzuC(float tempF){ |
|||
return (tempF - 32) * 5/9; |
|||
} |
|||
float FzuK(float tempF){ |
|||
return (tempF - 32) * 5/9 + 273.15; |
|||
} |
|||
|
|||
float KzuC(float tempK){ |
|||
float tmp = tempK - 273.15; |
|||
//Variable auf 2 Nachkommastellen begrenzen |
|||
return ((int)(tmp * 100 + 0.5) / 100.0); |
|||
} |
|||
float KzuF(float tempK){ |
|||
float tmp = (tempK - 273.15) * 9/5 + 32; |
|||
//Variable auf 2 Nachkommastellen begrenzen |
|||
return ((int)(tmp * 100 + .5) / 100.0); |
|||
} |
|||
|
|||
const char* getFirstUnit(int input){ |
|||
if(input < 3) |
|||
return "Celsius"; |
|||
else if(input < 5) |
|||
return "Fahrenheit"; |
|||
else if(input < 7) |
|||
return "Kelvin"; |
|||
return ""; |
|||
} |
|||
const char* getSecondUnit(int input){ |
|||
if(input == 1 || input == 6) |
|||
return "° Fahrenheit"; |
|||
else if(input == 2 || input == 4) |
|||
return " Kelvin"; |
|||
else if(input == 3 || input == 5) |
|||
return "° Celsius"; |
|||
|
|||
|
|||
return ""; |
|||
} |
|||
|
|||
int run_TemperaturRechner(){ |
|||
float var1, var2; |
|||
int var3; |
|||
|
|||
printf("\nTemperaturkonverter (Celsius, Fahrenheit, Kelvin)\nAchten Sie darauf, Kommazahlen mit einem Punkt anzugeben!\n\n"); |
|||
|
|||
while(1){ |
|||
printf("Waehlen Sie: \n<1> Celsius zu Fahrenheit\n<2> Celsius zu Kelvin\n<3> Fahrenheit zu Celsius\n<4> Fahrenheit zu Kelvin\n<5> Kelvin zu Celsius\n<6> Kelvin zu Fahrenheit\n<7> Zum beenden\nAuswahl: "); |
|||
scanf("%d", &var3); |
|||
|
|||
if(var3 < 1 || var3 > 7){ |
|||
printf("Eingabe nicht zulaessig!"); |
|||
break; |
|||
} |
|||
else if(var3 == 7) |
|||
break; |
|||
|
|||
printf("\nGeben Sie die Temperatur in %s ein: ", getFirstUnit(var3)); |
|||
scanf("%f", &var1); |
|||
|
|||
|
|||
switch(var3){ |
|||
case 1: |
|||
var2 = CzuF(var1); |
|||
break; |
|||
case 2: |
|||
var2 = CzuK(var1); |
|||
break; |
|||
case 3: |
|||
var2 = FzuC(var1); |
|||
break; |
|||
case 4: |
|||
var2 = FzuK(var1); |
|||
break; |
|||
case 5: |
|||
var2 = KzuC(var1); |
|||
break; |
|||
case 6: |
|||
var2 = KzuF(var1); |
|||
break; |
|||
} |
|||
|
|||
printf(" = %.2f%s\n\n", var2, getSecondUnit(var3)); |
|||
|
|||
} |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,15 @@ |
|||
#ifndef TEMPERATUR_H |
|||
#define TEMPERATUR_H |
|||
|
|||
float CzuF(float tempC); |
|||
float CzuK(float tempC); |
|||
|
|||
float FzuC(float tempF); |
|||
float FzuK(float tempF); |
|||
|
|||
float KzuC(float tempK); |
|||
float KzuF(float tempK); |
|||
|
|||
const char* getFirstUnit(int input); |
|||
const char* getSecondUnit(int input); |
|||
#endif //TEMPERATUR_H |
@ -0,0 +1,68 @@ |
|||
#ifdef TEST |
|||
|
|||
#include "unity.h" |
|||
|
|||
#include "temperatur.h" |
|||
|
|||
void setUp(void) |
|||
{ |
|||
} |
|||
|
|||
void tearDown(void) |
|||
{ |
|||
} |
|||
|
|||
void test_temperaturRechner_CzuF(void) |
|||
{ |
|||
float result = CzuF(25); |
|||
float expected = 77; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
|
|||
void test_temperaturRechner_CzuK(void) |
|||
{ |
|||
float result = CzuK(25); |
|||
float expected = 298.15; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
|
|||
|
|||
void test_temperaturRechner_FzuC(void) |
|||
{ |
|||
float result = FzuC(77); |
|||
float expected = 25; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
void test_temperaturRechner_FzuK(void) |
|||
{ |
|||
float result = FzuK(77); |
|||
float expected = 298.15; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
|
|||
void test_temperaturRechner_KzuC(void) |
|||
{ |
|||
float result = KzuC(298.15); |
|||
float expected = 25; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
void test_temperaturRechner_KzuF(void) |
|||
{ |
|||
float result = KzuF(298.15); |
|||
float expected = 77; |
|||
TEST_ASSERT_EQUAL(expected, result); |
|||
} |
|||
|
|||
void test_returnUnit_first(void) |
|||
{ |
|||
const char *result = getFirstUnit(1); |
|||
char expected[] = "Celsius"; |
|||
TEST_ASSERT_EQUAL_STRING(expected, result); |
|||
} |
|||
void test_returnUnit_second(void) |
|||
{ |
|||
const char *result = getSecondUnit(2); |
|||
char expected[] = " Kelvin"; |
|||
TEST_ASSERT_EQUAL_STRING(expected, result); |
|||
} |
|||
#endif |
Write
Preview
Loading…
Cancel
Save
Reference in new issue