Landesabitur 2015 Hessen - Datenverarbeitungstechnik - Leistungskurs - Vorschlag A - Thema und Aufgabenstellung

Abitur 2015 Vorschlag A: Anwendungssystem für Banken Aufgaben Original Prüfung

165 76 692KB

German Pages [12] Year 2015

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Landesabitur 2015 Hessen - Datenverarbeitungstechnik - Leistungskurs - Vorschlag A - Thema und Aufgabenstellung

Citation preview

Hessisches Kultusministerium

Landesabitur 2015

Datenverarbeitungstechnik Leistungskurs

Thema und Aufgabenstellung Vorschlag A

Hinweise für den Prüfling Auswahlzeit: Bearbeitungszeit:

30 Minuten 240 Minuten

Auswahlverfahren Wählen Sie von den zwei vorliegenden Vorschlägen einen zur Bearbeitung aus. Der nicht ausgewählte Vorschlag muss am Ende der Einlesezeit der Aufsicht führenden Lehrkraft zurückgegeben werden.

Erlaubte Hilfsmittel 1. ein Wörterbuch der deutschen Rechtschreibung 2. ein eingeführter Taschenrechner (Bei grafikfähigen Rechnern und Computeralgebrasystemen ist ein Reset durchzuführen.) 3. eine Liste der fachspezifischen Operatoren Fachbereich III

Sonstige Hinweise keine

In jedem Fall vom Prüfling auszufüllen Name:

Vorname:

Prüferin/Prüfer:

Datum:

Seite 1 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Anwendungssystem für Banken Aufgaben Es soll ein Anwendungssystem für Banken (Banksystem) geschrieben werden, das Bankangestellte bei der Verwaltung von Kunden und deren Konten unterstützt. 1.

Objektorientierte Entwicklung eines Banksystems Das in einer objektorientierten Programmiersprache zu entwickelnde Banksystem soll folgenden Anforderungen genügen: – Kunden können Konten eröffnen. – Eine Person wird Kunde, wenn sie ein Konto eröffnet. – Ein Kunde kann beliebig viele weitere Konten eröffnen. – Beim Eröffnen des ersten Kontos werden dem Kunden 10€ gutgeschrieben. – Kunden können auf ihre Konten Geld einzahlen bzw. von diesen Geld abheben und den Kontostand abfragen. – Das Banksystem unterscheidet Girokonten und Sparkonten. Girokonten dürfen bis zu einem bestimmten Betrag (Dispositions- oder Überziehungskredit) überzogen werden. – Ein Kunde kann Überweisungen von einem Girokonto auf andere Konten vornehmen. – Ein Kunde kann sich auf einem Girokonto einen Dispositionskredit einrichten lassen.

1.1

Für das Banksystem wurden ein Anwendungsfalldiagramm (Material 1) und ein erstes Klassendiagramm in UML-Notation entwickelt (Material 2).

1.1.1 Geben Sie den Zweck von Anwendungsfalldiagrammen an. Beschreiben Sie an Hand des in Material 1 wiedergegeben Anwendungsfalldiagramms die wesentlichen Notationselemente und den Unterschied zwischen extend- und include-Beziehungen. (4 BE) 1.1.2 Überführen Sie die im Klassendiagramm (Material 2) dargestellten Klassen Konto und Girokonto in entsprechende Anweisungen einer objektorientierten Programmiersprache und implementieren Sie die aufgeführten Methoden. Hinweise: Kontonummern werden bei 4711 beginnend vergeben. Bei der Implementierung sind die Anmerkungen zum Klassendiagramm in Material 2 zu berücksichtigen. get-Methoden müssen nicht realisiert werden. (12 BE) 1.1.3 Entwickeln und zeichnen Sie ein UML-Sequenzdiagramm für die Methode eroeffneKonto(einKunde: Kunde, art: char): Konto der Klasse Bankverwaltung. Hinweise: Das Sequenzdiagramm in Material 3 ist zu ergänzen. Ein Objekt der Klasse Kunde wurde bereits angelegt. (12 BE)

Seite 2 von 12

Hessisches Kultusministerium

Landesabitur 2015

Datenverarbeitungstechnik Leistungskurs

Thema und Aufgabenstellung Vorschlag A

1.1.4 Ein- und Auszahlungen auf ein Konto werden als Buchungen erfasst. Jede Buchung enthält einen Betrag, welcher positiv (Einzahlung) oder negativ (Auszahlung) sein kann und einen Buchungstext. Beim Erzeugen einer Buchung werden Betrag und Buchungstext festgelegt, das Buchungsdatum wird aus dem Systemdatum erzeugt. Ein Konto verweist stets auf die letzte darauf vorgenommene Buchung. Eine Buchung verweist auf die zuvor erfolgte Buchung. Entwickeln Sie das Klassendiagramm weiter, indem Sie das Modell (Material 2) um Buchungen erweitern. Hinweis: Aus dem ursprünglichen Modell müssen nur die Klassen gezeichnet werden, deren Funktionalität erweitert wurde. (6 BE) 1.2

Um zukünftig Kunden das Abheben von Geldbeträgen an einem Geldausgabeautomaten (Material 4) zu ermöglichen, ist ein Klassendiagramm für einen Geldausgabeautomaten entwickelt worden (Material 5).

1.2.1 Entwickeln und zeichnen Sie ein Struktogramm für die Methode run() der Klasse Geldautomat, das den in Material 4 beschriebenen Ablauf am Geldautomaten darstellt. Hinweise: Eine mögliche Korrektur der 4-stelligen Geheimzahl mittels Korrekturtaste muss nicht berücksichtigt werden. (12 BE) 1.2.2 Der Ziffernblock besteht aus einer 3x4Matrixtastatur mit 4 Zeilen und 3 Spalten. D0 COL0 D1 COL1 Die Tastatur ist an der parallelen Schnitt456h D2 COL2 stelle eines Steuerrechners angeschlossen. Die Ausgänge D0 bis D2 des Ports mit der Steuer+5V Adresse 456h liegen im Ruhezustand auf rechner 2 3 D0 ROW0 1 „1“. D0 bis D3 des Ports mit der Adresse 4 5 6 D1 ROW1 457h sind Eingänge. Die Widerstände an 7 8 9 457h D2 ROW2 den Zeilenleitungen der Tastatur sorgen für 0 K D3 ROW3 einen „1“-Pegel im Ruhezustand. Die Ausgänge D0 bis D2 des Ports 456h werden nacheinander auf „0“ gelegt und dabei die Eingänge D0 bis D3 des Ports 457h ausgewertet. Liegt dabei ein Eingang auf „0“, so muss dieser durch eine gedrückte Taste mit dem aktiven Ausgang verbunden sein. Jedem Eingangs-Ausgangs-Paar ist eine Taste zugeordnet, wie die folgende Tabelle beispielhaft wiedergibt. Ausgang D0 1 1 0 0

Taste 1 nicht gedrückt gedrückt nicht gedrückt gedrückt

Eingang D0 1 1 1 0

Um die Tasten des Zifferntastenfeldes des Geldautomaten einzulesen, wurde das nachfolgende Struktogramm für die Methode liesTaste():char der Klasse Zifferntastenfeld (Material 5) entwickelt.

Seite 3 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

liesTaste(): char Taste := ' ' für alle 3 Spalten setze die aktuelle Spalte auf 0 für alle 4 Zeilen ist eine Taste gedrückt? J warte, solange die Taste gedrückt ist

N

Taste := TASTEN[Zeile][Spalte] Taste zurückgeben

Implementieren Sie für den Geldausgabeautomaten eine Klasse Zifferntastenfeld, die es ermöglicht, mittels der Methode liesTaste():char die Tasten des Ziffernblocks abzufragen. Überführen Sie hierzu das oben dargestellte Struktogramm in entsprechende Anweisungen der von Ihnen verwendeten Programmiersprache. Hinweise: Für den Tastencode sei ein zweidimensionales Feld wie folgt definiert:

TASTEN = {{'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {' ','0','K'}};

Um auf parallele Ein-/Ausgabeports zugreifen zu können, steht Ihnen die Klasse IOPortAccess (Material 6) zur Verfügung.

2.

(14 BE)

Datenbank eines Banksystems Für das Banksystem soll eine Datenbank entwickelt werden. Gehen Sie hierbei von folgendem Wirklichkeitsausschnitt aus, der abgebildet werden soll: – Ein Kunde wird durch Vorname, Nachname und Geburtsdatum eindeutig identifiziert. – Jeder Kunde kann ein oder mehrere Konten haben, die durch Kontonummern eindeutig bestimmt werden. – Auf seinen Konten kann der Kunde jeweils Ein- oder Auszahlungen durchführen. Bei der Buchung jeder Ein- oder Auszahlung werden der Betrag und das Datum gespeichert. Dabei werden für Einzahlungen positive Beträge, für Auszahlungen dagegen negative Beträge angegeben. Hinweis: Alle Datumsangaben schließen auch die Uhrzeit mit ein, sodass Datensätze (im selben Konto) am selben Tag auch unterschieden werden können.

2.1

Das in Material 7 dargestellte ER-Modell zeigt einen Teilausschnitt und ist noch unvollständig.

2.1.1 Nennen Sie mögliche Schlüsselkandidaten von Buchung.

(2 BE)

2.1.2 Prüfen Sie, ob Sie anstelle von wertbasierten Schlüsseln1 besser künstliche Schlüssel wie fortlaufende Nummern verwenden sollten. Begründen Sie ihre Entscheidung. (4 BE) 1

Ein wertbasierter Schlüssel identifiziert ein bestimmtes Objekt aufgrund von Attributwerten oder Attributwertkombinationen. Seite 4 von 12

Hessisches Kultusministerium

Landesabitur 2015

Datenverarbeitungstechnik Leistungskurs

Thema und Aufgabenstellung Vorschlag A

2.1.3 Überführen Sie das gegebene ER-Modell in das relationale Modell. Hinweise: Die Ergebnisse aus Aufgabe 2.1.1 und 2.1.2 sind zu berücksichtigen und die Primärschlüssel und Fremdschlüssel sind zu kennzeichnen. Alle Relationen sind in der folgenden Schreibweise anzugeben: Relation (PK, Attribut, …, FK#) (4 BE) 2.2

Einige Daten der Datenbank sollen geändert bzw. ausgewertet werden.

2.2.1 Geben Sie eine SQL-Anweisung an, die Kontonummer und Kontostand der Konten auflistet, die einen Kontostand von mehr als 1.000€ aufweisen. (2 BE) 2.2.2 Herr Neumann hat als Neukunde ein erstes Konto mit der Kontonummer 100337 eröffnet und bereits eine Einzahlung vorgenommen. Nun soll die Prämie von 10€ auf dieses Konto gutgeschrieben werden. Geben Sie eine entsprechende SQL-Anweisung an. (2 BE) 2.2.3 Formulieren Sie eine SQL-Anweisung, die eine sortierte Liste mit Name, Vorname und Geburtsdatum der Kunden erzeugt, die mindestens ein Konto überzogen haben, wobei jeder Kunde nur einmal in der Ausgabeliste erscheinen soll. (3 BE) 2.2.4 Frau Sparsam zahlt auf das Konto mit der Kontonummer 100005 einen Betrag von 100€ ein. Implementieren Sie eine SQL-Anweisung, die die Datenbank entsprechend aktualisiert. Hinweis: Die Funktion NOW()liefert das aktuelle Tagesdatum. 2.2.5 Herr Kleinlich lässt sich einen Kontoauszug drucken. Dieser enthält alle Buchungen, die zwischen dem 29.10.2014 und 06.11.2014 erfolgt sind, sowie den am 06.11.2014 aktuellen Kontostand. Entwickeln Sie aus dem Beispiel eines üblichen Kontoauszuges entsprechende SQL-Anweisungen.

(4 BE)

Muster-Bank

Konto-Nr. 12345678 BLZ 910 111 21 Musterbank Musterstadt Auszug 57 Datum Buchungstext Betrag 29.10.2014 Kartenzahlung, Gut & Billig 47,9330.10.2014 Barauszahlung 150,0002.11.2014 Gehalt 10/2014 1.307,50+ 04.11.2014 Überweisung Tante Herta 100,00+

Kontostand in EUR am 06.11.2014, 16:52 Uhr Kurt Kleinlich

-------------------1.409,47

Hinweise: Es sind nur die einzelnen Buchungspositionen sowie der Kontostand auszugeben. Um den Betrag in dem im Kontoauszug üblichen Format auszugeben, können im Ausgabeteil des SQL-Befehls folgende Funktionen verwendet werden: – Die Funktion CONCAT(str1,str2,...)erlaubt es, mehrere Werte (Zeichenketten) zu verbinden. Ein numerisches Argument wird automatisch in eine Zeichenkette verwandelt. – Die Funktion ABS(x)liefert den Betrag von x zurück. – Die Funktion IF(expr1,expr2,expr3)erlaubt es, eine Bedingung auszuwerten. Wenn expr1TRUE ist, dann gibt IF()expr2 zurück; andernfalls gibt es expr3 zurück. (5 BE) Seite 5 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs 2.3

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Das vorläufige ERM (Material 7) soll um neue Anforderungen erweitert werden. Folgende Anforderungen sind aufzunehmen: – Die Bank gliedert sich in mehrere Filialen, die ihre Bankkunden betreuen. – Die Bank bietet ihren Kunden verschiedenartige Girokonten und Sparkonten an. Girokonten können bis zu einem vereinbarten Betrag überzogen werden (Dispositionskredit), Sparkonten haben eine Kündigungsfrist. – Ein Kunde kann sich einen Kontoauszug über die Bewegungen auf seinem Girokonto erstellen lassen. In einem solchen Kontoauszug werden das Datum der Erstellung, das Gesamtguthaben zu diesem Zeitpunkt und alle Ein-/Auszahlungen zwischen dem Ausdruck des letzten Kontoauszugs und dem Erstellungsdatum des neuen Kontoauszuges erfasst. Ein Kontoauszug erhält innerhalb eines Jahres eine laufende Nummer (Auszugsnummer). Entwickeln Sie das dadurch entstehende ERM in [min, max]-Notation. Hinweis: Die Erweiterungen sind direkt im ERM in Material 7 vorzunehmen.

2.4

(8 BE)

Die Beziehung zwischen Konto, Sparkonto und Girokonto ist eine Vererbungsbeziehung. Es gibt verschiedene Möglichkeiten, eine Vererbungsstruktur auf Tabellen abzubilden. Zeigen Sie zwei Möglichkeiten und diskutieren Sie Vor- und Nachteile der beiden Lösungen. (6 BE)

Seite 6 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Material 1

Anwendungsfalldiagramm des Banksystems

Seite 7 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Material 2

Klassendiagramm des Banksystems

Hinweise: – Auf alle Attribute kann mittels get-Methoden lesend zugriffen werden. – Kunden- und Kontenobjekte erhalten bei der Objekterzeugung eine fortlaufende Kunden- bzw. Kontonummer. Diese wird mittels autonr erzeugt. – Die Methoden anlegenKunde und eroeffneKonto der Klasse Bankverwaltung liefern als Rückgabewert das erzeugte Kunden- bzw. Kontoobjekt zurück. Der Parameter art der Methode eroeffneKonto bestimmt die Art des zu eröffnenden Kontos 's': Sparkonto, 'g': Girokonto. – Das Attribut dispo der Klasse Girokonto ist der Betrag, bis zu dem ein Girokonto überzogen werden kann (Dispositionskredit). Auf das Attribut dispo kann auch schreibend zugegriffen werden.

Seite 8 von 12

Hessisches Kultusministerium

Landesabitur 2015

Datenverarbeitungstechnik Leistungskurs

Thema und Aufgabenstellung Vorschlag A

Material 3

Sequenzdiagramm – Vorlage :Bankverwaltung Bankangestellter eroeffneKonto(einKunde, art)

einKunde: Kunde

Seite 9 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Material 4

Beschreibung des Geldausgabeautomaten

Der Geldausgabeautomat besteht aus einem Anzeigefeld, einem Kartenleser, einer Geldausgabeeinheit, einem Ziffern- und einem Funktionstastenfeld. Im Grundzustand wird eine Begrüßungsnachricht „Bitte Scheckkarte einführen.“ angezeigt. Nachdem der Kunde die Scheckkarte in den Kartenleser eingeführt hat, wird er aufgefordert, seine 4stellige Geheimzahl (PIN) einzugeben. Für jede eingegebene Ziffer wird das Symbol „*“ angezeigt. Die Eingabe der Geheimzahl wird mit der Funktionstaste „Bestätigung“ abgeschlossen. Wird die Geheimzahl nicht korrekt eingegeben, hat der Kunde noch zwei Versuche frei, die Geheimzahl korrekt einzugeben. Schlägt auch der dritte Versuch fehl, so wird die Karte einbehalten. Für eine Auszahlung wird der Kunde aufgefordert, den Betrag einzugeben. Der Betrag wird mit Zifferntasten eingegeben. Die Eingabe wird mit der Taste „Bestätigung“ bestätigt. Ist der Geldbetrag auszahlbar, so wird zunächst die Meldung „Bitte Karte entnehmen.“ ausgegeben. Nach Entnahme der Karte erscheint die Meldung „Bitte Geld entnehmen.“. Danach wird im Ausgabefach das Geld bereitgestellt. Ist der Geldbetrag nicht auszahlbar, so wird die Meldung „Geldbetrag nicht auszahlbar. Bitte Karte entnehmen.“ ausgegeben und auf die Kartenentnahme gewartet. Anschließend geht der Automat in seinen Grundzustand.

Seite 10 von 12

Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs

Landesabitur 2015 Thema und Aufgabenstellung Vorschlag A

Material 5

Klassendiagramm des Geldausgabeautomaten

Hinweise: Die Methode liesZiffer()der Klasse Tastatur liefert die über den Ziffernblock eingegebene Ziffer als int, die Methode liesFunktion()eine betätigte Funktionstaste als char (z.B. 'B' für Bestätigen oder ‚ 'K' für Korrektur), die Methode liesBetrag()dient zur Eingabe des gewünschten Geldbetrags. Das Prüfen der Geheimzahl erfolgt mittels der Methode pruefePin()der Klasse Kartenleser.

Material 6

Die Klasse IOPortAccess Ein Exemplar der Klasse IOPortAccess ermöglicht den Zugriff auf parallele Ein-/ Ausgabeports. Kurzbeschreibung der Klasse IOPortAccess: IOPortAccess() der Konstruktor

IOPortAccess + IOPortAccess() + openDriver(): boolean + closeDriver(): void + writePort(port: int, value: int): void + readPort(port: int): int

openDriver() öffnet den Port-Treiber; liefert true, wenn der Treiber geladen wurde closeDriver() schließt den Port-Treiber. writePort() schreibt einen Wert value auf den Port mit der Adresse port. readPort() liest einen Wert vom Port mit der Adresse port. Seite 11 von 12

Hessisches Kultusministerium

Landesabitur 2015

Datenverarbeitungstechnik Leistungskurs

Thema und Aufgabenstellung Vorschlag A

Material 7

Vorläufiges ERM der Datenbank des Banksystems

Vorname Kunde Name

Gebdatum

[1,1] Betrag

besitzt Kontonr

Kontostand

[1,n] Konto

Datum [1,1]

hat

[0,n]

Buchung Buchungstext

Dispokredit

Seite 12 von 12