Quellcode Beispiele

In meiner Zeit als Softwareentwickler sind so einige Programme entstanden. Leider kann ich auf dieser Seite nur die Projekte präsentieren, die während meines Studiums oder im privatem Rahmen entstanden sind.

Dabei gab es in meiner beruflichen Laufbahn so einige tolle Projekte, auf die ich stolz bin. Genannt sei hier z.B. die Mitarbeit an der Weiterentwicklung des Arztinformationssystems MediStar sowie die Arbeit als projektverantwortlicher Entwickler an RAV300, einer Software zur Verarbeitung von Apothekenabrechnungen für die gesetzlichen Krankenkassen.

Mfc2Qt
Mit dem Mfc2Qt Converter lassen sich die Dialoge aus MFC Resourcen in UI-Files für Qt konvertieren.
Leetcode Solutions
In diesem ZIP sind meine Lösungen zu einigen Problemen der Plattform LeetCode enthalten.
Codility Solutions
Codility bietet für Programmierer ein paar Problemstellungen, für die man in einer bestimmten Zeit eine Lösung entwickeln soll. Hier sind meine Lösungen in C++ zu einigen der Probleme. Aus rechtlichen Gründen sind die Aufgabentexte nicht im ZIP enthalten. Diese findet man bei [Codility](https://codility.com/programmers/lessons/).
Testprogramm für Automodelle für das Chemnitzer Stadtmodell
Als Vorbereitung für ein anderes Projekt, habe ich mein altes Programm zum Testen der Autos für das Chemnitzer Stadtmodell auf Qt5 portiert und allgemein überarbeitet. Die Zeichenroutinen setzen allerdings immer noch auf die alte Direct Mode API von OpenGL, da dies aktuell für meine Zwecke reicht und eine Portierung auf den aktuellen OpenGL Standard zu aufwendig wäre. Natürlich habe ich das auch gleich genutzt, um den Code aufzuräumen und ein paar Bugs zu beseitigen ;) Das Archiv enthält ein Projekt für den QtCreator.
Humble Dialog Box Example - Calculator
Ein Beispiel für die [Humble Dialog Box](http://www.objectmentor.com/resources/articles/TheHumbleDialogBox.pdf) in Form eines Taschenrechners in Qt5. Die Idee beim Humble Dialog ist eine Implementation des MVP-Pattern, bei der sämtliche Aktionen vom Model ausgehen. Das GUI zeigt die Daten nur an bzw. nimmt User-Interaktionen entgegen und leitet diese an das Model weiter. Das Archiv enthält ein Projekt für den QtCreator.
ThreadTalk - ein Qt5 Threading Beispiel
Ein Beispiel für die verschiedenen Thread-Varianten unter Qt 5. Die Threads können via QThread, QRunnable oder QtConcurrent gestartet werden und führen dann eine virtuelle Unterhaltung ;) Das Archiv enthält ein Projekt für den QtCreator.
Conways Spiel des Lebens Qt5 mit Threads (QThread Variante 2)
Überarbeitete Variante von [Conways Spiel des Lebens](http://de.wikipedia.org/wiki/Game_of_Life) in C++ und Qt5 unter Verwendung von Threads. In dieser Variante wird QThread verwendet und sie ist gegenüber der 1. Variante etwas verbessert. Achtung! Hier wird noch direkt von QThread abgeleitet. So sollte man es nicht mehr machen sondern für die Logik des Threads ein eigenes QObject erstellen, welches dann via moveToThread in den QThread geschoben wird. Das Archiv enthält ein Projekt für den QtCreator.
Conways Spiel des Lebens Qt5 mit Threads (QThread Variante 1)
Überarbeitete Variante von [Conways Spiel des Lebens](http://de.wikipedia.org/wiki/Game_of_Life) in C++ und Qt5 unter Verwendung von Threads. In dieser Variante wird QThread verwendet. Achtung! Hier wird noch direkt von QThread abgeleitet. So sollte man es nicht mehr machen sondern für die Logik des Threads ein eigenes QObject erstellen, welches dann via moveToThread in den QThread geschoben wird. Das Archiv enthält ein Projekt für den QtCreator.
Conways Spiel des Lebens Qt5 mit Threads (QtConcurrent)
Überarbeitete Variante von [Conways Spiel des Lebens](http://de.wikipedia.org/wiki/Game_of_Life) in C++ und Qt5 unter Verwendung von Threads. In dieser Variante wird QtConcurrent und der Threadpool von Qt eingesetzt. Das Archiv enthält ein Projekt für den QtCreator.
Juicer - appleJuice Qt4 GUI
[Juicer](https://sourceforge.net/projects/ajqtgui/) ist eine GUI auf Basis von Qt4 für das Filesharing-Programm [appleJuice](http://www.applejuicenet.de/), die von einem Studienfreund von mir entwickelt wurde und an deren Entwicklung ich mich beteiligt hatte.
Allegro-Projekt: A* Algorithmus
Dieses Projekt entstand beim Experimentieren mit der [Allegro Bibliothek](http://alleg.sourceforge.net/). Neben der Implementation des Wegfindungsalgorithmus A* kommen in diesem Projekt Techniken wie Tile-Maps und Animated Sprites zum Einsatz. Zum Übersetzen wird die Allegro-Bibliothek benötigt.
Conways Spiel des Lebens (Qt4-Version)
Dieses Programm entstand dadurch, dass meine damalige Freundin für ihr Informatik-Seminar eine simple Version von [Conways Spiel des Lebens](http://de.wikipedia.org/wiki/Game_of_Life) implementieren sollte. Als ich ihr dabei half, weckte dies in mir das Bedürfnis, das Ganze mit Qt umzusetzen. Das Source-Archiv enthält ein Eclipse-Projekt. In Eclipse werden die Plugins CDT und Qt benötigt.
Testprogramm für Automodelle für das Chemnitzer Stadtmodell (Ur-Version)
Im Rahmen eines Uni-Praktikums im Wintersemester 2006/07 schrieb ich einst dieses Programm zum Testen von mit [Lightwave 3D](https://www.lightwave3d.com/) erstellten Fahrzeugmodellen, die dann in der 3D Simulation des Chemnitzer Stadtmodells verwendet werden sollten. Das Archiv enthält Beispielmodelle und ein Projekt für KDevelop 3. Da KDevelop Automake zum übersetzen verwendet hatte, sollte sich das Programm in gängiger Weise (./configure -> make) unter Linux übersetzen lassen. Zum Übersetzen wird Qt3 benötigt.
OpenGL Übungsprogramm Pyramide
Dieses Programm entstand ebenfalls als Übungsprogramm für OpenGL während meiner Tätigkeit als Tutor für das Seminar Computergrafik I an der Uni. Die Pyramide ist vollständig in OpenGL modelliert und animiert. Das Projekt verwendet die [Glut](https://www.opengl.org/resources/libraries/glut/)-Bibliothek. Zum Übersetzen (per GCC) folgendes eingeben: gcc -lGL -lGLU -lglut Pyramide-fertig.cpp Hinweise zur Bedienung: * Lichtquelle auswählen über Menü (Rechtsklick) * Aktivieren der ausgewählten Lichtquelle mit "Einfg", Bewegen über Pfeiltasten * C/c - Spot-Radius vergrössern/verkleinern * E/e - Spot Exponent vergrössern/verkleinern * W/w - Polygonmode Wireframe/Fill
OpenGL Übungsprogramm Uhr
Im Wintersemester 2006/07 war ich als studentischer Mitarbeiter an der Uni angestellt. Dabei durfte ich OpenGL-Seminare begleitend zur Vorlesung Computergrafik I geben. Bei einem dieser Seminare entstand dieses Projekt, bei dem eine Uhr via OpenGL modelliert und animiert wurde. Das Programm verwendet die [Glut](https://www.opengl.org/resources/libraries/glut/)-Bibliothek. Zum Übersetzen (per GCC) folgendes eingeben: gcc -lGL -lGLU -lglut cg1_uhr.cpp
Projekt Computergrafik I
Begleitend zur Vorlesung Computergrafik I im 5. Semester (bei mir war dies das Wintersemester 2003/04) sollten wir ein OpenGL Projekt erstellen. Dies war gleichzeitig mein erstes Windows-Projekt mit der MFC, da ich vorher primär unter Linux programmiert hatte. Das Programm wurde ursprünglich unter Visual Studio 6 entwickelt. Ich habe das Projekt im Archiv allerdings auf Visual Studio 2015 aktualisiert, so dass es sich nun auch unter neueren Windows-Systemen übersetzen und starten lässt.
Softwarepraktikum: Fahrschulverwaltung
Dieses Projekt ist während meines Softwarepraktikums im Sommersemester 2004 an der Uni entstanden. Es ist Browser-basiert und verwendet MySQL und PHP. Ich war primär für die Datenbankanbindung und Session-Verwaltung sowie die Mitarbeiter- und Kundenverwaltung zuständig.