Kommentare schreiben



  • Hallo.
    Auf Grund meines Unfalls, habe ich viel vom Stoff für Informatik verpasst und brauche Hilfe. Zwecks Übung, soll ich beim follgendem Programm die Funktionen kommentieren.
    Habe zwar KOmmentare geschrieben, bin mir aber sehr unsicher, was die Korrektheit angeht. Bitte helft mir.

    Hier ist der code:

    #pragma once
    #include <iostream>
    #include <string>
    #include <iomanip>
    #include <cstdlib>
    #include <vector>
    #include <fstream>

    using namespace std;

    struct widerstand
    {
    int dim;
    string widBauForm;
    double widWert;
    }; //struktur

    //Funktionsprototypen
    void ausgabe(vector<widerstand> widDaten);
    bool inDateiSchreiben(vector<widerstand> widDaten);
    bool ausDateiLesen(vector<widerstand> &widDaten);

    int main(void)
    {
    //TODO…
    bool exist = false;
    vector<widerstand> widDaten(0);
    widerstand ds; //ein Widerstandsdatensatz zum späteren Speichern in widDaten
    char chr, puffer[10];
    std::locale::global(std::locale("German_germany"));
    while (true)
    {
    cout << "\n\n Was wollen Sie tun?";
    cout << "\n Neuen Widerstand eingeben (n/N)";
    cout << "\n Widerstands-Datensätze ausgeben (a/A)";
    cout << "\n Datensätze speichern (s/S)";
    cout << "\n Programm beenden (b/B)" << endl;
    cout << "\n\n ? ";
    cin >> chr;

    switch (tolower(chr))
    {
    case 'n':
    system("cls");
    cout << "\n\n Eingabe eines neuen Datensatzes. ";

    //Widerstands-Bauform
    cout << "\n Widerstands-Bauform: ";
    cin >> ds.widBauForm;
    //Widerstands-Wert
    do
    {
    cout << "\n Widerstands-Wert ";
    cout << "(Dezimaltrennzeichen ist das Komma!): ";
    cin >> puffer;
    //Dezimaltrennzeichen für atof() ist das Dezimalkomma!
    ds.widWert = atof(puffer);
    } while ( ds.widWert<=0);
    //Dimension des Widerstandswertes
    do
    {
    cout << "\n Widerstandsdimension: ";
    cout << "\n\t MiliOhm --> 1";
    cout << "\n\t Ohm --> 2";
    cout << "\n\t KiloOhm --> 3";
    cout << "\n\t MegaOhm --> 4";
    cout << "\n\n\t --> ";
    cin >> puffer;
    ds.dim = atoi(puffer);
    } while (ds.dim < 1 || ds.dim > 4);
    widDaten.push_back(ds);
    if (widDaten.size() != 0)
    {
    ausgabe(widDaten);
    }
    break;
    case 'a':
    system("cls");
    ausgabe(widDaten);
    break;
    case 's':
    system("cls");
    if (!inDateiSchreiben(widDaten))
    {
    exist = false;
    cerr << "\n Datei konnte zum Speichern nicht geöffnet werden!\n";
    }
    else
    {
    exist = true;
    cout << "\n Daten erfolgreich gesichert.\n\n";
    ausgabe(widDaten);
    }
    break;
    case 'b': return 0;
    }//switch
    }//while
    }//main

    void ausgabe(vector<widerstand> widDaten)
    {
    string dim;
    if (widDaten.size() > 0) //'size()' - Liefert die Anzahl der Elemente eines Vektors
    {
    cout << setw(15) << right << "Widerstandsbauform\tWid.-Wert\tEinheit\t\n\n";
    for (unsigned int i = 0; i < widDaten.size(); i++)
    {
    switch (widDaten[i].dim)
    {
    case 1: dim = "Mili-Ohm"; break;
    case 2: dim = "Ohm"; break;
    case 3: dim = "Kilo-Ohm"; break;
    case 4: dim = "Mega-Ohm"; break;
    }
    cout << setw(18) << right << widDaten[i].widBauForm;
    cout << "\t" << setw(9) << right << fixed << setprecision(3) << widDaten[i].widWert;
    cout << "\t" << setw(7) << right << dim << "\n";
    }
    }
    }

    // @param vector<widerstand> widDaten: zu füllender Vector
    // @param widDaten.size() > 0: Liefert die Anzahl der Elemente eines Vektors
    // @param widDaten[i].dim: Greift auf die im Feld gespeicherten Daten (c.b.v)
    // result wert: bool

    bool inDateiSchreiben(vector<widerstand> widDaten)
    {
    bool ok = true;
    ofstream ziel;
    ziel.open("Widerstaende.txt", ios::out);
    if (ziel.is_open())
    {
    for (unsigned i = 0; i < widDaten.size(); i++)
    {
    ziel << widDaten[i].widBauForm << widDaten[i].widWert << widDaten[i].dim;
    }
    ziel.close();
    }
    else
    {
    ok = false;
    }
    return ok;
    }
    // @param "Widerstaende.txt", ios::out: öffnet die txt-Datei für die Ausgabe
    // @param widDaten[i].widBauForm: hier wird die Bauform gespeicher
    // @param widDaten[i].widWert: hier wird die Widerstandsdimension gespeichert (c.b.v.)
    // @param ziel.close(): gibt die Werte Frei
    // result: bool

    bool ausDateiLesen(vector<widerstand> &widDaten)
    {
    bool ok = true;
    ifstream quelle;
    widerstand wd;

    quelle.open("Widerstaende.txt", ios::in);
    if (quelle.is_open())
    {
    quelle >> wd.widBauForm >> wd.widWert >> wd.dim;
    widDaten.push_back(wd);
    }
    else
    {
    ok = false;
    }
    return ok;
    }

    // @param "Widerstaende.txt", ios:🇮🇳 öffnet die txt-Datei für die Eingabe
    // result: bool

    Danke für eure Mühe!



  • https://www.c-plusplus.net/forum/304133 Lies dir bitte durch,wie man Code richtig postet. Sonst ist dein Post sehr unübersichtlich



  • Programm ist der Horror, Formatierung ist der Horror.

    Brauchst dich gar nicht für unsere Mühe bedanken, weil kaum Einer sich die Mühe machen wird das zu dechiffrieren.

    Hab mir um 6 morgens verschiedene Fragmente angesehen und es lief mir ein kalter Schauer über den Rücken (und vorne rum ebenfalls).



  • Sooo ... erstmal den Code etwas übersichtlicher formatieren

    #pragma once
    #include <iostream>
    #include <string>
    #include <iomanip>
    #include <cstdlib>
    #include <vector>
    #include <fstream>
    
    using namespace std;
    
    struct widerstand
    {
      int dim;
      string widBauForm;
      double widWert;
    }; //struktur
    
    //Funktionsprototypen
    void ausgabe(vector<widerstand> widDaten);
    bool inDateiSchreiben(vector<widerstand> widDaten);
    bool ausDateiLesen(vector<widerstand> &widDaten);
    
    int main(void)
    {
      //TODO…
      bool exist = false;
      vector<widerstand> widDaten(0);
      widerstand ds; //ein Widerstandsdatensatz zum späteren Speichern in widDaten
      char chr, puffer[10];
      std::locale::global(std::locale("German_germany"));
      while (true)
      {
        cout << "\n\n Was wollen Sie tun?";
        cout << "\n Neuen Widerstand eingeben (n/N)";
        cout << "\n Widerstands-Datensätze ausgeben (a/A)";
        cout << "\n Datensätze speichern (s/S)";
        cout << "\n Programm beenden (b/B)" << endl;
        cout << "\n\n ? ";
        cin >> chr;
    
        switch (tolower(chr))
        {
          case 'n':
          system("cls");
          cout << "\n\n Eingabe eines neuen Datensatzes. ";
    
          //Widerstands-Bauform
          cout << "\n Widerstands-Bauform: ";
          cin >> ds.widBauForm;
          //Widerstands-Wert
          do
          {
            cout << "\n Widerstands-Wert ";
            cout << "(Dezimaltrennzeichen ist das Komma!): ";
            cin >> puffer;
            //Dezimaltrennzeichen für atof() ist das Dezimalkomma!
            ds.widWert = atof(puffer);
          } while ( ds.widWert<=0);
          //Dimension des Widerstandswertes
          do
          {
          cout << "\n Widerstandsdimension: ";
          cout << "\n\t MiliOhm --> 1";
          cout << "\n\t Ohm --> 2";
          cout << "\n\t KiloOhm --> 3";
          cout << "\n\t MegaOhm --> 4";
          cout << "\n\n\t --> ";
          cin >> puffer;
          ds.dim = atoi(puffer);
        } while (ds.dim < 1 || ds.dim > 4);
        widDaten.push_back(ds);
        if (widDaten.size() != 0)
        {
          ausgabe(widDaten);
        }
        break;
        case 'a':
          system("cls");
          ausgabe(widDaten);
          break;
        case 's':
          system("cls");
          if (!inDateiSchreiben(widDaten))
          {
            exist = false;
            cerr << "\n Datei konnte zum Speichern nicht geöffnet werden!\n";
          }
          else
          {
            exist = true;
            cout << "\n Daten erfolgreich gesichert.\n\n";
            ausgabe(widDaten);
          }
          break;
        case 'b': 
          return 0;
        }//switch
      }//while
    }//main
    
    void ausgabe(vector<widerstand> widDaten)
    {
      string dim;
      if (widDaten.size() > 0) //'size()' - Liefert die Anzahl der Elemente eines Vektors
      {
        cout << setw(15) << right << "Widerstandsbauform\tWid.-Wert\tEinheit\t\n\n";
        for (unsigned int i = 0; i < widDaten.size(); i++)
        {
          switch (widDaten[i].dim)
          {
            case 1: dim = "Mili-Ohm"; break;
            case 2: dim = "Ohm"; break;
            case 3: dim = "Kilo-Ohm"; break;
            case 4: dim = "Mega-Ohm"; break;
          }
          cout << setw(18) << right << widDaten[i].widBauForm;
          cout << "\t" << setw(9) << right << fixed << setprecision(3) << widDaten[i].widWert;
          cout << "\t" << setw(7) << right << dim << "\n";
        }
      }
    }
    
    // @param vector<widerstand> widDaten: zu füllender Vector
    // @param widDaten.size() > 0: Liefert die Anzahl der Elemente eines Vektors
    // @param widDaten[i].dim: Greift auf die im Feld gespeicherten Daten (c.b.v)
    // result wert: bool
    
    bool inDateiSchreiben(vector<widerstand> widDaten)
    {
      bool ok = true;
      ofstream ziel;
      ziel.open("Widerstaende.txt", ios::out);
      if (ziel.is_open())
      {
        for (unsigned i = 0; i < widDaten.size(); i++)
        {
          ziel << widDaten[i].widBauForm << widDaten[i].widWert << widDaten[i].dim;
        }
        ziel.close();
      }
      else
      {
        ok = false;
      }
      return ok;
    }
    // @param "Widerstaende.txt", ios::out: öffnet die txt-Datei für die Ausgabe
    // @param widDaten[i].widBauForm: hier wird die Bauform gespeicher
    // @param widDaten[i].widWert: hier wird die Widerstandsdimension gespeichert (c.b.v.)
    // @param ziel.close(): gibt die Werte Frei
    // result: bool
    
    bool ausDateiLesen(vector<widerstand> &widDaten)
    {
      bool ok = true;
      ifstream quelle;
      widerstand wd;
    
      quelle.open("Widerstaende.txt", ios::in);
      if (quelle.is_open())
      {
        quelle >> wd.widBauForm >> wd.widWert >> wd.dim;
        widDaten.push_back(wd);
      }
      else
      {
        ok = false;
      }
      return ok;
    }
    
    // @param "Widerstaende.txt", ios::in: öffnet die txt-Datei für die Eingabe
    // result: bool
    


  • Manche sind sinnvoll andere erinnern mich an:

    "The most useless comment"

    Display ×display; // Display
    


  • if (widDaten.size() > 0) //'size()' - Liefert die Anzahl der Elemente eines Vektors
    

    Ach was? Gut, daß ich das jetzt auch weiß.

    Ist die Anforderung/Erwartung, die STL zu kommentieren/erklären oder dein Programm?

    ..says the grumpy old man


Anmelden zum Antworten