# Datensätze sollen in eine Datenzugriffsstruktur eingetragen und von dort aus ausgelesen werden können.



## Raz (25. Apr 2019)

Hallo erst mal,
Bin im Voraus dankbar, für jeden der sich die mühe macht, dass zu lesen und evt. noch behilfreich ist.

Aufgabenstellung
Datensätze sollen in eine Datenzugriffsstruktur eingetragen und von dort aus ausgelesen werden können.
Die Datensätze haben das Format:
-Schlüsselgriff (16- stellig, alphanumerisch)
-Text  ( 20 Zeichen )
-Zahl (6 Stellen)

Der Datenzugriff soll mittels de Schlüssels erfolgen Der Index a ∈ A 
	

	
	
		
		

		
			





 ℕ unter dem der Datensatz gespeichert und wiedergefunden wird, soll mit Hilfe einer Hashfunktion ermittelt werden. Die Hashfunktion bildet also die Schlüsselmenge in den Indexbereichen A ab. Bei der Speicherung sollen mögliche Kollisionen mit bereits vorhandenen Einträgen, die durch die Abbildung des langen Schlüssels in kurze Indizes Entstehen können, Berücksichtigt werden.

Aufgabe
1.) Eine Programmdokumentation erstellen. Festlegung des Programmverhaltens (ohne technische Festlegung)
-Problemstellung
-Festlegung der Dialogführung
-Reaktion auf Bedienfehler
2.) Testplan
3.) Beschreibung des Verwendeten Algorithmus inkl. Komplexitätsbetrachtung
4.) Den zur Lösung gewählten Systementwurf:
- Datenstrukturen
- Struktur des Programmes

Was ich bisher habe ist:

Festlegung des Programmverhaltens (ohne Technische Festlegung):


Problemstellung
Die Datensätze müssen eingetragen und auslesbar sein. Der Zugriff soll mittels ein Schlüsselbegriff, im Format 16-stellig, alphanumerisch, erfolgen, durch den Schlüsselbegriff wird der Index des zugewiesenen Datensatzes gefunden. Der Index des Speicherorts soll mittels Hashfunktion gefunden werden.
Mögliche Kollisionen sollen vermieden werden.

Festlegung der Dialogführung
Der Benutzer wird beim Ausführen des Programms gefragt ob er neue Datensätze hinzufügen oder Datensätze aufrufen will.
Fall 1:     Datensätze hinzufügen
              1.Benutzer wird nach dem Datensatz gefragt
              2.Benutzer wird nach dem Schlüsselbegriff gefragt
Fall 2:     Datensätze aufrufen
Benutzer wird nach dem Schlüsselbegriff gefragt und der passende
Datensatz wird aufgerufen.

Reaktion auf Bedienfehler
Zur ersten Frage wird die Antwort mittels 0 oder 1 ermittelt, wenn eine andere Zahl oder ein Text eingeben (oder keine eingabe getätigt und bestätigt wird), wird das Programm darauf hinweisen, dass entweder die Zahl 1 oder 0 eingeben werden muss. Das Programm fragt erneut
Zu Fall 1: Datensatz oder Schlüssel hat das falsche Format. Es wird darauf Aufmerksam gemacht und der Benutzer hat erneut die Möglichkeit den Datensatz und Schlüssel einzugeben.
Zu Fall 2: Wenn der eingegebene Schlüssel ist nicht gültig oder nicht auffindbar ist, dann
gibt das Programm “Schlüssel nicht gefunden” aus. Das Programm fragt erneut nach dem Schlüssel.

2. Test Plan

3. Beschreibung des Verwendeten Algorithmus inkl. Komplexitätsbetrachtung 
Für den Suchalgorithmus verwenden wir die Sequentielle Suche, da die Datensätze in einer Unsortierten Liste eingetragen werden. Der Zeitbedarf für das Suchen ist im schlimmsten Fall n Vergleiche und im besten Fall 1. Im Durchschnitt  n/2, wenn alle Datensätze gleich oft gesucht werden. Das heißt für die Komplexität: O(n) Neue Datensätze werde in der Liste am ende eingefügt.

  4. Den zur Lösung gewählten Systementwurf

Datenstrukturen
Struktur des Programms
Ich bin mir jetzt nicht sicher, ob ich bei den Lösungen alles berücksichtigt habe und manches konnte ich noch nicht bearbeiten. Mir stellt sich die frage, ob ich diese Aufgabe mit Hilfe von  ArrayList meistern kann oder eine andere Methode benutzen muss wie zb. Assoziatives Array?


----------

