Browse Source

Test

main^2
fdai7731 11 months ago
parent
commit
fd5a344942
  1. 196
      src/main/c/Mathe.c
  2. 10
      src/main/c/Mathe.h
  3. 130
      src/test/c/test_Mathe.c
  4. 0
      src/test/c/test_test.c

196
src/main/c/Mathe.c

@ -1,87 +1,134 @@
//1
// Geschrieben von Yasin Al Satouf
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include "Mathe.h" #include "Mathe.h"
//2
void initialisiereZufallsgenerator(); void initialisiereZufallsgenerator();
//3
int generiereZufallszahl(int min, int max);
int generiereZufallszahl(int minimum, int maximum);
//4
char generiereZufallsOperator(); char generiereZufallsOperator();
//5
int addiere(int zahl1, int zahl2); int addiere(int zahl1, int zahl2);
//6
int subtrahiere(int zahl1, int zahl2); int subtrahiere(int zahl1, int zahl2);
//7
int multipliziere(int zahl1, int zahl2); int multipliziere(int zahl1, int zahl2);
//8
int dividiere(int zahl1, int zahl2); int dividiere(int zahl1, int zahl2);
//9
int berechneErgebnis(int zahl1, int zahl2, char operator); int berechneErgebnis(int zahl1, int zahl2, char operator);
//10
void spieleRunde(int schwierigkeitsgrad); void spieleRunde(int schwierigkeitsgrad);
//11
void zeigeAnleitung(); void zeigeAnleitung();
//12
void zeigeHighscore(int punkte); void zeigeHighscore(int punkte);
//13
int holeSpielerAntwort(); int holeSpielerAntwort();
//14
void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte); void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte);
//15
void zeigeRundenEnde(int punkte); void zeigeRundenEnde(int punkte);
//16
void zeigeAuswahl(const char* text); void zeigeAuswahl(const char* text);
//17
void initialisiereZufallsgenerator() { void initialisiereZufallsgenerator() {
srand(time(NULL)); srand(time(NULL));
}
//18
int generiereZufallszahl(int min, int max) {
return min + (int)((double)rand() / (RAND_MAX + 1) * (max - min + 1));
int generiereZufallszahl(int minimum, int maximum) {
return minimum + (int)((double)rand() / (RAND_MAX + 1) * (maximum - minimum + 1));
}
//19
char generiereZufallsOperator() { char generiereZufallsOperator() {
char operatoren[] = {'+', '-', '*', '/'}; char operatoren[] = {'+', '-', '*', '/'};
int index = rand() % 4;
return operatoren[index];
int indexnumber = rand() % 4;
return operatoren[indexnumber];
}
void zeigeAnleitung() {
printf("\n=== Anleitung ===\n");
printf("Löse die folgenden mathematischen Aufgaben, um Punkte zu erzielen.\n");
printf("Sie haben die Möglichkeit, zwischen verschiedenen Schwierigkeitsgraden zu wählen.\n");
printf("Versuche, so viele Aufgaben wie möglich korrekt zu lösen, um einen höheren Highscore zu erzielen.!\n");
}
void zeigeHighscore(int punkte) {
printf("\n=== Highscore ===\n");
printf("Dein aktueller Highscore ist: %d Punkte\n", punkte);
}
void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte) {
if (spielerAntwort == ergebnis) {
printf("Super, das ist richtig! Du erhältst einen Punkt.\n");
(*punkte)++;
} else {
printf(" Leider Falsch! Die richtige Antwort ist %d\n", ergebnis);
}
}
void zeigeRundenEnde(int punkte) {
printf("Runde beendet. Du hast insgesamt %d Punkte erreicht.\n", punkte);
}
int addiere(int ersteZahl, int zweiteZahl) {
return ersteZahl + zweiteZahl;
}
int subtrahiere(int zahl1, int zahl2) {
return zahl1 - zahl2;
}
int multipliziere(int zahl1, int zahl2) {
return zahl1 * zahl2;
}
int dividiere(int zahl1, int zahl2) {
if (zahl2 != 0) {
return zahl1 / zahl2;
} else {
printf("Fehler: Division durch Null vermieden.\n");
return 0;
}
}
void zeigeAuswahl(const char* text) {
printf("%s\n", text);
}
int holeSpielerAntwort() {
int spielerAntwort;
zeigeAuswahl("Deine Antwort: ");
scanf("%d", &spielerAntwort);
return spielerAntwort;
}
//20
int berechneErgebnis(int zahl1, int zahl2, char operator) { int berechneErgebnis(int zahl1, int zahl2, char operator) {
switch (operator) { switch (operator) {
case '+': case '+':
@ -99,7 +146,8 @@ int berechneErgebnis(int zahl1, int zahl2, char operator) {
//21
void spieleRunde(int schwierigkeitsgrad) { void spieleRunde(int schwierigkeitsgrad) {
int punkte = 0; int punkte = 0;
int anzahlAufgaben = 5; int anzahlAufgaben = 5;
@ -122,82 +170,28 @@ void spieleRunde(int schwierigkeitsgrad) {
} }
int mainx() {
srand(time(NULL));
//22
void zeigeAnleitung() {
printf("\n=== Anleitung ===\n");
printf("Beantworte die mathematischen Aufgaben, um Punkte zu sammeln.\n");
printf("Du kannst zwischen verschiedenen Schwierigkeitsgraden wählen.\n");
printf("Versuche so viele Aufgaben wie möglich korrekt zu lösen!\n");
//23
void zeigeHighscore(int punkte) {
printf("\n=== Highscore ===\n");
printf("Dein aktueller Highscore ist: %d Punkte\n", punkte);
//24
int holeSpielerAntwort() {
int spielerAntwort;
zeigeAuswahl("Deine Antwort: ");
scanf("%d", &spielerAntwort);
return spielerAntwort;
//25
void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte) {
if (spielerAntwort == ergebnis) {
printf("Richtig! Du erhältst einen Punkt.\n");
(*punkte)++;
} else {
printf("Falsch! Die richtige Antwort ist %d\n", ergebnis);
}
}
//26
void zeigeRundenEnde(int punkte) {
printf("Runde beendet. Du hast insgesamt %d Punkte erreicht.\n", punkte);
//27
int addiere(int zahl1, int zahl2) {
return zahl1 + zahl2;
//28
int subtrahiere(int zahl1, int zahl2) {
return zahl1 - zahl2;
int weiterSpielen = 1;
int gesamtPunkte = 0;
//29
int multipliziere(int zahl1, int zahl2) {
return zahl1 * zahl2;
zeigeAnleitung();
while (weiterSpielen) {
int schwierigkeitsgrad;
printf("\n Schwierigkeitsgrad wählen (1 für einfach, 2 für mittel, 3 für schwer): ");
scanf("%d", &schwierigkeitsgrad);
spieleRunde(schwierigkeitsgrad);
zeigeHighscore(gesamtPunkte);
//30
int dividiere(int zahl1, int zahl2) {
if (zahl2 != 0) {
return zahl1 / zahl2;
} else {
printf("Fehler: Division durch Null vermieden.\n");
return 0;
printf("\nMöchtest du eine weitere Runde spielen? (1 für Ja, 0 für Nein): ");
scanf("%d", &weiterSpielen);
} }
}
printf("Vielen Dank fürs Spielen! Auf Wiedersehen.\n");
//31
void zeigeAuswahl(const char* text) {
printf("%s\n", text);
return 0;
} }

10
src/main/c/Mathe.h

@ -0,0 +1,10 @@
#ifndef TEST_H
#define TEST_H
int berechneErgebnis(int zahl1, int zahl2, char operator);
int generiereZufallszahl(int minimum, int maximum);
int multipliziere(int zahl1, int zahl2);
int dividiere(int zahl1, int zahl2);
int addiere(int ersteZahl, int zweiteZahl);
int subtrahiere(int zahl1, int zahl2);
int multipliziere(int zahl1, int zahl2);
#endif // MATHEMATIKSPIE

130
src/test/c/test_Mathe.c

@ -0,0 +1,130 @@
#ifdef TEST
#include "unity.h"
#include "Mathe.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_Mathe_plus(void)
{
int a=berechneErgebnis(1,2,'+');
/* assert */
TEST_ASSERT_EQUAL_INT(a,3);
}
void test_Mathe_minus(void)
{
int a=berechneErgebnis(1,2,'-');
/* assert */
TEST_ASSERT_EQUAL_INT(a,-1);
}
void test_Mathe_multi(void)
{
int a=berechneErgebnis(1,2,'*');
/* assert */
TEST_ASSERT_EQUAL_INT(a,2);
}
void test_Mathe_divided(void)
{
int a=berechneErgebnis(2,2,'/');
/* assert */
TEST_ASSERT_EQUAL_INT(a,1);
}
void test_Zufallszahl(void)
{
int a= generiereZufallszahl(1, 10);
/* assert */
TEST_ASSERT_INT_WITHIN (10, 1, a);
}
void testGeneriereZufallsOperator() {
// Since the function always returns one of {'+', '-', '*', '/'}, no specific range check is needed.
char result = generiereZufallsOperator();
TEST_ASSERT_TRUE(result == '+' || result == '-' || result == '*' || result == '/');
}
void test_multi()
{
int a=multipliziere(4, 3);
/* assert */
TEST_ASSERT_EQUAL_INT(a,12);
}
void test_dev()
{
int a=dividiere(10, 5);
/* assert */
TEST_ASSERT_EQUAL_INT(a,2);
}
void test_plus()
{
int a=addiere(10, 5);
/* assert */
TEST_ASSERT_EQUAL_INT(a,15);
}
void test_minus()
{
int a=subtrahiere(10, 5);
/* assert */
TEST_ASSERT_EQUAL_INT(a,5);
}
#endif

0
src/test/c/test_test.c

Loading…
Cancel
Save