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
}//mainvoid 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: boolbool 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: boolbool 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: boolDanke 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