Idee für ein "mini"-Projekt zur Vertiefung der C++ Kenntnisse



  • Hallo,

    hab mich mitterlweile etwas mit C++ beschäftig und diverse Lektüre dazu gelesen. Hab zur Vertiefung jetzt schon eine kleine Konsolenanwendungen geschrieben die als kleines Adressbuch mit MySQL Datenbank im Hintergrund läuft.

    Nun suche ich aber etwas anderers, eine Idee für eine kleine Anwendung. Ich tue mich sehr schwer mir etwas auszudenken das ich auch schaffe. Irgendwie sind Dinge wie MP3-player o.ä. doch etwas kompliziert und übersteigen mein verständis, zudem ist es schwer dazu etwas zu finden, da man mit mp3 als suchwort bei irgendwelchen download oder warez seiten landet.

    Jemand ne Idee was man machen könnte um OOP mit C++ etwas zu vertiefen. Irgendas halbwegs sinnvolles?!?



  • Programmiere dir einen Taschenrechner in dem du Aufgaben wie:

    (-1+(2-3)*4)+x/3
    

    eingeben kannst und der sie auch richtig ausrechnet.



  • es gibt sehr viele aufgaben (z.b Mathematik), die mit OOP sehr schön gelöst werden können.

    du könntest auch eine art datenbank ertellen, die verschiedene modifikationen zulässt, auch dies ist mit OOP sehr angenehm.

    eigentlich kannst du ziemlich alles mit OOP "vereinfachen". wenn du z.b ein programm schreibst, dass nach einem dateinamen fragt und diese datei dann in der konsole ausgibt kannst du eine klasse "datei" machen, welche die verschiedenen methoden (lesen, öffnen, usw) enthält.

    grs
    grave



  • Chris++ schrieb:

    Programmiere dir einen Taschenrechner in dem du Aufgaben wie:

    (-1+(2-3)*4)+x/3
    

    eingeben kannst und der sie auch richtig ausrechnet.

    hm....hab mal so drüber nachgedacht, aber ehrlich gesagt steh ich was auf dem schlauch wie ich das OOP aufteilen soll. ich würd daraus ein klasse machen und dann einfach die operatoren machen.

    das schwerste scheint mir an der sache zu sein, den string auseinander zu fummeln?! oder sehe ich das jetzt falsch.



  • Das ist ganz einfach, hier ein Beispielcode:

    #include <cstdio>
    
    #include <iostream>
    
    using namespace std;
    
    long ausdruck(char &);
    
    long summand(char &);
    
    long faktor(char &);
    
    long zahl(char &);
    
    long ausdruck(char & c)
    
    {
    
    long a;
    
    if(c == '-')
    
    {
    
    cin.get(c);
    
    a = -summand(c);
    
    }
    
    else
    
    {
    
    if(c == '+')
    
    cin.get(c);
    
    a = summand(c);
    
    }
    
    while(c == '+' || c == '-')
    
    if(c == '+')
    
    {
    
    cin.get(c);
    
    a += summand(c);
    
    }
    
    else
    
    {
    
    cin.get(c);
    
    a -= summand(c);
    
    }
    
    return a;
    
    }
    
    long summand(char & c)
    
    {
    
    long s = faktor(c);
    
    while(c == '*' || c == '/')
    
    if(c == '*')
    
    {
    
    cin.get(c);
    
    s *= faktor(c);
    
    }
    
    else
    
    {
    
    cin.get(c);
    
    s /= faktor(c);
    
    }
    
    return s;
    
    }
    
    long faktor(char & c)
    
    {
    
    long f;
    
    if(c == '(')
    
    {
    
    cin.get(c);
    
    f = ausdruck(c);
    
    if(c != ')')
    
    cout << "Rechte Klammer fehlt!\n";
    
    else
    
    cin.get(c);
    
    }
    
    else f = zahl(c);
    
    return f;
    
    }
    
    long zahl(char & c)
    
    {
    
    long z = 0;
    
    while(isdigit(c))
    
    {
    
    z = 10 * z + static_cast<long>(c - '0');
    
    cin.get(c);
    
    }
    
    return z;
    
    }
    
    int main(int argc, char *argv[])
    
    {
    
    char ch;
    
    while(true)
    
    {
    
    cout << "\n>>";
    
    cin.get(ch);
    
    if(ch != 'e')
    
    cout << ausdruck(ch);
    
    else break;
    
    }
    
    }
    

    Grüße, mikey 😉



  • http://projecteuler.net

    @mikey
    Bitte formatiere deinen Code vernünftig!



  • unkreativ07 schrieb:

    zudem ist es schwer dazu etwas zu finden, da man mit mp3 als suchwort bei irgendwelchen download oder warez seiten landet.

    wie wärs mit einem programm das googlen trainiert 💡





  • Bitte formatiere deinen Code vernünftig!

    Sry, der Code war vernünftig formatiert, aber nach dem Einfügen sind wohl die Einrückungen verloren gegangen 😞

    Aber ist wohl eine Selbstverständlichkeit 😉

    mikey.


Log in to reply