Übungen zu Programmieren 3 (C++) (4-1)
|
|
- Anton Vogel
- vor 7 Jahren
- Abrufe
Transkript
1 BEREICH DATENTECHNIK U CQ TH 02 Übungen zu Programmieren 3 (C++) (4-1) Allgemeines Ziel dieser Praktikumsaufgabe ist die Realisierung eines einfachen Telefonbuch-Verwaltungsprogramms mit dem Namen telbuch unter Einsatz von Komponenten der STL. Funktionelles Verhalten des Programms Die einzelnen Einträge des Telefonbuchs sollen hier nur aus einem Namen (Familienname, Vorname) und einer Telefonnummer bestehen. Sie sind zusammengefasst in einer Textdatei persistent abgespeichert (Telefonbuch-Datei). Pro Zeile ist ein Eintrag enthalten. Beispiel : hohenwart, elisa Für den gleichen Namen (gleicher Familienname, gleicher Vorname) können mehrere Einträge vorhanden sein Für das Programm sollen die folgenden Anwendungsfälle (Use Cases) existieren : Auflistung aller im Telefonbuch enthaltenen Einträge Suchen nach dem Eintrag bzw den Einträgen für einen bestimmten Namen und Auflistung derselben Löschen eines Eintrags aus dem Telefonbuch Ändern der Telefonnummer eines bestimmten Telefonbucheintrags Erzeugen eines neuen Telefonbucheintrags Die Auswahl der Anwendungsfälle soll mittels einzugebender Steuerkommandos vorgenommen werden. Dem Programm kann der Zugriffspfad der Telefonbuch-Datei als Kommandozeilenparameter übergeben werden. Wird kein Kommandozeilenparameter übergeben, soll das Programm mit der Default-Datei "telefonbuch.txt" (im aktuellen Verzeichnis) arbeiten. Nach dem Programmstart ist die Telefonbuch-Datei in den Arbeitsspeicher einzulesen. Kann diese Datei nicht geöffnet werden, ist das Programm mit einer entsprechenden Fehlermeldung zu beenden. Bei Erfolg ist die Anzahl der eingelesenen Telefonbucheinträge auszugeben, gefolgt von dem zur Verfügung stehenden Auswahl-Menü für die Kommando-Eingabe. Sämtliche Bearbeitung der Telefonbucheinträge (einschliesslich ihrer Veränderung) ist nur mit den im Arbeitsspeicher befindlichen Kopien durchzuführen. Erst bei Programmende und auch nur wenn Änderungen vorgenommen worden sind sind alle Einträge wieder in die Datei rauszuschreiben. Dabei ist der alte Dateiinhalt zu überschreiben. Zur Identifizierung eines Eintrags (für die Änderung bzw das Löschen) ist jeder ausgegebene Eintrag mit einer vorangestellten laufenden Nummer zu kennzeichnen. Diese immer bei 1 beginnende laufende Nummer bezieht sich auf die jeweils zuletzt dargestellte Gruppe von Einträgen (alle Einträge oder die Einträge für einen bestimmten Namen). Realisierungsvorgaben Das Programm soll objektorientiert nach dem Paradigma der Model-View-Controler-(MVC-)Architektur realisiert werden. Da der Schwerpunkt der Übung im Problem- und Controler-Bereich liegen soll, sind die Interface-(View-) Klassen vorgegeben. Das Eingabe- bzw Ausgabe-Interface des Programms wird durch die beiden abstrakten Klassen TBCmdInput und TBResultDisplay festgelegt. Die Definition dieser Klassen ist in den Headerdateien "TBCmdInput.h" bzw "TBResDisplay.h" enthalten, sowie in Anlage 1 bzw 2 abgedruckt. In "TBCmdInput.h" ist auch deraufzählungstyp TBCmd zur internen Darstellung der Steuerkommandos definiert. Das Programm soll hier konkret mit einem Konsolen-Interface arbeiten. Dieses wird durch die Klasse ConTBInterface realisiert. Diese Klasse ist sowohl von TBCmdInput als auch TBResultDisplay abgeleitet und implementiert damit sowohl das Eingabe- als auch das Ausgabe-Interface. Die Steuerkommandos werden durch die Eingabe von Einzel-Buchstaben (und anschliessendem <RET>) erzeugt. Ungültige Steuerkommandos werden ignoriert. Die sich in der Headerdatei "ConTBInterface.h" befindende Definition dieser Klasse ist in der Anlage 3 wiedergegeben. Die Implementierung der Klasse ist in der Datei "ConTBInterface.obj" enthalten.
2 BEREICH DATENTECHNIK U CQ TH 02 Übungen zu Programmieren 3 (C++) (4-2) Realisierungsvorgaben, Forts. Anmerkung : Denken Sie daran, dass die übrigen Klassen des Programms lediglich mit den durch die beiden abstrakten Klassen festgelegten Interfaces und nicht mit der konkreten Klasse, die diese Interfaces implementiert, arbeiten dürfen. Die konkrete Interface-Klasse ist lediglich in main() zu instantiieren, in den übrigen Klassen darf sie nur über Pointer auf die abstrakten Klassen referiert werden. Die beiden o.a. abstrakten Interface-Klassen verwenden die Datentypen Name und TBEintrag. Diese beiden Typen sind in der Headerdatei "TBEintrag.h" definiert (s. Anlage 4). Name ist ein Structure-Typ zur Darstellung von Namen (bestehend aus Familienname und Vorname). Für ihn sind die Operatorfunktionen <, ==, << und >> definiert. TBEintrag ist eine Klasse zur Darstellung von Telefonbuch-Einträgen. Neben einer privaten Datenkomponente für den Namen besitzt sie eine private Datenkomponente für die Telefonnummer. Da diese in verallgemeinerter Darstellung auch Sonderzeichen enthalten kann, ist für sie der Datentyp string (Klasse der C++-Standardbibliothek!)gewählt. Für die Klasse TBEintrag sind die freien Operatorfunktionen << und >> definiert. Die Implementierung der beiden Typen Name und TBEintrag steht in der Datei "TBEintrag.obj" zur Verfügung. Zur Speicherung und Bearbeitung der Daten in der/den Problembereichsklasse(n) und der Steuerklasse müssen sinnvoll ausgewählte Container und Iteratoren der STL eingesetzt werden. Ein Fehlschlagen des Öffnens der Telefonbuchdatei ist durch eine Exception eines geeigneten Standardbibliotheks- Exception-Typs zu signalisieren. Die Exception ist in der main()-funktion des Programms zu fangen. Die Auswahl eines zu löschenden oder zu ändernden Eintrags ist durch eine einzugebende laufende Nummer vorzunehmen. Die laufende Nummer bezieht sich immer auf die Gruppe der zuletzt dargestellten Einträge Auf die Eingabe einer ungültigen Laufenden Nummer ist mit der Ausgabe einer entsprechenden Meldung zu reagieren. Ein Name für den nach Einträgen gesucht werden soll, ist ebenfalls einzugeben. Können für diesen Namen keine Einträge gefunden werden, ist dies durch eine entsprechende Meldung anzuzeigen. In der Funktion main() ist neben der Ecxeption-Bearbeitung im wesentlichen lediglich ein ConTBInterface- Objekt sowie ein Objekt der Steuerklasse zu erzeugen und anschliessend die Kontrolle an die Steuerklasse zu übergeben. Eine Muster-Telefonbuchdatei mit dem Namen "telefonbuch.txt" wird zu Verfügung gestellt. Weiterhin steht in der Datei "strconvutil.obj" u.a. die folgende freie Funktion zur Verfügung. string int2string(int); Diese Funktion wandelt den als Parameter übergebenen int-wert in seine in einem neu erzeugten string-objekt abgelegte Textdarstellung um. Das string-objekt wird als Funktionswert zurückgegeben. Teil a Identifizieren Sie die für eine sinnvolle Programm-Architektur noch benötigten Klassen. Erstellen Sie ein Klassendiagramm. Erstellen Sie ein Sequenzdiagramm für den Anwendungsfall "Suchen nach Einträgen für einen Namen" Teil b Implementieren Sie die Funktion main() im Modul "telbuch_m.cpp". Definieren (Headerdateien) und implementieren (C++-Quelldateien) Sie die von Ihnen identifizierten Klassen. Erstellen Sie das geforderte Programm unter Verwendung der selbst entworfenen und der zur Verfügung gestellten Dateien. Testen Sie Ihr Programm mit der zur Verfügung stehenden Muster-Telefonbuchdatei
3 BEREICH DATENTECHNIK U CQ TH 02 Übungen zu Programmieren 3 (C++) (4-3) Anlage 1 : Definition der Klasse TBCmdInput (Datei "TBCmdInput.h") // C++-Headerdatei TBCmdInput.h Eingabe-Interface fuer Telefonbuchverwaltung #ifndef _TB_CMD_INPUT_H #define _TB_CMD_INPUT_H struct Name; enum TBCmd DALL, // Auflistung aller Telefonbucheintraege SNUM, // Suchen nach den Eintraegen fuer einen Namen REME, // Entfernen eines Eintrags MODF, // Modifizieren (Aendern) der Telefonnummer eines Eintrags NENT, // Erzeugen und Einfuegen eines neuen Eintrags HELP, // Ausgabe einer Kommandouebersicht QUIT // Programmbeendigung class TBCmdInput public : virtual ~TBCmdInput() virtual TBCmd getcmd() = 0; // Einlesen eines Kommandos virtual Name getname() = 0; // Einlesen eines Namens virtual int getlfdnum() = 0; // Einlesen einer laufenden Nummer virtual string gettelnum() = 0; // Einlesen einer Telefonnummer virtual string getinpstr() = 0; // Einlesen eines beliebigen Strings Anlage 2 : Definition der Klasse TBResultDisplay (Datei "TBResDisplay.h") // C++-Headerdatei TBResDisplay.h Ausgabe-Interface fuer Telefonbuchverwaltung #ifndef _TB_RES_DISPLAY_H #define _TB_RES_DISPLAY_H struct Name; class TBEintrag; class TBResultDisplay public : virtual ~TBResultDisplay() virtual void displname(const Name&)=0; // Ausgabe eines Namens virtual void displtelnum(const string&)=0; // Ausgabe einer Telefonnummer virtual void displentry(const TBEintrag&, // Ausgabe eines Telefonbuch-Eintr. int lfn=-1)=0; // (Name und Telefonnummer) sowie // - nur falls nicht negativ - einer // laufenden Nummer des Eintrags virtual void displmessage(const string&)=0; // Ausgabe einer Meldung virtual void displmenue() = 0; // Ausgabe des Auswahl-Menues fuer // Kommando-Eingabe
4 BEREICH DATENTECHNIK U CQ TH 02 Übungen zu Programmieren 3 (C++) (4-4) Anlage 3 : Definition der Klasse ConTBInterface (Datei "ConTBInterface.h") // C++-Headerdatei ConTBInterface.h // Definition der konkreten Klasse ConTBInterface // Interface zur Telefonbuch-Bearbeitung // Zusammenfassung der beiden Interfaces, die durch die // abstrakten Klassen TBCmdInput und TBResultDisplay gebildet werden // Kommando-Eingabe und Ergebnis-Ausgabe von/zur Console // Praktikum Prog3 #ifndef _CON_TBINTERFACE_H #define _CON_TBINTERFACE_H #include "TBCmdInput.h" #include "TBResDisplay.h" class ConTBInterface : public TBCmdInput, public TBResultDisplay public : ConTBInterface() ~ConTBInterface() } ; TBCmd getcmd(); // gibt eine entsprechende Eingabeaufforderung aus Name getname(); // gibt eine entsprechende Eingabeaufforderung aus int getlfdnum(); // gibt eine entsprechende Eingabeaufforderung aus string gettelnum(); // gibt eine entsprechende Eingabeaufforderung aus string getinpstr(); void displname(const Name&); void displtelnum(const string&); void displentry(const TBEintrag&, int lfn=-1); void displmessage(const string&); void displmenue(); /* externe Darstellung der zur Verfügung stehenden Steuerkommandos (werden von getcmd() in die interne Darstellung umgewandelt) : 'a' - Auflistung aller Telefonbucheintraege 's' - Suchen nach den Eintraegen fuer einen Namen 'd' - Entfernen eines Eintrags 'm' - Modifizieren (Aendern) der Telefonnumer eines Eintrags 'n' - Erzeugen und Einfuegen eines neuen Eintrags 'h' Ausgabe einer Kommandouebersicht 'q' - Programmbeendigung */
5 BEREICH DATENTECHNIK U CQ TH 01 Übungen zu Programmieren 3 (C++) (4-5) Anlage 4 : Definition der Klasse TBEintrag (Datei "TBEintrag.h") // C++-Headerdatei TBEintrag.h // Definition der Klasse TBEintrag // Beschreibung eines Telefonbucheintrags // Praktikum Prog3 #ifndef _TEL_BUCH_EINTRAG_H #define _TEL_BUCH_EINTRAG_H #include <iostream> struct Name string fname; string vname; // Datentyp zur Darstellung von Namen // Familienname // Vorname class TBEintrag // Datentyp zur Darstellung von Telefonbuch-Eintraegen public : TBEintrag(); TBEintrag(const Name& na, const string& nu); TBEintrag(const string& fn, const string& vn, const string& nu); virtual ~TBEintrag(); void setname(const Name& nam) m_sname=nam; } void setfname(const string& fnam) m_sname.fname=fnam; } void setvname(const string& vnam) m_sname.vname=vnam; } void setnumber(const string& num) m_snum=num; } Name getname() const return m_sname; } string getfname() const return m_sname.fname; } string getvname() const return m_sname.vname; } string getnumber() const return m_snum; } friend istream& operator>>(istream& ein, TBEintrag& tb); friend ostream& operator<<(ostream& aus, const TBEintrag& tb); private : Name m_sname; // Name string m_snum; // Telefonnumer // Operatorfunktionen fuer Name bool operator<(const Name& n1, const Name& n2); bool operator==(const Name& n1, const Name& n2); ostream& operator<<(ostream& aus, const Name& nam); istream& operator>>(istream& ein, Name& nam);
Übungen zu Programmieren 3 (C++) (4-1)
FG TECHNISCHE INFORMATIK U CQ 034 01 TA 01 Übungen zu Programmieren 3 (C++) (4-1) Allgemeines Ziel dieser Praktikumsaufgabe ist die Realisierung eines einfachen Telefonbuch-Anzeigeprogramms unter Einsatz
MehrPraktikum zu OOP (C++) (6-1)
FG TECHNISCHE INFORMATIK U OOP 061 01 TA 01 Praktikum zu OOP (C++) (6-1)!!!!! Achtung; Versuch nur mit VS-Studio lösbar (Download siehe Homepage)!!!!! Allgemeines Ziel dieser Praktikumsaufgabe ist die
MehrLösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrPrüfung aus PROGRAMMIEREN 3 (SS 2003)
Fachhochschule München Bereich Datentechnik Fachbereich Elektrotechnik und Informationstechnik R. Thomas Prüfung aus PROGRAMMIEREN 3 (SS 2003) Arbeitszeit 90 Minuten 16.Juli 2003 Beliebige eigene Unterlagen
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 400 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 4 4. Ergänzungen zur Laufzeitpolymorphie 4.1. Abstrakte Klassen 4.2. Laufzeittypinformation
MehrComputergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH
MehrPraktikum OOP/C++ - Versuch 5
Seite 1 vn 5 Allgemeines Die Elektrifizierung im Autmbilbereich nimmt immer mehr zu. Das heißt, es kmmen immer mehr Elektrmtren und verbraucher zum Einsatz. Es ist ein Prgramm in C++ zu entwickeln, das
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrProf.Dr. Alfred Irber Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren"
Prof.Dr. Alfred Irber 7.6.2012 Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren" Textformatierung (30 Punkte) Schreiben Sie ein komplettes C-Programm,
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrKlassen. C++ Übung am 02. Juni 2016
Klassen C++ Übung am 02. Juni 2016 Klassen - der Kern objektorientierter Programmierung - Festlegung der Daten und Funktionen einer Klasse - Deklaration als public oder private - Konstruktoren erzeugen
Mehr5. Behälter und Iteratoren. Programmieren in C++ Überblick. 5.1 Einleitung. Programmieren in C++ Überblick: 5. Behälter und Iteratoren
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren in C++ Überblick
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrÜbungen zu C++ (4-1)
BEREICH DATENTECHNIK Prof. Dr. A. Irber Stand: 7.2.2007 Übungen zu C++ (4-1) Allgemeines Im vorliegenden Versuch soll schrittweise die folgende Klassenhierarchie entwickelt werden : Uhr UhrMitDatum UhrMitWeckerUndDatum
MehrHochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe
Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die
MehrÜberladen von Operatoren
- Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
MehrRückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen
MehrPraktikum zu OOP/C++ (4)
TECHNISCHE INFORMATIK Stand: 18.11.2012 Allgemeines Praktikum zu OOP/C++ (4) Im vorliegenden Versuch soll schrittweise die folgende Klassenhierarchie entwickelt werden: Bei der Implementierung der einzelnen
MehrGran Turismo Cars - WS 11/12
WS 2011/2012 Stephan Gimbel Repetitorium PAD 1+2 Übungsblatt Gran Turismo Cars - WS 11/12 Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrPrüfung in PROGRAMMIEREN 3 WS 2006/07
Seite 1 von 6 Prüfung in PROGRAMMIEREN 3 WS 2006/07 Arbeitszeit: 90 min 1.02.2007 Hilfsmittel: beliebige eigene Das Aufgabenblatt bitte abgeben! Name: Viel Erfolg! Allgemeines Es ist ein Programm in C++
MehrHochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe
Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
Mehrc) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.
Klausur OOP SS2001 (Gampp) ufgabe 1 (22 Punkte) a) Während einer bargeldlosen Giro-ank Transaktion können eträge zwischen Währungen konvertiert werden. Eine Klasse Transaktion soll solche uchungen beschreiben
MehrAuswahlen (Selektionen)
1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin
MehrSimpleStat mit Methoden
SimpleStat mit Methoden Als Ausgangspunkt nehmen wir folgende Definition (Version 1) von SimpleStat: double sum2; -Quadrate Dieser Objekttyp verfügt über keine Methoden und alle Datenattribute sind public.
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrHochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme
Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.
MehrKlausur Informatik WS 2012/13
Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen
MehrVokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4
4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrGERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT
User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]
MehrInformatik I Eprog HS12
software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrHochschulprüfung in objektorientiertes Programmieren WS 2014/15
Seite 1 von 8 Hochschulprüfung in objektorientiertes Programmieren WS 2014/15 Arbeitszeit: 90 min 28.01.2015 Hilfsmittel: beliebige eigene Das Aufgabenblatt bitte abgeben! Name: 1. Aufgabe Java (14) Viel
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrName: Klausur Informatik III WS 2003/04
1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrKlausur Programmieren 2 SS 2016
Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar
MehrHilfsblatt für C++ Prüfungen im 5. Semester
Hilfsblatt für C++ Prüfungen im 5. Semester Hilfsblatt für C++ Prüfungen im 5. Semester 1 Klassen 2 Win-32 Programmierung 3 Handles 3 Dateien, Files 3 Threads 3 Events 4 Funktionen 5 Einfache Funktionen
MehrÜbungen zur Vorlesung EidP (WS 2015/16) Blatt 6
Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise
MehrInstitut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 5. Dezember 2016 Programmieren I 5. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik
MehrOOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
(Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Klassen in C++ Beispiele, mit Aufzeigen der Trennung von Spezifikation und Implementierung
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrKlausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Geben
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE38-Generics (Stand 28.09.2012) Aufgabe 1: Schauen Sie sich die generischen Klassen des Paketes java.util an. Aufgabe 2: Ausgangslage sind die folgenden
MehrVon der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
MehrVon der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
MehrKlausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 9 Lösungsvorschlag Objektorientierte Programmierung 26. 06. 2006 Aufgabe 19 (Sieb des Erathostenes)
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrHochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene
MehrFB Informatik. Fehler. Testplan
Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
MehrKlassen. Kapitel Klassendeklaration
Kapitel 4 Klassen Wir kommen nun zu einem sehr wichtigen Aspekt der OOT: zu den Klassen. Eine Klasse ist eine vom Benutzer definierte Datenstruktur, eine Sammlung von Variablen (unterschiedlichen Typs)
MehrC++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16
C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
MehrImplementation VL3 Gruppe A
Doubravsky Filip Rot Drazen Implementation VL3 Gruppe A Datei Anzahl diese Programms: main.cpp Menü mit Exit eingabe.hpp eingabe.cpp Eingabe und Datei öffnen und einlesen translate.hpp translate.cpp Speicherung
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 10 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 8 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 10 Aufgabe 1:
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrVerkettete Listen in C++ und Visual Basic 6. Stefan Buchgeher
Verkettete Listen in C++ und Visual Basic 6 Stefan Buchgeher 8. März 2007 Inhaltsverzeichnis 1 Grundlegendes zu Verketteten Listen (engl. linked list) 2 1.1 Was ist eine Verkettete Liste........................
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrC++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen
MehrLinux-Einführung Übung
Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.
MehrAllgemeine Informatik II SS :30-13:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrFor matierte Ein-/Ausgabe iostream: multiple inheritance von istream und ostream Weitere abgeleitete Klassen (z. B. Ausgabe nach Strings)
Übersicht Ersatz für stdio in C Typensicher Benutzt C++-Sprachfeatures Ein-/Ausgabe für selbstdefinierte Datentypen #include Mehrere Ebenen streambuf Schnelle (gepuffer te), zeichenweise Ein-/Ausgabe
MehrGrundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
Mehr3. Objektorientierung Ergänzungen
3. Objektorientierung Ergänzungen 3.1 Strukturen Anstelle des Schlüsselwortes class kann auch das Wort struct verwendet werden. Unterschied zu class: Voreinstellung für die Elemente ist public (bei class
MehrKurzanleitung zur Verwendung der Java-IDE NetBeans (1)
FG TECHNISCHE INFORMATIK U JV 055 01 TH 01 Kurzanleitung zur Verwendung der Java-IDE NetBeans (1) Erzeugung eines neuen Projekts Start der NetBeans-IDE Menü "Datei" Auswahl "Neues Projekt" (CTRL-Shift-N)
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrZusatzübung. Abgabetermin: Gruppe: G1 (Löberbauer) G2 (Prähofer) G3 (Prähofer)
Zusatzübung Abgabetermin: 1. 3. 2006 Name: Matrikelnummer: Gruppe: G1 (Löberbauer) G2 (Prähofer) G3 (Prähofer) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch korr. Pkte Aufgabe 11.1
Mehrios fstream ifstream
4 Grundlagen der Dateiarbeit 4.1 File-Stream-Klassen Mit der Beendigung eines Programms gehen die im Hauptspeicher gehaltenen Daten des Programms verloren. Um Daten permanent zu speichern, müssen sie in
MehrC/C++-Programmierung
1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung
MehrAbend 7 Vererbung und Polymorphie, Abstrakte Klassen
Abend 7 Vererbung und Polymorphie, Abstrakte Klassen Ziel, Inhalt Wir sehen heute weitere Beispiele für Polymorphie und virtuelle Methoden. Wir lernen auch Klassen kennen, von denen man keine Objekte erzeugen
MehrWie teuer ist dynamischer Polymorphismus? 194
Wie teuer ist dynamischer Polymorphismus? 194 Function f vtable data RTTI ~Function get_name type name type info "Sinus\0" execute Nicht-polymorphe Methoden und reguläre Funktionen können in C++ direkt
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Dateien, sowie Records und Funktionen Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher
MehrLösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)
Prof. Ina Schaefer Software Systems Engineering TU Braunschweig Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13) Ausgabe: Kleine Übung: 07. Dezember/10. Dezember 2012 Abgabe: Kleine
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrDas erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14
Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv: der Prozessor 17
Mehr