@@ -23,6 +23,11 @@ Die resultierenden Standings, Tabellen, Statistiken sollen von Ihrer Software ge
Zusätzlich soll Ihre Software Statistiken generieren, wie hoch die Siegwahrscheinlichkeit eines/r Sportler*in oder eines Teams auf Basis des Verlaufs ist.
Diese Aufgabenstellung ist bewusst etwas offener gestaltet, um Ihnen Gegstaltungsfreiraum zu gewähren:
- Erstellen Sie ein Konzept
- Überlegen Sie sich auch, welchen Unique Selling Point ihre Lösung bieten kann
- Setzen Sie ihr Konzept unter Zuhilfenahme der Vorlesungsinhalte (OOP, (Smart) Pointer, Datenstrukturen) um
## Anforderungen
- Saubere Nutzung von git (branching, commit messages, merging) in einem private Repository auf der KIT GitLab Instanz mit dem Namen "ITAT_Challenge_2024_<Projektname>"
- Arbeit in einer Gruppe von bis zu 3 Personen ist erlaubt
...
...
@@ -31,7 +36,7 @@ Zusätzlich soll Ihre Software Statistiken generieren, wie hoch die Siegwahrsche
- ansonsten nur die C++ Standard Libraries
- C++17
- g++ Compiler
- Das Programm sollte sinnvolle Verwendung der Vorlesungs- und Übungskonzepte aufweisen (d.h. es wird OOP, Vererbung, Pointer und Datenstrukturen erwartet)
- Das Programm muss eine sinnvolle Verwendung der Vorlesungs- und Übungskonzepte aufweisen (d.h. es werden OOP, (smart) Pointer und Datenstrukturen erwartet)
- Ausfürliche Dokumentation in der README.md
- Projektname
- Namen und Matrikelnummern der Ersteller
...
...
@@ -43,22 +48,58 @@ Zusätzlich soll Ihre Software Statistiken generieren, wie hoch die Siegwahrsche
## Teilnahme
1. Fügen Sie Marcel Auer (marcel.auer) und Marwin Madsen (marwin.madsen) bis **28.06.2024** zu ihrem Repository hinzu.
2. Erstellen Sie in ihrem Repository bis zum **16.08.2024** einen Release, der mit __Abgabe__ getagt ist (nur der Stand zum Release wird betrachtet). Nähere Infos zum Erstellen von Releases: [GitLab - Releases](https://docs.gitlab.com/ee/user/project/releases/)
1. Erstellen Sie ein GitLab-Repository (auf gitlab.kit.edu gehostet) mit folgender Namenskonvention an: "ITAT_Challenge_2024_PROJEKTNAME"
2. Fügen Sie, neben Ihren Teamkolleg:innen, Marcel Auer (marcel.auer) und Marwin Madsen (marwin.madsen) bis zum **28.06.2024** zu ihrem Repository hinzu.
3. Erstellen Sie in ihrem Repository bis zum **16.08.2024** einen Release, der mit __Abgabe__ getagt ist (nur der Stand zum Release wird betrachtet). Nähere Infos zum Erstellen von Releases: [GitLab - Releases](https://docs.gitlab.com/ee/user/project/releases/)
# Beispiele und Hinweise:
## UML Klassendiagramm
UML Klassendiagramme können sehr einfach z.B. mit DrawIO oder Papyrus erstellt werden:
UML Klassendiagramme können sehr einfach z.B. mit [DrawIO](https://app.diagrams.net/) erstellt werden:
<imgsrc="img/UML.png"alt="uml"width="500"/>
Oder alternativ direkt in Markdown mit [Mermaid](https://mermaid.js.org/):
```mermaid
classDiagram
class Person {
-name: String
-geld: double
+Person(pName: String)
+geldErhoehen(pBetrag: double)
+geldVermindern(pBetrag: double): boolean
+fahren(pKm: double): boolean
+tanken(pLiter: double): boolean
+setTankstelle(pTankstelle: Tankstelle)
}
class Tankstelle {
-preisProLiter: double
-name: String
+Tankstelle(pName: String)
+setPreis(pPreis: double)
+getPreis(): double
+tanken(pLiter: double): double
}
class Roller {
-kmStand: double
-tankInhalt: double
-maxTank: double
+Roller()
+fahren(pKm: double): boolean
+tanken(pLiter: double): boolean
}
Person --> "1" Roller : meinRoller
Person --> "0..1" Tankstelle : die Tankstelle
```
## Projekt-Dokumentation
Beschreiben Sie hier, wie ihre Software zu nutzen ist.
- Wie erfolgen die Eingaben?
- Für statistische Auswertung der Ergebnisse: Wie erfolgt die Berechung?
- Wie könnte ihr Projekt noch erweitert werden?
Als Inspriation: [Mermaid - Github](https://github.com/mermaid-js/mermaid)
Als Inspriation für die Funktionsbeschreibung bzw. Anwendungsbeschreibung: [Mermaid - Github](https://github.com/mermaid-js/mermaid)
## .gitignore
In diesem Repository ist eine Datei mit dem Namen ___.gitignore___ hinterlegt. Wir raten ihnen diese Datei in der obersten Ebene (dort, wo auch README.md liegt) ihrem Projekt hinzuzufügen.