[C++] - Lernsoftware

Noeden

Erfahrenes Mitglied
Hallo :)

ich würde gerne eine kleine Lernsoftware schreiben zum selber lernen und als Archiv.

Was soll die können:
Mir meinen Text anzeigen.
Die Fachwörter die Definitionene haben unterstreichen, wenn man draufklickt soll die Definition in einem anderen Teil des Fensters angezeigt werden.
Mit der Lernsoftware soll man verschlüsselte Datenbanken für selbige erstellen und auslesen können.

Und eine Abfrage soll möglich sein (Karteikartenmäßig, bei der man dann die Frage gestellt bekommt und dann "Lösungstags" eintippen kann. Der Abgleich soll automatisch sein.

Habt ihr Ideen?
Zum einen, wie man diese "Links" zu den Definitionen realisieren kann.
Zum anderen wie man die Datenbank erstellt und ausliest.
(Habe einen C++ Workshop gemacht, aber nie wurden Dateien ein und ausgelesen. Verschlüsselung ist dann sicher auch noch so ne Sache, denn wenn die Datenbanken einfach nur txt Dateien sind und ich will die anderen geben ist das witzlos ;))

DANKESCHÖN :)
 
Hi Noeden,

darf ich fragen mit welchem Framework du deine Oberfläche realisieren möchtest?

Zum einen, wie man diese "Links" zu den Definitionen realisieren kann.

Bei einigen GUI-Frameworks werden bei Klick auf einem Link in Text-Boxen ein Event/Signal ausgelöst, hier könnte man dann den aktivierten Link auslesen dann dazu die Informationen anzeigen.

Zum anderen wie man die Datenbank erstellt und ausliest.

Für die in deiner Schilderung benötigten Zwecke reicht eine lokale Datenbank ohne einen SQL-Server. Hier habe ich bereits mit SQLite sehr gute erfahrung gemacht.

Um Datenbanken erstellen, Tabellen/Views etc. zu erstellen, Abfragen durchzuführen und um einige administative Aufgaben durchzuführen nutze ich die kostenlose Personal Edition von SQLite Expert. Es gibt auf z. B. für den Firefox ein Addon mit dem man die Datenbanken administrieren kann, was man hier benutzt ist einfach nur Geschmackssache.

Verschlüsselung ist dann sicher auch noch so ne Sache, denn wenn die Datenbanken einfach nur txt Dateien sind und ich will die anderen geben ist das witzlos

Wieso ist es witzlos die Daten nicht verschlüsselt zu haben, sind deine Definitionen so geheim? Bei Verschlüsselungen von Datenbanken gibt es eh so einige Probleme z. B. die Datenbankdatei ist verschlüsselt, dein Programm muss aber um an die Daten zu kommen diese Datei entschlüsseln. Dabei wird höchstwahrscheinlich diese (wenn es eine kleine DB ist) in dem Arbeitsspeicher gehalten. Dabei könnte ein interessierter Anwender dann den Arbeitsspeicher auslesen und dann an die Daten drankommen.

Desweiteren muss deine Anwendung ja das Passwort zur Entschlüsselung kennen (ein kompiliert) und da man die Anwendungen bei Bedarf auch wieder Dekompilieren kann, sieht der Angreifer hier das Passwort.

Du solltest überlegen ob sich dieser Aufwand überhaupt lohnt. Ich habe z. B. die Dateiendung der Datenbank einfach von .sqlite auf .dat geändert. Ein komplett ahnungsloser Anwender wird so einige Zeit damit verbrauchen herauszufinden mit welchem Programm er die Datei öffnen kann, einem erfahrenen/profi Anwender wird man damit aber nicht aufhalten. Bei mir spielt es keine Rolle, da die Zielgruppe meiner Software ein "normal"-Benutzer war und da hat es z. B. gut funktioniert^^

Gruß
RudolfG
 
Cool, danke erstmal für die Antwort :)
SQLite sieht echt super aus. Habe gerade mal auf der Seite geguckt. So wie ich das verstanden habe, hat das keine Lizenz und somit ich auch keine Probleme. Das ist "nur" eine Bibliothek, die ich in meinem C++ Code verwenden kann? Also brauche ich keinen extra Editor oder? (Benutze Code::Blocks).
Ich nehme an, eine deutsche Tutorialseite gibt es nicht oder? Mein Englisch ist was holprig, naja dann kämpfe ich mich mal durch, danke :)

Ach und mein Programm gegen Leute zu schützen, die Ahnung haben, ist viel zu aufwändig, das mit der Dateiendung klingt super :-D.
Ich wollte wxwidgets als GUI nehmen. Habe mich da aber noch nicht eingelesen, weil ich den C++ Code erstmal relativ weit bringen wollte.
 
Zurück