Suche ein "sinnvolles Projekt"

KGD92

Mitglied
Moin Leute,
ich bin gerade dabei C++ zu lernen (komme von Java (ca. 2 Jahre Hobby/Schule) und wollte jetzt ein Projekt schreiben mit Pflichtenheft, Planung usw., da ich mal den ganzen Entwicklungsprozess durchlaufen möchte (Bisher hat immer der Lehrer die Aufgaben gestellt und dann hab ich halt drauf losgeschrieben ;)). Nur fehlt mir einfach die Idee was ich den machen könnte. Und da wollte ich mal euch fragen ob ihr Ideen habt. Das ganze sollte jetzt kein Spiel oder so sein, sonder mehr eine Anwendung, wie sie z.b. Firmen einsetzen. Ich hoffe ihr findet da was für mich ;)

Danke, Kai

PS: Das ganze sollte bitte auch Halbwegs sinnvoll sein und nicht die "Verwaltung von Pokemon-Figuren" :D
 
He Kollege, ich denke, dich einfach so in ein Projekt zum lernen zu stürzen dürfte bei C++.nicht wirklich hinhauen, da es doch um einiges schwerer als Java ist.
Aber du könntest ja versuchen, einen eigenen Ersatz fürm Windows Explorer zu schreiben.
Alternativ könntest du versuchen das Programm so aufzubauen, dass es einmalig gestartet wird, und auf einen Port wartet. Wird es nochmal gestartet, sendet es den aktuellen Pfad (mit dem es gestartet wurde, wie Arbeitsplatz oder C:\) über Sockets an den Port, und das erste Programm öffnet das Fenster.
 
Statt eines Pflichtenheftes solltest du besser ein Konzept erstellen, das den Leistungsumfang deines Programmes definiert; dazu gehört auch der Entwurf einer Benutzeroberfläche, die komfortabel, mächtig und intuitiv bedienbar ist. Eine realistische Zeitplanung kannst du erst erstellen, wenn du die notwendige Erfahrung hast, die dich befähigt zu beurteilen, welche Möglichkeiten deine Programmierumgebung bietet und wie man sie nutzt.
Firmenanwendungen sind zum großen Teil Datenbankanwendungen, die zur Verwaltung und Durchführung von internen Vorgängen, Lagerverwaltung inklusive Bestell- und Auftragsdiensten sowie Bezahlungs- und Abrechnungsvorgängen dienen. Andere sind Simulationen diverser Szenarios oder technische Steuerungen. Für so etwas fehlt dir wahrscheinlich das notwendige Fachwissen.
Wenn du Spiele abqualifizierst (was man eigentlich nicht tun sollte), dann rate ich dir, dich mit Tool-Programmierung zu beschäftigen, denn dann kannst du den Nutzwert deines Programms am besten beurteilen; du merkst unmittelbar, was dir gelungen ist und wo noch nachgebessert werden muss. Der Lernwert deines Projektes bemisst sich nicht nach dem Anwendungsbereich, sondern nach der Komplexität, und auch Spiele können eine sehr komplexe innere Struktur haben, beispielsweise Schach, SimCity oder Rollenspiele.
Wenn du etwas programmieren willst, dann sollte es im Idealfall etwas aus einem Bereich sein, der dich wirklich interessiert, was dich also beispielsweise in einem Hobby unterstützt oder dir bei deiner Arbeit mit deinem Computer hilft. Anregungen dazu kannst du aber auch in Programmsammlungen finden, z.B. von einer Shareware-/Freeware-CD. Dort sind oft Programme jedweder Richtung zu finden, die einen inspirieren können, sie in neuer Gestalt nachzuprogrammieren bzw. eine verbesserte Version zu erstellen, die mit zusätzlicher Funktionalität und/oder einer anderen Benutzerführung ausgestattet ist.
Deine Implementierung oft auch dadurch beeinflusst, inwieweit dein Programm fortgeschrittene Algorithmen erfordert. Dieses Wissen lässt sich leichter erlernen als beispielsweise die Berücksichtigung steuerlicher und gesetzlicher Vorschriften.
Die Nutzung fortgeschrittener Technologien solltest du erst in Erwägung ziehen, wenn du dir ein Basiswissen darüber angeeignet hast, wie man ein Projekt plant und realisiert. Deswegen mache als 'Fingerübung' zuerst ein brauchbares Programm, dessen Quellcode du hier veröffentlichen kannst, um aus der entstehenden Diskussion zu erfahren, wo du stilistische Mängel ausmerzen kannst. Sobald du diese Feinheiten kennst und beherrschst, kannst du auch darangehen, ein Folgeversion zu erstellen, die erweiterte Funktionalität mit Hilfe zusätzlicher Technologien zur Verfügung stellt. Oder etwas anderes zu machen.
Die Erstellung eines Dateibrowsers ist eine gute Idee, weil du dir dabei eine breite Palette von Kenntnissen aneignen kannst. Beispiele dafür sind der Umgang mit Dateien, die Erstellung einer leicht zu bedienenden Oberfläche, die Nutzung von XML-Dateien zu Konfigurationszwecken sowie die Verwendung von regulären Ausdrücken für die Suche nach Dateien und Dateiinhalten.
 
Moin Leute,
ich bin gerade dabei C++ zu lernen (komme von Java (ca. 2 Jahre Hobby/Schule) und wollte jetzt ein Projekt schreiben mit Pflichtenheft, Planung usw.,

Pflichtenheft, Lastenheft etc sind Grundlage. Das solltest du beibehalten, sehr gut!

Aber du könntest ja versuchen, einen eigenen Ersatz fürm Windows Explorer zu schreiben.

Jop das könntest echt. Ein Programm mit dem man ein Ordner aussucht, und das nach gewählter Erweiterung (z.B. *.avi) dann die Dateinamen als Liste gibt (per Textdokument oder direkt in die Zwischenablage). Diese Funktion fehlt in Win und wenn man seine Filme, Musik etc als Liste haben will muss man rießen Umwege gehen, nur um Kollegen zu zeigen was man da hat und danach den Film für den Abend zu wählen ;D Da wird sowas sehr sinnvoll.

Später kannst ja noch ganze Ausdrücke erlauben (z.B. "*.avi | *.mpg") und vllt sogar das ganze in Win selbst implementieren bei dem Rechtsklick auf ein Ordner ;)
HF
 
Also ich bedanke mich schonmal für eure Mühe, die Idee einen alternativen Explorer zu erstellen gefällt mir schon sehr gut. Ich denke ich werde im Laufe der Woche mal ein Konzept erstellen.

Zum Thema Spiele: Ich möchte dieses Thema auf keinen Fall abwerten, da ich um Java zu lernen auch schon kleiner Spiele geschrieben habe (z.b. Pong) und sogar in einem größeren Projekt (Flugsimulation: http://cms.simtechnologies.de, bin dort allerdings für die Flugeigenschaften und Modelle zuständig und nicht für die Engine ;)).

Ich melde mich sobald es was neues gibt!

GROSSES DANKESCHÖN AN ALLE DIE MIR GEHOLFEN HABE UND NOCH HELFEN WERDEN

PS: Bin weiterhin offen für eine genauere Spezifikation des Programms oder ganz andere Vorschläge ;)
 
Es wäre hilfreich, wenn man eine Favoritenliste für Verzeichnisse hätte. Und eine optionale Zwei-Fenster-Ansicht wie früher beim Norton Commander wäre auch ganz nützlich.
 
Finde ich auch. Die Punkte "Netzwerklaufwerk verbinden" und "-trennen" müssen vorhanden sein, ich weiß nicht wo man das unter XP sonst noch machen kann. Und mich stören "überladene" Programme. Der Explorer gehört zwar nicht dazu, trotzdem braucht ich eigendlich nie die Icons, und sie nehmen wertvollen Platz für die Dateien weg. Deshalb hätte ich gerne einen Button, der alles außer den Dateienbereich, sich selbst (zum deaktivieren des Modus) und die Titelleiste ausblendet. Das würde warscheinlich auch zum Split-Screen passen. Er könnte z. B. dorthin, wo bei XP das Windows-Logo ist.

Aber es sollte vollen Tastatursupport geben. Also DEL zum löschen, Shift/Controll zum markieren, Controll + X/C/V zum Ausschneiden/Kopieren/Einfügen, F2 zum umbennen, Backspace, um zurückzugehen, F3 um die Suche zu starten und Enter, um die Datei auszuführen/zu öffnen oder in einen Ordner zu wechseln. Außerdem eine Taste (glaube es war der Tabulator), um den Cursor zwischen den beiden Ordneransichten im Split-Modus zu bewegen. Und natürlich soll bei einer Taste mit einem char der Ordner mit dem Anfangsbuchstaben/Zeichen ausgewählt werden.

Zudem würden mich noch eine Leiste reizen, die einerseits einfache Shell-Befehle interpretieren kann (z. B. copy *.avi filme), andererseits noch solche Möglichkeiten, wie Filteransicht bietet.. z. B. wenn so etwas wie "filter a* *.avi" auf der Partition C eingetippt und bestätigt wird springt das Programm zu den (virtuellen) Pfad "C:\, filter a* *.avi", worin nur noch Avi-Dateien, die in der Root von C: liegen und mit a oder A beginnen angezeigt werden.

Ich bin schon sehr gespannt.
 
Klingt gut, du hast schon viele gute Ideen. Um deine Gedanken zu sortieren, empfehle ich dir die Erstellung einer MindMap mit Hilfe von Freemind. Dieses Programm wird auch von der WikiMindMap unterstützt.
 
Hallo,

ich würde dir empfehlen dir für einen groben Überblick über Software-Entwicklung
allgemein ein Buch zum Thema Software-Technik zuzulegen.

Z.Bsp.:
http://www.oreilly.de/catalog/hfsoftwareentwger/
http://www.pearson-studium.de/main/main.asp?page=bookdetails&ProductID=168579

Damit kommt man einen guten Überblick über denn allgemeinen Softwareentwicklungsprozess
und mögliche Ausprägungen ( Agile Software Entwicklung,Wasserfall, RUP, V-Model XT, etc.).

Als Hobbyprojekt bietet es sich oftmals an bestehende Software im kleinen nachzuprogrammieren,
wie meine Vor-Poster bereits angemerkt hatten. Hier sollte man sich natürlich nicht an
Tabellenkalkulationen oder Textverarbeitung orientieren sondern eher mit einfachen Dingen beginnen.

Wie wärs denn Beispielsweise mit einer kleinen Kontaktverwaltung
(Kontakt anlegen, ändern, löschen, suchen, in Datenbank speichern / exportieren / importieren, mit GUI)
oder einer Terminverwaltung oder einem Timetracker oder oder oder...

Wichtig ist immer erstmal klein anzufangen und sich nicht gleich selbst mit zu großen
Projekten zu überfordern. Dann machst nämlich sehr schnell keinen Spaß mehr!

Außerdem kann ich nur immer wieder empfehlen bei so vielen Opensource-Anwendungen wie möglich
mal einen Blick in den Quellcode zu werfen. Dabei lernt man immer eine ganze Menge über
Codeorganisation, Codestruktur, Sprach Tipps/Tricks, neue APIs, Dokumentation und und und...

Gruß Tom
 
Hallo Thomas,

dein Downsizing in allen Ehren, aber ich glaube, du würdest ihn damit unterfordern. KDG92 hat schon Programmiererfahrung und seine eigentliche Intention ist, zu lernen, wie man komplexe Projekte handhabt. Eine Anwendung nach deinem Vorschlag ist relativ einfach und entartet ziemlich schnell zu purer Fleißarbeit. Der in der Diskussion befindliche Dateibrowser gibt ihm aber die Möglichkeit, den Umgang mit vielen Vorgehensweisen zu üben und zusätzliche Technologien bei späteren Erweiterungen hinzuzufügen. Auch eine Datenbankanbindung ist denkbar, er könnte beispielsweise anbieten, die Namen und Pfade bestimmter Dateien in einer Datenbank abzulegen und mit Suchworten zu verknüpfen, um diese schnell wiederzufinden.
Deine Literaturhinweise dagegen sind wirklich lesenswert, und deine Empfehlung, Code von OpenSource-Projekten zu studieren, ist eine gute Idee, die ich auch gerne befürworte.
 
Zurück