Wir lernen jetzt Strukturen in C++ kennen und dieser Artikel zeigt ein erstes kleines Beispiel. Es wird aber auch das Vektorprogramm weiterentwickelt…


Strukturen in C++:

#include <iostream>
#include <string>

struct konto
{
std::string kundenname;
int kontonummer;
double kontostand;
int kredit;
};

int main()
{
konto meinKonto;
meinKonto.kundenname = "Hans Mustermann";
meinKonto.kontonummer = 1234567 ;
meinKonto.kontostand = 5000;
meinKonto.kredit = 1000;

std::cout 
<< "Konto von "
<< meinKonto.kundenname
<< std::endl
<< std::endl;
std::cout
<< "\tKontonummer:             "
<< meinKonto.kontonummer
<< std::endl;
std::cout
<< "\tKontostand:              "
<< meinKonto.kontostand
<< std::endl;
std::cout
<< "\tUeberziehungskredit:      "
<< meinKonto.kredit
<< std::endl;
std::cout
<< std::endl;

return 0;
}

Das Vektorprogramm vom 11.09.2025:

Das erste Vektorprogramm vom 11.09.2025 erzeugte wirklich nur das Menü und nun wird es um die notwendigen mathematischen Formeln ergänzt.

#include <iostream>
#include <cmath>
#include <cstdio>

struct vektor
{
double x;
double y;
};

// Die Funktionen

vektor v_einlesen()
{
vektor ergebnis;

std::cout << std::endl;
std::cout << " x: ";
std::cin >> ergebnis.x;
std::cout << " y: ";
std::cin >> ergebnis.y;
std::cout << std::endl;

return ergebnis;
}

vektor v_addieren(vektor v1, vektor v2)
{
vektor ergebnis;

ergebnis.x = v1.x + v2.x;
ergebnis.y = v1.y + v2.y;

return ergebnis;
}

vektor v_subtrahieren(vektor v1, vektor v2)
{
vektor ergebnis;
ergebnis.x = v1.x - v2.x;
ergebnis.y = v1.y - v2.y;

return ergebnis;
}

vektor v_skalarprodukt(vektor v, double n)
{
vektor ergebnis;

ergebnis.x = n*v.x;
ergebnis.y = n*v.y;

return ergebnis;
}

double v_vektorprodukt(vektor v1, vektor v2)
{
double ergebnis;
ergebnis = (v1.x * v2.y) - (v1.y * v2.y);

return fabs(ergebnis);
}

double v_laenge(vektor v)
{
double ergebnis;

ergebnis = sqrt(v.x*v.x + v.y*v.y);

return ergebnis;
}

void v_ausgeben(vektor v)
{
std::cout << "(" << v.x << "," << v.y <<")";
}

int main ()
{
vektor vekt1;
vektor vekt2;
double faktor;
vektor ergebnis;
double betrag;

vekt1.x = 0;
vekt1.y = 0;

int befehl = -1;

while(befehl != 0)
{
std::cout << std::endl;
std::cout << " Menue " << std::endl;
std::cout << " Vektoren eingeben	<1>" << std::endl;
std::cout << " Vektoren addieren	<2>" << std::endl;
std::cout << " Vektoren subtrahieren	<3>" << std::endl;
std::cout << " Skalarprodukt		<4>" << std::endl;
std::cout << " Vektorprodukt		<5>" << std::endl;
std::cout << " Laenge berechnen	<6>" << std::endl;
std::cout << " Programm beenden	<0>" << std::endl;

std::cout << std::endl;
std::cout << " Ihre Eingabe : ";
std::cin >> befehl;

// Schritt 6 switch-Anweisung

switch(befehl)
{
case 0: 
std::cout << std::endl;
std::cout << "Programm beenden" <<std::endl;
break;

case 1: 
std::cout << std::endl;
std::cout << "Vektor eingeben" <<std::endl;
vekt1 = v_einlesen();
break;

case 2: 
std::cout << std::endl;
std::cout << "Vektor addieren" <<std::endl;
std::cout << " 2. Vektor eingeben" << std::endl;
std::cout << "   x: ";
std::cin >> vekt2.x;
std::cout << "   y: ";
std::cin >> vekt2.y;
std::cout << std::endl;

ergebnis = v_addieren(vekt1, vekt2);
v_ausgeben(vekt1);
std::cout << " + ";
v_ausgeben(vekt2);
std::cout << " = ";
v_ausgeben(ergebnis);
std::cout << std::endl;
break;

case 3: 
std::cout << std::endl;
std::cout << "Vektor subtrahieren" <<std::endl;
break;

case 4: 
std::cout << std::endl;
std::cout << "Skalarprodukt" <<std::endl;
break;

case 5: 
std::cout << std::endl;
std::cout << "Vektorprodukt" <<std::endl;
break;

case 6: 
std::cout << std::endl;
std::cout << "Laenge des Vektors" <<std::endl;
break;

default:
std::cout << std::endl;
std::cout << " Ungueltige Eingabe" << std::endl;
break;

} // Ende der switch-Anweisung

// Schritt 7: Warten bis Anwender die Return-Taste drückt
fflush(stdin);
getchar();
} // Ende der while-Schleife

return 0;
}

Der Code ist zwar noch nicht vollständig und muss in der switch-Anweisung noch ergänzt werden, doch trotzdem sollte der Code bereits lauffähig sein.

Viel wichtiger an diesem Code ist aber: Das Programm könnte die Grundlage für viele kleine eigene Codes sein, bei denen sich das Terminal nicht automatisch schließt.

Von Torsten