BEISPIELKLAUSUR Softwareentwicklung:



Ähnliche Dokumente
Objektorientierte Programmierung

Java: Vererbung. Teil 3: super()

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Einführung in die Java- Programmierung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Einführung in die Programmierung

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung

Klausur zur Vorlesung Stochastische Modelle in Produktion und Logistik im SS 2010

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Erfahrungen mit Hartz IV- Empfängern

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Client-Server-Beziehungen

EndTermTest PROGALGO WS1516 A

1 Vom Problem zum Programm

Prüfung BIW4-29 Projektentwicklung (120 min)

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

ecaros2 - Accountmanager

Software Engineering Klassendiagramme Assoziationen

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Muster mit Beispielen

Graphic Coding. Klausur. 9. Februar Kurs A

Arrays Fortgeschrittene Verwendung

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Programmieren Tutorium

Softwaretechnik (Allgemeine Informatik) Überblick

Bachelorprüfung/Diplomvorprüfung Einführung in die Unternehmensführung (BWL 1)

Innere Klassen in Java

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Programmieren in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

SEP 114. Design by Contract

Semestralklausur zur Vorlesung. Web Mining. Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2004 Termin:

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Algorithmen und Datenstrukturen

Einführung in die Programmierung

Aufgabenheft. Fakultät für Wirtschaftswissenschaft. Modul Business/IT-Alignment , 09:00 11:00 Uhr. Univ.-Prof. Dr. U.

1 topologisches Sortieren

Folge 18 - Vererbung

5 Projekt Bankverwaltung

Word. Serienbrief erstellen

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Statuten in leichter Sprache

Professionelle Seminare im Bereich MS-Office

Zählen von Objekten einer bestimmten Klasse

Vorgehensweise bei Lastschriftverfahren

Vertraulich. Nachname: Vorname: Matrikel-Nummer: Studiengang: Datum: 30. Januar 2015

Fachhochschule Düsseldorf Wintersemester 2008/09

Datenexport aus JS - Software

Konzepte der Informatik

Lehrer: Einschreibemethoden

2. Semester, 2. Prüfung, Lösung

Modulklausur Konstruktion und Analyse ökonomischer Modelle

1 Mathematische Grundlagen

Kompetenzen und Aufgabenbeispiele Englisch Schreiben

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SEPA-Umstellungshilfe für die VR-NetWorld-Software zur Nutzung von SEPA-Lastschriften

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Ablaufbeschreibung zur Erfassung von wiederkehrenden SEPA-Lastschriften mittels Lastschriftvorlagen

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Bachelor Prüfungsleistung

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Typumwandlungen bei Referenztypen

Abschlußklausur am 21. Mai 2003

Otto-von-Guericke-Universität Magdeburg

Kurzanleitung für Verkäufer

Einführung in die Energie- und Umweltökonomik

Dokumentation Bonuspunkteverwaltung. Verfasser(in) / Autor: Check it Consulting

Bearbeitungshinweise. (20 Punkte)

Verbuchung von Zahlungseingängen über das PayPal-Konto

Klausur zur Veranstaltung Industrielle Produktionssysteme im SS 04

Stand: Adressnummern ändern Modulbeschreibung

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Client-Server Beziehungen

Algorithmische Mathematik

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

WPF Steuerelemente Listbox, ComboBox, ListView,

Objektorientierte Programmierung OOP

Prüfung Software Engineering I (IB)

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

GOtoSPORT.CH Internetplattform

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Deutliche Mehrheit der Bevölkerung für aktive Sterbehilfe

Einführung in die Java- Programmierung

Abschlussklausur am 12. Juli 2004

Benutzerhandbuch - Elterliche Kontrolle

Transkript:

Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte Programmierung mit C# Bachelor-Studiengang BWL Bearbeitungszeit: 60 Minuten Erlaubte Hilfsmittel: keine Nachname :... Vorname :... Matrikelnummer :... Aufgabe Erreichte Punktzahl Maximalpunktzahl 1 18 2 5 3 15 4 22 Summe: 60 Note: Hinweise: Schreiben Sie bei Bedarf stichpunktartig, aber bitte deutlich! Verwenden Sie für Ihre Antworten bei Bedarf auch die Rückseiten der Aufgabenblätter! Achten Sie bei der Programmentwicklung auch auf Übersichtlichkeit!

Aufgabe 1: Objektorientierte Softwareentwicklung (5 + 4 + 5 + 4 = 18 Punkte) a) Was versteht man im Zusammenhang der objektorientierten Softwareentwicklung unter einer Klasse und einem Objekt? Geben Sie jeweils prägnante Definitionen an und veranschaulichen Sie die Antwort außerdem knapp anhand eines Beispiels aus dem Anwendungsbereich Logistik! b) Erläutern Sie anhand von zwei wesentlichen Software-Qualitätsfaktoren Vorteile der objektorientierten Softwareentwicklung im Zusammenhang mit der Verwendung von Klassen! 2 / 10

c) Erläutern Sie den Unterschied zwischen Wert-Typen und Referenz-Typen! Beschreiben Sie dabei insbesondere auch entsprechende Auswirkungen bei der Parameterübergabe beim Aufruf von Methoden! (Es bietet sich an, hierzu auch Beispiele heranzuziehen.) d) Was versteht man unter einer abstrakten Klasse und was ist eine abstrakte Methode? Geben Sie jeweils auch ein Beispiel an! 3 / 10

Aufgabe 2: Analyse von C#-Programm-Ausschnitten (3 + 2 = 5 Punkte) Analysieren Sie die folgenden (voneinander unabhängigen) Ausschnitte von C#-Programmen! a) Welche Werte haben die Variablen u0, u1, v1 und v2 am Ende des folgenden Quelltexts? (Hinweis: int ist ein Wert-Typ, ein Array ist ein Referenz-Typ.) int u0 = 1; int u1 = 2; int[] v1 = new int[2] { 3, 4 }; int[] v2 = new int[2] { 5, 6 }; u0 = u1; u1 = 0; v2 = v1; v2[0] = 7; v1[1] = 8; b) Identifizieren und korrigieren Sie mögliche Fehler in dem folgenden Programmausschnitt! (Sie können davon ausgehen, dass using System; an geeigneter Stelle vorangestellt ist. Korrekt identifizierte Fehler werden in der Bewertung mit fälschlich angestrichenen Stellen verrechnet.) int s = 2.2; string first = "Sandra"; string 2nd = "Meiser"; Console.WriteLine{ "Hallo" + first }; for( int v=0; v<10; ) ++v; int m=0; repeat m = m + 1; until ( m == 10 ); 4 / 10

Aufgabe 3: Implementierung von Algorithmen in C# Ergänzen Sie die folgende C#-Methode public static bool BinaereSuche( int a, int[] z ) { // Beginn Ihres Quellcodes (15 Punkte) // Ende Ihres Quellcodes } in der Weise, dass mittels binärer Suche effizient ermittelt wird, ob die ganze Zahl a in dem aufsteigend sortierten Array z aus ganzen Zahlen enthalten ist. Hinweise: Zuerst wird a mit einem mittleren Vergleichselement des Arrays verglichen (bei gerader Elementanzahl ist mittleren gemäß entweder Auf- oder Abrunden interpretierbar). Ist a kleiner als das Vergleichselement, kann a nur in der vorderen Hälfte stecken (falls überhaupt vorhanden); analog kann a ggf. nur in der hinteren Hälfte stecken, falls es größer ist als das Vergleichselement. Jede ggf. weiterhin zu untersuchende Hälfte wird mit der gleichen Strategie behandelt. Spätestens wenn der Suchbereich auf ein Element beschränkt ist, ist die Suche abgeschlossen. Die Anzahl der Elemente des Arrays z lässt sich mit der Eigenschaft z.length bestimmen. 5 / 10

[Fortsetzung der Lösung zu Aufgabe 3] 6 / 10

Aufgabe 4: Objektorientierte Programmierung in C# (17 + 5 = 22 Punkte) a) Gegenstand der objektorientierten Programmierung soll eine Bank sein. Zu erfassen und zu verwalten sind zunächst Konten und Kunden. Dabei sind für einen Kunden der Name sowie die Telefonnummer von Interesse. Ein Konto sei charakterisiert durch die Kontonummer, den aktuellen Kontostand sowie den Kunden, dem das Konto zugeordnet ist. Entwickeln Sie für die beschriebene Ausgangssituation ein Klassenmodell mit den Klassen Kunde, Konto und Verwaltung. Letztere soll die Main-Methode enthalten. Führen Sie für die Klassen Kunde und Konto sinnvolle Konstruktoren ein und gestalten Sie den Zugriff auf die als protected deklarierten Felder mittels Eigenschaften. Instanziieren Sie in der Main-Methode ein Objekt eines Kunden Bob (Telefonnummer 040/100200) und ein Konto-Objekt (Nr. 1001) dieses Kunden mit einem Kontostand von 100. Skizzieren Sie das hierfür zu erwartende Speicherlayout hinsichtlich der erzeugten Variablen und Objekte. b) Gehen Sie davon aus, dass ein Sparplankonto ein Spezialfall des in Teilaufgabe a) betrachteten Kontos ist. Leiten Sie durch Vererbung eine entsprechende Klasse Sparplankonto von der Klasse Konto ab und ergänzen Sie ein weiteres Feld, in dem die planmäßigen Einzahlungen für die zwölf Monate eines Jahres als Array abgebildet sind. (Darüber hinaus sind keine weiteren Elemente zu deklarieren.) 7 / 10

[Fortsetzung der Lösung zu Aufgabe 4] 8 / 10

[Bei Bedarf Fortsetzung der Lösung zu Aufgabe 4] 9 / 10

[Zusatzblatt] 10 / 10