summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog1/probeklausur
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Bachelor/Prog1/probeklausur
downloadStudium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz
Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Bachelor/Prog1/probeklausur')
-rw-r--r--Bachelor/Prog1/probeklausur/lotto.h25
-rw-r--r--Bachelor/Prog1/probeklausur/lottogenerator.cpp89
-rw-r--r--Bachelor/Prog1/probeklausur/main.cpp67
3 files changed, 181 insertions, 0 deletions
diff --git a/Bachelor/Prog1/probeklausur/lotto.h b/Bachelor/Prog1/probeklausur/lotto.h
new file mode 100644
index 0000000..373a19a
--- /dev/null
+++ b/Bachelor/Prog1/probeklausur/lotto.h
@@ -0,0 +1,25 @@
+// Sven Eisenhauer
+// Probeklausur 09.02.2005
+//
+// Definition of class LottoGenerator
+
+#ifndef LOTTO_H
+#define LOTTO_H
+
+class LottoGenerator {
+public:
+ LottoGenerator();
+ ~LottoGenerator();
+ void drawAllNumbers();
+ void printAllNumbers();
+ void sortSixNumbers();
+ int getAllNumbers( int* );
+ long getNumberOfDraws();
+private:
+ const int ARRAY_SIZE;
+ int * sixNumbers;
+ int seventhNumber;
+ long numberOfDraws;
+};
+
+#endif
diff --git a/Bachelor/Prog1/probeklausur/lottogenerator.cpp b/Bachelor/Prog1/probeklausur/lottogenerator.cpp
new file mode 100644
index 0000000..02c0f46
--- /dev/null
+++ b/Bachelor/Prog1/probeklausur/lottogenerator.cpp
@@ -0,0 +1,89 @@
+// Sven Eisenhauer
+// Probeklausur 09.02.2005
+//
+// Implementation of class LottoGenerator
+
+#include <iostream>
+#include <new>
+using std::cout;
+using std::endl;
+
+#include <iomanip>
+using std::setw;
+
+#include "lotto.h"
+
+LottoGenerator::LottoGenerator()
+ :ARRAY_SIZE(6)
+{
+ numberOfDraws=0;
+ sixNumbers = new int[ARRAY_SIZE];
+ for (int i=0;i<ARRAY_SIZE;i++)
+ sixNumbers[i]=0;
+}
+
+LottoGenerator::~LottoGenerator()
+{
+ delete [] sixNumbers;
+ cout << endl << "Number of draws: " << numberOfDraws << endl;
+}
+
+void LottoGenerator::drawAllNumbers()
+{
+ const int nrBalls=49;
+ int temp;
+ int randPos;
+ int balls[nrBalls];
+
+ for (int i=0;i<nrBalls;i++)
+ balls[i]=i+1;
+
+ for (i=0;i<nrBalls;i++)
+ {
+ randPos=(rand()%49)+1;
+ temp=balls[i];
+ balls[i]=balls[randPos];
+ balls[randPos]=temp;
+ }
+
+ for (i=0;i<ARRAY_SIZE;i++)
+ {
+ sixNumbers[i]=balls[i];
+ }
+ seventhNumber=balls[i+1];
+
+ numberOfDraws++;
+}
+
+void LottoGenerator::printAllNumbers()
+{
+ cout << endl << "Zahlen: ";
+ for (int n=0;n<ARRAY_SIZE;n++)
+ cout << setw(4) << sixNumbers[n];
+ cout << endl << "Zusatzzahl: " << seventhNumber;
+}
+
+void LottoGenerator::sortSixNumbers()
+{
+ int temp;
+
+ for (int i=0;i<ARRAY_SIZE;i++)
+ {
+ for (int j=i;j<ARRAY_SIZE;j++)
+ {
+ if (sixNumbers[j]<sixNumbers[i])
+ {
+ temp=sixNumbers[i];
+ sixNumbers[i]=sixNumbers[j];
+ sixNumbers[j]=temp;
+ }
+ }
+ }
+}
+
+int LottoGenerator::getAllNumbers(int * Numbers)
+{
+ for(int i=0;i<ARRAY_SIZE;i++)
+ Numbers[i]=sixNumbers[i];
+ return seventhNumber;
+}
diff --git a/Bachelor/Prog1/probeklausur/main.cpp b/Bachelor/Prog1/probeklausur/main.cpp
new file mode 100644
index 0000000..a96bd6f
--- /dev/null
+++ b/Bachelor/Prog1/probeklausur/main.cpp
@@ -0,0 +1,67 @@
+// Sven Eisenhauer
+// Probeklausur 09.02.2005
+//
+// Application to test class LottoGenerator
+
+#include "lotto.h"
+#include <iostream>
+using std::cout;
+using std::endl;
+#include<iomanip>
+using std::setw;
+
+int average(int *);
+
+const int ARRAY_SIZE=6;
+
+int main()
+{
+ LottoGenerator lotto;
+ int nrEinstZusatzZ=0;
+ long ZusatzZ;
+ int erg[ARRAY_SIZE];
+ const int NUMBERS=49;
+ int result[NUMBERS]={0};
+ int avg=0;
+
+ for(int i=0;i<10;i++)
+ {
+ lotto.drawAllNumbers();
+ lotto.sortSixNumbers();
+ lotto.printAllNumbers();
+ }
+
+ for(i=0;i<1000000;i++)
+ {
+ lotto.drawAllNumbers();
+ ZusatzZ=lotto.getAllNumbers(erg);
+ if(ZusatzZ<10)
+ nrEinstZusatzZ++;
+ }
+ cout << endl << "Eine einstellige Zusatzzahl gab es "<< nrEinstZusatzZ <<" mal.";
+
+ for(i=0;i<1000000;i++)
+ {
+ lotto.drawAllNumbers();
+ lotto.getAllNumbers(erg);
+ avg=average(erg);
+ result[avg]++;
+ }
+
+ cout << endl <<"Häufigkeitsverteilung: " << endl;
+ for (i=0;i<NUMBERS;i++)
+ cout << setw(3) << i+1 << setw(8) << result[i] << endl;
+
+ return 0;
+}
+
+int average(int* array)
+{
+ int sum=0;
+ int avg=0;
+
+ for (int i=0;i<ARRAY_SIZE;i++)
+ sum+=array[i];
+ avg=sum/ARRAY_SIZE;
+ return avg;
+}