<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das?]]></title><description><![CDATA[<p>Hi, bin c++ Anfänger und habe eine Aufgabe ein Programm so zu schreiben, das es sowohl den Benutzernamen erkennt als auch den Pin! und das ganze soll 2x passieren, nach der dritten fehlerhaften Eingabe soll das Programm geschlossen werden. Aber es läuft nicht habe mehrere Sachen versucht es läuft aber nicht. Zudem habe ich Probleme die Nutzer zu unterscheiden. hat jemand eine Idee ohne es in Klasse zu packen.</p>
<p>[//Die Datenbank</p>
<p>#include &lt;iostream.h&gt;<br />
#include &lt;fstream.h&gt;<br />
int main()<br />
{<br />
int Punkte[69],i,Aufgabenanzahl[69];<br />
char Name[69][100];<br />
char Pin[69][12];<br />
//int Lehrer[69];<br />
char Anwender[69][20];<br />
ofstream Abspeichern;<br />
for(i=1;i&lt;=2;i++)<br />
{<br />
Punkte[i]=0;<br />
Aufgabenanzahl[i]=0;<br />
cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Namen ein: &quot;;<br />
cin &gt;&gt;Name[i];<br />
cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Pin ein: &quot;;<br />
cin &gt;&gt;Pin[i];<br />
cout&lt;&lt; &quot;Ist &quot;&lt;&lt;i&lt;&lt;&quot; ein Lehrer oder Schüler?&quot;; //(wenn ja gib eine 1 ein, wenn nicht eine 0)<br />
cin &gt;&gt;Anwender[i];<br />
/<em>if( Eingabe[i] =='j' ) // Bedingung<br />
{<br />
Lehrer[i]=1; // wahr-Block<br />
}<br />
else<br />
{<br />
Lehrer[i]=0; // falsch-Block<br />
}</em>/<br />
}<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
return 0;<br />
}</p>
<p>// Die Funktion<br />
bool pineingabe(char richtigepin[12])<br />
{ char eingabepin[12];<br />
int Versuch,i;<br />
char Pin [69][12];<br />
!strcmp(eingabepin,Pin[i]);<br />
bool ergebnis;<br />
Versuch=0;<br />
top:<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe</p>
<p>if( Versuch &lt;2 ) // Bedingung<br />
{<br />
Versuch++;</p>
<p>if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
cout&lt;&lt; &quot; Vielen Dank für Ihre Anmeldung.&quot;;<br />
sleep(2);<br />
clrscr();<br />
}<br />
else<br />
{//ergebnis= false;<br />
cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;<br />
sleep(2);<br />
clrscr();<br />
goto top;<br />
}</p>
<p>}<br />
else<br />
{<br />
cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;<br />
sleep(2);<br />
ergebnis = false;<br />
//exit(0);<br />
// falsch-Block<br />
}</p>
<p>return (ergebnis);<br />
}</p>
<p>//Das Programm<br />
#include &lt;iostream.h&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;fstream.h&gt;<br />
#include &lt;dos.h&gt;<br />
#include &quot;Funktionpin.cpp&quot;</p>
<p>/*bool pineingabe(int richtigepin)<br />
{ int eingabepin;<br />
bool ergebnis;<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe<br />
if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
}<br />
else<br />
{ergebnis= false;<br />
}<br />
return (ergebnis);<br />
} */</p>
<p>int main()<br />
{<br />
int Punkte[69],Aufgabenanzahl[69],i,Auswahl;<br />
char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];<br />
char Pin[69][12],Anmeldepin[12],eingabepin[12];<br />
//string Ausgabepinname=&quot;unbekannte Pin&quot;;<br />
//Variablen nur zum Rechnen:<br />
int zahl1, zahl2, ergebnis, loesung,n;<br />
char wiederholung, Ende;<br />
string note;<br />
int prozente;</p>
<p>// Hier beginnt das Einlesen der Daten.<br />
ifstream Einlesen;<br />
Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);<br />
Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Einlesen.close();<br />
//Hier endet das Einlesen der Daten.</p>
<p>cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe<br />
//Hier beginnt das Anmelden.<br />
gotoxy (30,12);</p>
<p>cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;<br />
cin &gt;&gt; Anmeldename;<br />
//cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;<br />
//cin &gt;&gt; Anmeldepin; //clrscr ();</p>
<p>for(i=1;i&lt;=69;i++)<br />
{</p>
<p>if(!strcmp(Anmeldename,Name[i]) )<br />
{</p>
<p>cout&lt;&lt; &quot;Anmeldename gefunden\n&quot;;<br />
bool pin;<br />
pin=pineingabe(pin);<br />
if( pin==true ) // Bedingung<br />
{<br />
cout&lt;&lt;&quot;Programm läuft!&quot;; // wahr-Block<br />
}<br />
n=i;<br />
}</p>
<p>}</p>
<p>/<em>if( Ausgabepinname != &quot;unbekannte Pin&quot; )<br />
{ cout &lt;&lt;&quot; Name: &quot; &lt;&lt; Ausgabepinname;<br />
}<br />
else<br />
{ cout &lt;&lt;&quot; Fehler: &quot; &lt;&lt; Ausgabepinname;<br />
}</em>/</p>
<p>//Definition Lehrer / Schüler<br />
//xy:<br />
//if( Lehrer == Anwender[i] ) // Bedingung<br />
//{</p>
<p>cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);<br />
cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü<br />
sleep (3); // wahr-Block<br />
do<br />
{<br />
cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe<br />
cin &gt;&gt; Auswahl; // Eingabe<br />
switch( Auswahl ) // Auswahlausdruck<br />
{ case 1 : break; // Fall 1<br />
case 2 : break; // Fall 2<br />
case 3 : break; // Fall n<br />
case 4 : for( i=1 ;i&lt;=69 ;i++ )// Aus Aufgaeb 710<br />
{<br />
cout&lt;&lt; i &lt;&lt;&quot;Name :\t&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :\t&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot; Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;<br />
// Schleifenkörper-Block<br />
}</p>
<p>break; // Fall 1<br />
case 5 : break; // Fall 2<br />
case 6 : cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;<br />
cin&gt;&gt; Ende;<br />
break; // Fall n<br />
default: ; cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;<br />
Ende = 'n'; // sonst-Fall<br />
}</p>
<p>} while(Ende != 'j' ); // Solange-Bedingung<br />
/*}<br />
else<br />
{ // falsch-Block</p>
<p>//Hier beginnt das Rechenprogramm.<br />
randomize();<br />
Aufgabenanzahl[n];<br />
do<br />
{</p>
<p>if (Aufgabenanzahl[n]&lt;5)<br />
{<br />
clrscr ();<br />
gotoxy (20,10);<br />
Aufgabenanzahl[n]++;<br />
zahl1 = random(100);<br />
zahl2 = random(100);<br />
ergebnis = zahl1 + zahl2;<br />
cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt; Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;<br />
gotoxy (25,15);<br />
cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe<br />
//clrscr ();<br />
cin &gt;&gt; loesung;<br />
if( loesung == ergebnis ) // Bedingung<br />
{<br />
clrscr ();<br />
gotoxy (25,11);<br />
cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;; // wahr-Block<br />
Punkte[n] = Punkte[n] + 1;<br />
cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);<br />
}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2); // falsch-Block<br />
}<br />
clrscr(); gotoxy (25,11);<br />
if(Aufgabenanzahl[n]&lt;5 ) // Bedingung<br />
{<br />
cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;<br />
cin &gt;&gt; wiederholung; // wahr-Block<br />
}<br />
else<br />
{<br />
wiederholung = 'n';<br />
cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;; // falsch-Block<br />
}</p>
<p>}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
wiederholung = 'n';<br />
cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl; // 100 Aufgaben sind erreicht<br />
}<br />
}<br />
while (wiederholung == 'j');<br />
cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;<br />
//<em>cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte &lt;&lt; endl &lt;&lt;endl;<br />
prozente = Punkte[n]<em>100/Aufgabenanzahl[n];<br />
cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;<br />
if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}<br />
else<br />
{ if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}<br />
else<br />
{if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}<br />
else<br />
{if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}<br />
else<br />
{ if(prozente &lt; 95 ){note = &quot;gut&quot;;}<br />
else { note = &quot;sehr gut&quot;;}<br />
}<br />
}<br />
}<br />
}<br />
cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;<br />
getchar();<br />
}</em>/<br />
ofstream Abspeichern;<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
clrscr (); gotoxy (25,10);<br />
cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe<br />
sleep (2);<br />
clrscr ();<br />
gotoxy (25,12);<br />
cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe<br />
sleep (2);<br />
//getchar();<br />
return 0;<br />
}<br />
]</p>
<p>zum Compilieren nehme ich den CPPTrain2<br />
Habe auch noch eine 2. Variante Allerdings sieht die nicht viel anders aus.<br />
#include &lt;iostream.h&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;fstream.h&gt;<br />
#include &lt;dos.h&gt;<br />
#include &quot;Funktionpin.cpp&quot;</p>
<p>/*bool pineingabe(int richtigepin)<br />
{ int eingabepin;<br />
bool ergebnis;<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe<br />
if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
}<br />
else<br />
{ergebnis= false;<br />
}<br />
return (ergebnis);<br />
} */</p>
<p>int main()<br />
{<br />
int Punkte[69],Aufgabenanzahl[69],i,Auswahl;<br />
char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];<br />
char Pin[69][12],Anmeldepin[12];<br />
//string Ausgabepinname=&quot;unbekannte Pin&quot;;<br />
//Variablen nur zum Rechnen:<br />
int zahl1, zahl2, ergebnis, loesung,n;<br />
char wiederholung, Ende;<br />
string note;<br />
int prozente;<br />
int Versuch;</p>
<p>// Hier beginnt das Einlesen der Daten.<br />
ifstream Einlesen;<br />
Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);<br />
Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Einlesen.close();<br />
//Hier endet das Einlesen der Daten.<br />
Versuch=0;<br />
cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe<br />
//Hier beginnt das Anmelden.<br />
gotoxy (30,12);<br />
top:<br />
cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;<br />
cin &gt;&gt; Anmeldename;<br />
cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;<br />
cin &gt;&gt; Anmeldepin; //clrscr ();</p>
<p>for(i=1;i&lt;=69;i++)<br />
{</p>
<p>if(!strcmp(Anmeldename,Name[i]) )<br />
{ n=i;<br />
for( i=1;i&lt;=69;i++)<br />
{</p>
<p>if( Versuch &lt;2 ) // Bedingung<br />
{<br />
Versuch++;<br />
if(!strcmp(Anmeldepin,Pin[i]) )//( Anmeldepin == Pin[i] )<br />
{<br />
cout &lt;&lt; &quot; Heidihoh&quot;;<br />
}<br />
else<br />
{//ergebnis= false;<br />
cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;<br />
sleep(2);<br />
clrscr();<br />
goto top;<br />
}<br />
}<br />
else<br />
{<br />
cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;<br />
sleep(2);<br />
exit(0);<br />
} // falsch-Block<br />
}</p>
<p>/<em>cout&lt;&lt; &quot;Anmeldename gefungen\n&quot;;<br />
bool pin;<br />
pin=pineingabe(Pin);<br />
if( pin==true ) // Bedingung<br />
{<br />
cout&lt;&lt;&quot;Programm läuft!&quot;; // wahr-Block<br />
}</em>/</p>
<p>}</p>
<p>}</p>
<p>/<em>if( Ausgabepinname != &quot;unbekannte Pin&quot; )<br />
{ cout &lt;&lt;&quot; Name: &quot; &lt;&lt; Ausgabepinname;<br />
}<br />
else<br />
{ cout &lt;&lt;&quot; Fehler: &quot; &lt;&lt; Ausgabepinname;<br />
}</em>/</p>
<p>//Definition Lehrer / Schüler<br />
//xy:<br />
//if( Lehrer == Anwender[i] ) // Bedingung<br />
//{</p>
<p>cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);<br />
cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü<br />
sleep (3); // wahr-Block<br />
do<br />
{<br />
cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe<br />
cin &gt;&gt; Auswahl; // Eingabe<br />
switch( Auswahl ) // Auswahlausdruck<br />
{ case 1 : break; // Fall 1<br />
case 2 : break; // Fall 2<br />
case 3 : break; // Fall n<br />
case 4 : for( i=1 ;i&lt;=69 ;i++ )// Aus Aufgabe 710<br />
{ if ((Aufgabenanzahl[i]==0)&amp;&amp;(Punkte[i]==0))<br />
{<br />
cout&lt;&lt; &quot;Keine Ergebnisse vorhanden&quot;;<br />
}<br />
else<br />
{<br />
cout&lt;&lt; i &lt;&lt;&quot;Name :&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot;Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;</p>
<p>} // Schleifenkörper-Block<br />
}</p>
<p>break; // Fall 1<br />
case 5 : break; // Fall 2<br />
case 6 : cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;<br />
cin&gt;&gt; Ende;<br />
break; // Fall n<br />
default: ; cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;<br />
Ende = 'n'; // sonst-Fall<br />
}</p>
<p>} while(Ende != 'j' ); // Solange-Bedingung<br />
/*}<br />
else<br />
{ // falsch-Block</p>
<p>randomize();<br />
Aufgabenanzahl[n];<br />
do<br />
{</p>
<p>if (Aufgabenanzahl[n]&lt;5)<br />
{<br />
clrscr ();<br />
gotoxy (20,10);<br />
Aufgabenanzahl[n]++;<br />
zahl1 = random(100);<br />
zahl2 = random(100);<br />
ergebnis = zahl1 + zahl2;<br />
cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt; Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;<br />
gotoxy (25,15);<br />
cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe<br />
//clrscr ();<br />
cin &gt;&gt; loesung;<br />
if( loesung == ergebnis ) // Bedingung<br />
{<br />
clrscr ();<br />
gotoxy (25,11);<br />
cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;; // wahr-Block<br />
Punkte[n] = Punkte[n] + 1;<br />
cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);<br />
}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2); // falsch-Block<br />
}<br />
clrscr(); gotoxy (25,11);<br />
if(Aufgabenanzahl[n]&lt;5 ) // Bedingung<br />
{<br />
cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;<br />
cin &gt;&gt; wiederholung; // wahr-Block<br />
}<br />
else<br />
{<br />
wiederholung = 'n';<br />
cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;; // falsch-Block<br />
}</p>
<p>}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
wiederholung = 'n';<br />
cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl; // 100 Aufgaben sind erreicht<br />
}<br />
}<br />
while (wiederholung == 'j');<br />
cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;<br />
prozente = Punkte[n]<em>100/Aufgabenanzahl[n];<br />
cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;<br />
if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}<br />
else<br />
{ if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}<br />
else<br />
{if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}<br />
else<br />
{if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}<br />
else<br />
{ if(prozente &lt; 95 ){note = &quot;gut&quot;;}<br />
else { note = &quot;sehr gut&quot;;}<br />
}<br />
}<br />
}<br />
}<br />
cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;<br />
getchar();<br />
}</em>/<br />
ofstream Abspeichern;<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
clrscr (); gotoxy (25,10);<br />
cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe<br />
sleep (2);<br />
clrscr ();<br />
gotoxy (25,12);<br />
cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe<br />
sleep (2);<br />
//getchar();<br />
return 0;<br />
}</p>
<p>Über Tips Hilfen und Anregungen wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287449/benutzernamen-und-pin-prüfung-mit-variablen-aus-der-datenbank-wie-geht-das</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 10:25:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287449.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 May 2011 20:19:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:19:13 GMT]]></title><description><![CDATA[<p>Hi, bin c++ Anfänger und habe eine Aufgabe ein Programm so zu schreiben, das es sowohl den Benutzernamen erkennt als auch den Pin! und das ganze soll 2x passieren, nach der dritten fehlerhaften Eingabe soll das Programm geschlossen werden. Aber es läuft nicht habe mehrere Sachen versucht es läuft aber nicht. Zudem habe ich Probleme die Nutzer zu unterscheiden. hat jemand eine Idee ohne es in Klasse zu packen.</p>
<p>[//Die Datenbank</p>
<p>#include &lt;iostream.h&gt;<br />
#include &lt;fstream.h&gt;<br />
int main()<br />
{<br />
int Punkte[69],i,Aufgabenanzahl[69];<br />
char Name[69][100];<br />
char Pin[69][12];<br />
//int Lehrer[69];<br />
char Anwender[69][20];<br />
ofstream Abspeichern;<br />
for(i=1;i&lt;=2;i++)<br />
{<br />
Punkte[i]=0;<br />
Aufgabenanzahl[i]=0;<br />
cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Namen ein: &quot;;<br />
cin &gt;&gt;Name[i];<br />
cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Pin ein: &quot;;<br />
cin &gt;&gt;Pin[i];<br />
cout&lt;&lt; &quot;Ist &quot;&lt;&lt;i&lt;&lt;&quot; ein Lehrer oder Schüler?&quot;; //(wenn ja gib eine 1 ein, wenn nicht eine 0)<br />
cin &gt;&gt;Anwender[i];<br />
/<em>if( Eingabe[i] =='j' ) // Bedingung<br />
{<br />
Lehrer[i]=1; // wahr-Block<br />
}<br />
else<br />
{<br />
Lehrer[i]=0; // falsch-Block<br />
}</em>/<br />
}<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
return 0;<br />
}</p>
<p>// Die Funktion<br />
bool pineingabe(char richtigepin[12])<br />
{ char eingabepin[12];<br />
int Versuch,i;<br />
char Pin [69][12];<br />
!strcmp(eingabepin,Pin[i]);<br />
bool ergebnis;<br />
Versuch=0;<br />
top:<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe</p>
<p>if( Versuch &lt;2 ) // Bedingung<br />
{<br />
Versuch++;</p>
<p>if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
cout&lt;&lt; &quot; Vielen Dank für Ihre Anmeldung.&quot;;<br />
sleep(2);<br />
clrscr();<br />
}<br />
else<br />
{//ergebnis= false;<br />
cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;<br />
sleep(2);<br />
clrscr();<br />
goto top;<br />
}</p>
<p>}<br />
else<br />
{<br />
cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;<br />
sleep(2);<br />
ergebnis = false;<br />
//exit(0);<br />
// falsch-Block<br />
}</p>
<p>return (ergebnis);<br />
}</p>
<p>//Das Programm<br />
#include &lt;iostream.h&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;fstream.h&gt;<br />
#include &lt;dos.h&gt;<br />
#include &quot;Funktionpin.cpp&quot;</p>
<p>/*bool pineingabe(int richtigepin)<br />
{ int eingabepin;<br />
bool ergebnis;<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe<br />
if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
}<br />
else<br />
{ergebnis= false;<br />
}<br />
return (ergebnis);<br />
} */</p>
<p>int main()<br />
{<br />
int Punkte[69],Aufgabenanzahl[69],i,Auswahl;<br />
char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];<br />
char Pin[69][12],Anmeldepin[12],eingabepin[12];<br />
//string Ausgabepinname=&quot;unbekannte Pin&quot;;<br />
//Variablen nur zum Rechnen:<br />
int zahl1, zahl2, ergebnis, loesung,n;<br />
char wiederholung, Ende;<br />
string note;<br />
int prozente;</p>
<p>// Hier beginnt das Einlesen der Daten.<br />
ifstream Einlesen;<br />
Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);<br />
Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Einlesen.close();<br />
//Hier endet das Einlesen der Daten.</p>
<p>cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe<br />
//Hier beginnt das Anmelden.<br />
gotoxy (30,12);</p>
<p>cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;<br />
cin &gt;&gt; Anmeldename;<br />
//cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;<br />
//cin &gt;&gt; Anmeldepin; //clrscr ();</p>
<p>for(i=1;i&lt;=69;i++)<br />
{</p>
<p>if(!strcmp(Anmeldename,Name[i]) )<br />
{</p>
<p>cout&lt;&lt; &quot;Anmeldename gefunden\n&quot;;<br />
bool pin;<br />
pin=pineingabe(pin);<br />
if( pin==true ) // Bedingung<br />
{<br />
cout&lt;&lt;&quot;Programm läuft!&quot;; // wahr-Block<br />
}<br />
n=i;<br />
}</p>
<p>}</p>
<p>/<em>if( Ausgabepinname != &quot;unbekannte Pin&quot; )<br />
{ cout &lt;&lt;&quot; Name: &quot; &lt;&lt; Ausgabepinname;<br />
}<br />
else<br />
{ cout &lt;&lt;&quot; Fehler: &quot; &lt;&lt; Ausgabepinname;<br />
}</em>/</p>
<p>//Definition Lehrer / Schüler<br />
//xy:<br />
//if( Lehrer == Anwender[i] ) // Bedingung<br />
//{</p>
<p>cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);<br />
cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü<br />
sleep (3); // wahr-Block<br />
do<br />
{<br />
cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe<br />
cin &gt;&gt; Auswahl; // Eingabe<br />
switch( Auswahl ) // Auswahlausdruck<br />
{ case 1 : break; // Fall 1<br />
case 2 : break; // Fall 2<br />
case 3 : break; // Fall n<br />
case 4 : for( i=1 ;i&lt;=69 ;i++ )// Aus Aufgaeb 710<br />
{<br />
cout&lt;&lt; i &lt;&lt;&quot;Name :\t&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :\t&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot; Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;<br />
// Schleifenkörper-Block<br />
}</p>
<p>break; // Fall 1<br />
case 5 : break; // Fall 2<br />
case 6 : cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;<br />
cin&gt;&gt; Ende;<br />
break; // Fall n<br />
default: ; cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;<br />
Ende = 'n'; // sonst-Fall<br />
}</p>
<p>} while(Ende != 'j' ); // Solange-Bedingung<br />
/*}<br />
else<br />
{ // falsch-Block</p>
<p>//Hier beginnt das Rechenprogramm.<br />
randomize();<br />
Aufgabenanzahl[n];<br />
do<br />
{</p>
<p>if (Aufgabenanzahl[n]&lt;5)<br />
{<br />
clrscr ();<br />
gotoxy (20,10);<br />
Aufgabenanzahl[n]++;<br />
zahl1 = random(100);<br />
zahl2 = random(100);<br />
ergebnis = zahl1 + zahl2;<br />
cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt; Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;<br />
gotoxy (25,15);<br />
cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe<br />
//clrscr ();<br />
cin &gt;&gt; loesung;<br />
if( loesung == ergebnis ) // Bedingung<br />
{<br />
clrscr ();<br />
gotoxy (25,11);<br />
cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;; // wahr-Block<br />
Punkte[n] = Punkte[n] + 1;<br />
cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);<br />
}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2); // falsch-Block<br />
}<br />
clrscr(); gotoxy (25,11);<br />
if(Aufgabenanzahl[n]&lt;5 ) // Bedingung<br />
{<br />
cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;<br />
cin &gt;&gt; wiederholung; // wahr-Block<br />
}<br />
else<br />
{<br />
wiederholung = 'n';<br />
cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;; // falsch-Block<br />
}</p>
<p>}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
wiederholung = 'n';<br />
cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl; // 100 Aufgaben sind erreicht<br />
}<br />
}<br />
while (wiederholung == 'j');<br />
cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;<br />
//<em>cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte &lt;&lt; endl &lt;&lt;endl;<br />
prozente = Punkte[n]<em>100/Aufgabenanzahl[n];<br />
cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;<br />
if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}<br />
else<br />
{ if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}<br />
else<br />
{if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}<br />
else<br />
{if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}<br />
else<br />
{ if(prozente &lt; 95 ){note = &quot;gut&quot;;}<br />
else { note = &quot;sehr gut&quot;;}<br />
}<br />
}<br />
}<br />
}<br />
cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;<br />
getchar();<br />
}</em>/<br />
ofstream Abspeichern;<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
clrscr (); gotoxy (25,10);<br />
cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe<br />
sleep (2);<br />
clrscr ();<br />
gotoxy (25,12);<br />
cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe<br />
sleep (2);<br />
//getchar();<br />
return 0;<br />
}<br />
]</p>
<p>zum Compilieren nehme ich den CPPTrain2<br />
Habe auch noch eine 2. Variante Allerdings sieht die nicht viel anders aus.<br />
#include &lt;iostream.h&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;fstream.h&gt;<br />
#include &lt;dos.h&gt;<br />
#include &quot;Funktionpin.cpp&quot;</p>
<p>/*bool pineingabe(int richtigepin)<br />
{ int eingabepin;<br />
bool ergebnis;<br />
cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe<br />
cin &gt;&gt; eingabepin; // Eingabe<br />
if( eingabepin==richtigepin ) // Bedingung<br />
{ ergebnis=true; // wahr-Block<br />
}<br />
else<br />
{ergebnis= false;<br />
}<br />
return (ergebnis);<br />
} */</p>
<p>int main()<br />
{<br />
int Punkte[69],Aufgabenanzahl[69],i,Auswahl;<br />
char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];<br />
char Pin[69][12],Anmeldepin[12];<br />
//string Ausgabepinname=&quot;unbekannte Pin&quot;;<br />
//Variablen nur zum Rechnen:<br />
int zahl1, zahl2, ergebnis, loesung,n;<br />
char wiederholung, Ende;<br />
string note;<br />
int prozente;<br />
int Versuch;</p>
<p>// Hier beginnt das Einlesen der Daten.<br />
ifstream Einlesen;<br />
Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);<br />
Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Einlesen.read(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Einlesen.close();<br />
//Hier endet das Einlesen der Daten.<br />
Versuch=0;<br />
cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe<br />
//Hier beginnt das Anmelden.<br />
gotoxy (30,12);<br />
top:<br />
cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;<br />
cin &gt;&gt; Anmeldename;<br />
cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;<br />
cin &gt;&gt; Anmeldepin; //clrscr ();</p>
<p>for(i=1;i&lt;=69;i++)<br />
{</p>
<p>if(!strcmp(Anmeldename,Name[i]) )<br />
{ n=i;<br />
for( i=1;i&lt;=69;i++)<br />
{</p>
<p>if( Versuch &lt;2 ) // Bedingung<br />
{<br />
Versuch++;<br />
if(!strcmp(Anmeldepin,Pin[i]) )//( Anmeldepin == Pin[i] )<br />
{<br />
cout &lt;&lt; &quot; Heidihoh&quot;;<br />
}<br />
else<br />
{//ergebnis= false;<br />
cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;<br />
sleep(2);<br />
clrscr();<br />
goto top;<br />
}<br />
}<br />
else<br />
{<br />
cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;<br />
sleep(2);<br />
exit(0);<br />
} // falsch-Block<br />
}</p>
<p>/<em>cout&lt;&lt; &quot;Anmeldename gefungen\n&quot;;<br />
bool pin;<br />
pin=pineingabe(Pin);<br />
if( pin==true ) // Bedingung<br />
{<br />
cout&lt;&lt;&quot;Programm läuft!&quot;; // wahr-Block<br />
}</em>/</p>
<p>}</p>
<p>}</p>
<p>/<em>if( Ausgabepinname != &quot;unbekannte Pin&quot; )<br />
{ cout &lt;&lt;&quot; Name: &quot; &lt;&lt; Ausgabepinname;<br />
}<br />
else<br />
{ cout &lt;&lt;&quot; Fehler: &quot; &lt;&lt; Ausgabepinname;<br />
}</em>/</p>
<p>//Definition Lehrer / Schüler<br />
//xy:<br />
//if( Lehrer == Anwender[i] ) // Bedingung<br />
//{</p>
<p>cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);<br />
cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü<br />
sleep (3); // wahr-Block<br />
do<br />
{<br />
cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe<br />
cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe<br />
cin &gt;&gt; Auswahl; // Eingabe<br />
switch( Auswahl ) // Auswahlausdruck<br />
{ case 1 : break; // Fall 1<br />
case 2 : break; // Fall 2<br />
case 3 : break; // Fall n<br />
case 4 : for( i=1 ;i&lt;=69 ;i++ )// Aus Aufgabe 710<br />
{ if ((Aufgabenanzahl[i]==0)&amp;&amp;(Punkte[i]==0))<br />
{<br />
cout&lt;&lt; &quot;Keine Ergebnisse vorhanden&quot;;<br />
}<br />
else<br />
{<br />
cout&lt;&lt; i &lt;&lt;&quot;Name :&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot;Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;</p>
<p>} // Schleifenkörper-Block<br />
}</p>
<p>break; // Fall 1<br />
case 5 : break; // Fall 2<br />
case 6 : cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;<br />
cin&gt;&gt; Ende;<br />
break; // Fall n<br />
default: ; cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;<br />
Ende = 'n'; // sonst-Fall<br />
}</p>
<p>} while(Ende != 'j' ); // Solange-Bedingung<br />
/*}<br />
else<br />
{ // falsch-Block</p>
<p>randomize();<br />
Aufgabenanzahl[n];<br />
do<br />
{</p>
<p>if (Aufgabenanzahl[n]&lt;5)<br />
{<br />
clrscr ();<br />
gotoxy (20,10);<br />
Aufgabenanzahl[n]++;<br />
zahl1 = random(100);<br />
zahl2 = random(100);<br />
ergebnis = zahl1 + zahl2;<br />
cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt; Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;<br />
gotoxy (25,15);<br />
cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe<br />
//clrscr ();<br />
cin &gt;&gt; loesung;<br />
if( loesung == ergebnis ) // Bedingung<br />
{<br />
clrscr ();<br />
gotoxy (25,11);<br />
cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;; // wahr-Block<br />
Punkte[n] = Punkte[n] + 1;<br />
cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);<br />
}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2); // falsch-Block<br />
}<br />
clrscr(); gotoxy (25,11);<br />
if(Aufgabenanzahl[n]&lt;5 ) // Bedingung<br />
{<br />
cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;<br />
cin &gt;&gt; wiederholung; // wahr-Block<br />
}<br />
else<br />
{<br />
wiederholung = 'n';<br />
cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;; // falsch-Block<br />
}</p>
<p>}<br />
else<br />
{<br />
clrscr (); sleep (1);<br />
wiederholung = 'n';<br />
cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl; // 100 Aufgaben sind erreicht<br />
}<br />
}<br />
while (wiederholung == 'j');<br />
cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;<br />
prozente = Punkte[n]<em>100/Aufgabenanzahl[n];<br />
cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;<br />
if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}<br />
else<br />
{ if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}<br />
else<br />
{if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}<br />
else<br />
{if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}<br />
else<br />
{ if(prozente &lt; 95 ){note = &quot;gut&quot;;}<br />
else { note = &quot;sehr gut&quot;;}<br />
}<br />
}<br />
}<br />
}<br />
cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;<br />
getchar();<br />
}</em>/<br />
ofstream Abspeichern;<br />
Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);<br />
Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Aufgabenanzahl),69<em>sizeof(int));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Name),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Pin),69<em>sizeof(char[100]));<br />
Abspeichern.write(reinterpret_cast&lt;char</em>&gt;(Anwender),69*sizeof(char[100]));<br />
Abspeichern.close();<br />
clrscr (); gotoxy (25,10);<br />
cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe<br />
sleep (2);<br />
clrscr ();<br />
gotoxy (25,12);<br />
cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe<br />
sleep (2);<br />
//getchar();<br />
return 0;<br />
}</p>
<p>Über Tips Hilfen und Anregungen wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070234</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sat, 28 May 2011 20:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:26:06 GMT]]></title><description><![CDATA[<p>Niemand liest das durch. Poste es erneut zwischen [cpp] und [/cpp].</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070235</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 28 May 2011 20:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:34:30 GMT]]></title><description><![CDATA[<p>Danos schrieb:</p>
<blockquote>
<p>Hi, bin c++ Anfänger und habe eine Aufgabe ein Programm so zu schreiben, das es sowohl den Benutzernamen erkennt als auch den Pin! und das ganze soll 2x passieren, nach der dritten fehlerhaften Eingabe soll das Programm geschlossen werden. Aber es läuft nicht habe mehrere Sachen versucht es läuft aber nicht. Zudem habe ich Probleme die Nutzer zu unterscheiden. hat jemand eine Idee ohne es in Klasse zu packen.</p>
<pre><code>//Die Datenbank

#include &lt;iostream.h&gt;
#include &lt;fstream.h&gt;
int main()
{
  int Punkte[69],i,Aufgabenanzahl[69];
  char Name[69][100];
  char Pin[69][12];
  //int Lehrer[69];
  char Anwender[69][20];
  ofstream Abspeichern;
  for(i=1;i&lt;=2;i++)
  {
    Punkte[i]=0;
    Aufgabenanzahl[i]=0;
    cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Namen ein: &quot;;
    cin &gt;&gt;Name[i];
    cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Pin ein: &quot;;
    cin &gt;&gt;Pin[i];
    cout&lt;&lt; &quot;Ist &quot;&lt;&lt;i&lt;&lt;&quot; ein Lehrer oder Schüler?&quot;; //(wenn ja gib eine 1 ein, wenn nicht eine 0)
    cin &gt;&gt;Anwender[i];
    /*if( Eingabe[i] =='j'  )   // Bedingung
    { 
      Lehrer[i]=1;       // wahr-Block
    }
    else
    {  
      Lehrer[i]=0;      // falsch-Block
    }*/
  }
  Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Abspeichern.close();
  return 0;
}

// Die Funktion
bool pineingabe(char richtigepin[12])
{ char eingabepin[12];
  int Versuch,i;
  char Pin [69][12];
  !strcmp(eingabepin,Pin[i]);
  bool ergebnis;
  Versuch=0;
  top:
  cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe
  cin &gt;&gt; eingabepin; // Eingabe
      
     if( Versuch &lt;2 )   // Bedingung
     {
         Versuch++;
         
        if( eingabepin==richtigepin )   // Bedingung
        { ergebnis=true;       // wahr-Block
          cout&lt;&lt; &quot; Vielen Dank für Ihre Anmeldung.&quot;;
          sleep(2);
          clrscr();
        }
        else
        {//ergebnis= false;
         cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;
         sleep(2);
         clrscr();
         goto top;
        }
        
     }
     else
     {
       cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;
       sleep(2);
       ergebnis = false;
       //exit(0); 
             // falsch-Block
     }
 
      return (ergebnis);
}

//Das Programm
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;fstream.h&gt;
#include &lt;dos.h&gt;
#include &quot;Funktionpin.cpp&quot;

/*bool pineingabe(int richtigepin)
{ int eingabepin;
  bool ergebnis;
  cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe
  cin &gt;&gt; eingabepin; // Eingabe
  if( eingabepin==richtigepin )   // Bedingung
  { ergebnis=true;       // wahr-Block
  }
  else
  {ergebnis= false;
  } 
  return (ergebnis);
} */

int main()
{
  int Punkte[69],Aufgabenanzahl[69],i,Auswahl;
  char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];
  char Pin[69][12],Anmeldepin[12],eingabepin[12];
  //string Ausgabepinname=&quot;unbekannte Pin&quot;;
  //Variablen nur zum Rechnen:
  int zahl1, zahl2, ergebnis, loesung,n;
  char wiederholung, Ende;
  string note;
  int prozente;
  

// Hier beginnt das Einlesen der Daten.
  ifstream Einlesen;
  Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Einlesen.close();
//Hier endet das Einlesen der Daten.
 
  cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe
//Hier beginnt das Anmelden.
  gotoxy (30,12);
  
  cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;
  cin &gt;&gt; Anmeldename;
  //cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;
  //cin &gt;&gt; Anmeldepin; //clrscr ();
   
    for(i=1;i&lt;=69;i++)
      {            
                      
                        if(!strcmp(Anmeldename,Name[i]) )
                        { 
                         
                         cout&lt;&lt; &quot;Anmeldename gefunden\n&quot;;
                         bool pin;
                         pin=pineingabe(pin);
                         if( pin==true )   // Bedingung
                         { 
                         cout&lt;&lt;&quot;Programm läuft!&quot;;       // wahr-Block
                         } 
                          n=i;
                        } 
                       
      }
      
      
 
 
 /*if( Ausgabepinname != &quot;unbekannte Pin&quot; )   
 { cout &lt;&lt;&quot;  Name: &quot; &lt;&lt; Ausgabepinname;       
 }
 else
 { cout &lt;&lt;&quot;  Fehler: &quot; &lt;&lt; Ausgabepinname;
 }*/ 
 
 //Definition Lehrer / Schüler
 //xy:
 //if( Lehrer == Anwender[i] )   // Bedingung
 //{    
          
        cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);
        cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü
        sleep (3);  // wahr-Block
        do
        { 
          cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe
          cin &gt;&gt; Auswahl; // Eingabe
          switch( Auswahl )          // Auswahlausdruck
          { case  1 :   break; // Fall 1
            case  2 :   break; // Fall 2
            case  3 :   break;  // Fall n
            case  4 :   for( i=1 ;i&lt;=69  ;i++  )// Aus Aufgaeb 710
                        { 
                         cout&lt;&lt; i &lt;&lt;&quot;Name :\t&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :\t&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot; Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;
                               // Schleifenkörper-Block
                        }
            
            
            break; // Fall 1
            case  5 :   break; // Fall 2
            case  6 :   cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;
                        cin&gt;&gt; Ende;
                        break;  // Fall n
           default:  ;  cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;
                        Ende = 'n';    // sonst-Fall
          }
                   
        } while(Ende != 'j' ); // Solange-Bedingung
 /*}
 else
 {        // falsch-Block
 
//Hier beginnt das Rechenprogramm.
  randomize();
  Aufgabenanzahl[n];
  do
  {  
           
    if (Aufgabenanzahl[n]&lt;5)
    {   
       clrscr ();
       gotoxy (20,10);
       Aufgabenanzahl[n]++;
       zahl1 = random(100);
       zahl2 = random(100);
       ergebnis = zahl1 + zahl2;
       cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt;  Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;
       gotoxy (25,15);  
       cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe
       //clrscr ();
       cin &gt;&gt; loesung;
       if( loesung == ergebnis )   // Bedingung
       { 
       clrscr (); 
       gotoxy (25,11);
       cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;;  // wahr-Block
       Punkte[n] = Punkte[n] + 1;
       cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);
       }
       else
       { 
       clrscr (); sleep (1);
       cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2);      // falsch-Block
       }
       clrscr(); gotoxy (25,11);
       if(Aufgabenanzahl[n]&lt;5  )   // Bedingung
       { 
         cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;
         cin &gt;&gt; wiederholung;       // wahr-Block
       }
       else
       { 
         wiederholung = 'n';
         cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;;       // falsch-Block
       }
       
    }   
    else   
    {
     clrscr (); sleep (1);
     wiederholung = 'n';
     cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl;       // 100 Aufgaben sind erreicht
    }
  }
  while (wiederholung == 'j');
  cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;
  //*cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte &lt;&lt; endl &lt;&lt;endl;
  prozente = Punkte[n]*100/Aufgabenanzahl[n];  
  cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;
  if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}
  else
  { if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}
    else 
    {if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}
     else
     {if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}
      else
      { if(prozente &lt; 95 ){note = &quot;gut&quot;;}
        else { note = &quot;sehr gut&quot;;}
     }
    }
   }
  }   
  cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;
  getchar(); 
 }*/ 
  ofstream Abspeichern;
  Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Abspeichern.close();
  clrscr (); gotoxy (25,10);
  cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe
  sleep (2);
  clrscr ();
  gotoxy (25,12);
  cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe
  sleep (2);
  //getchar();
  return 0;
}
]

zum Compilieren nehme ich den CPPTrain2
Habe auch noch eine 2. Variante Allerdings sieht die nicht viel anders aus.
#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;fstream.h&gt;
#include &lt;dos.h&gt;
#include &quot;Funktionpin.cpp&quot;

/*bool pineingabe(int richtigepin)
{ int eingabepin;
  bool ergebnis;
  cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe
  cin &gt;&gt; eingabepin; // Eingabe
  if( eingabepin==richtigepin )   // Bedingung
  { ergebnis=true;       // wahr-Block
  }
  else
  {ergebnis= false;
  } 
  return (ergebnis);
} */

int main()
{
  int Punkte[69],Aufgabenanzahl[69],i,Auswahl;
  char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];
  char Pin[69][12],Anmeldepin[12];
  //string Ausgabepinname=&quot;unbekannte Pin&quot;;
  //Variablen nur zum Rechnen:
  int zahl1, zahl2, ergebnis, loesung,n;
  char wiederholung, Ende;
  string note;
  int prozente;
  int Versuch;

// Hier beginnt das Einlesen der Daten.
  ifstream Einlesen;
  Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Einlesen.close();
//Hier endet das Einlesen der Daten.
  Versuch=0;
  cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe
//Hier beginnt das Anmelden.
  gotoxy (30,12);
  top:
  cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;
  cin &gt;&gt; Anmeldename;
  cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;
  cin &gt;&gt; Anmeldepin; //clrscr ();
  
   
    for(i=1;i&lt;=69;i++)
      {            
                      
                        if(!strcmp(Anmeldename,Name[i]) )
                        { n=i;
                         for( i=1;i&lt;=69;i++)
                         { 
                         
                          if( Versuch &lt;2 )   // Bedingung
                          {
                            Versuch++;
                           if(!strcmp(Anmeldepin,Pin[i]) )//( Anmeldepin == Pin[i] )
                           { 
                            cout &lt;&lt; &quot; Heidihoh&quot;;      
                           }
                           else
                           {//ergebnis= false;
                           cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;
                           sleep(2);
                           clrscr();
                           goto top;
                           }
                          }
                          else
                          {
                           cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;
                           sleep(2);
                           exit(0); 
                          } // falsch-Block
     }
                            
                            
                         
                         
                          
 
                         
                         /*cout&lt;&lt; &quot;Anmeldename gefungen\n&quot;;
                         bool pin;
                         pin=pineingabe(Pin);
                         if( pin==true )   // Bedingung
                         { 
                         cout&lt;&lt;&quot;Programm läuft!&quot;;       // wahr-Block
                         }*/ 
                        
                        } 
                       
      }
      
      
 
 
 /*if( Ausgabepinname != &quot;unbekannte Pin&quot; )   
 { cout &lt;&lt;&quot;  Name: &quot; &lt;&lt; Ausgabepinname;       
 }
 else
 { cout &lt;&lt;&quot;  Fehler: &quot; &lt;&lt; Ausgabepinname;
 }*/ 
 
 //Definition Lehrer / Schüler
 //xy:
 //if( Lehrer == Anwender[i] )   // Bedingung
 //{    
          
        cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);
        cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü
        sleep (3);  // wahr-Block
        do
        { 
          cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe
          cin &gt;&gt; Auswahl; // Eingabe
          switch( Auswahl )          // Auswahlausdruck
          { case  1 :   break; // Fall 1
            case  2 :   break; // Fall 2
            case  3 :   break;  // Fall n
            case  4 :   for( i=1 ;i&lt;=69  ;i++  )// Aus Aufgabe 710
                        { if ((Aufgabenanzahl[i]==0)&amp;&amp;(Punkte[i]==0))
                          {
                           cout&lt;&lt; &quot;Keine Ergebnisse vorhanden&quot;;
                          }
                          else
                          { 
                          cout&lt;&lt; i &lt;&lt;&quot;Name :&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot;Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;
                          
                          }     // Schleifenkörper-Block
                        }
                        
            
            break; // Fall 1
            case  5 :   break; // Fall 2
            case  6 :   cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;
                        cin&gt;&gt; Ende;
                        break;  // Fall n
           default:  ;  cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;
                        Ende = 'n';    // sonst-Fall
          }
                   
        } while(Ende != 'j' ); // Solange-Bedingung
 /*}
 else
 {        // falsch-Block
 
  randomize();
  Aufgabenanzahl[n];
  do
  {  
           
    if (Aufgabenanzahl[n]&lt;5)
    {   
       clrscr ();
       gotoxy (20,10);
       Aufgabenanzahl[n]++;
       zahl1 = random(100);
       zahl2 = random(100);
       ergebnis = zahl1 + zahl2;
       cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt;  Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;
       gotoxy (25,15);  
       cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe
       //clrscr ();
       cin &gt;&gt; loesung;
       if( loesung == ergebnis )   // Bedingung
       { 
       clrscr (); 
       gotoxy (25,11);
       cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;;  // wahr-Block
       Punkte[n] = Punkte[n] + 1;
       cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);
       }
       else
       { 
       clrscr (); sleep (1);
       cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2);      // falsch-Block
       }
       clrscr(); gotoxy (25,11);
       if(Aufgabenanzahl[n]&lt;5  )   // Bedingung
       { 
         cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;
         cin &gt;&gt; wiederholung;       // wahr-Block
       }
       else
       { 
         wiederholung = 'n';
         cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;;       // falsch-Block
       }
       
    }   
    else   
    {
     clrscr (); sleep (1);
     wiederholung = 'n';
     cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl;       // 100 Aufgaben sind erreicht
    }
  }
  while (wiederholung == 'j');
  cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;
  prozente = Punkte[n]*100/Aufgabenanzahl[n];  
  cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;
  if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}
  else
  { if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}
    else 
    {if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}
     else
     {if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}
      else
      { if(prozente &lt; 95 ){note = &quot;gut&quot;;}
        else { note = &quot;sehr gut&quot;;}
     }
    }
   }
  }   
  cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;
  getchar(); 
 }*/ 
  ofstream Abspeichern;
  Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Abspeichern.close();
  clrscr (); gotoxy (25,10);
  cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe
  sleep (2);
  clrscr ();
  gotoxy (25,12);
  cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe
  sleep (2);
  //getchar();
  return 0;
}
</code></pre>
<p>Über Tips Hilfen und Anregungen wäre ich sehr dankbar.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2070238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070238</guid><dc:creator><![CDATA[edit0r]]></dc:creator><pubDate>Sat, 28 May 2011 20:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:40:30 GMT]]></title><description><![CDATA[<p>Über 500 Zeilen Code ohne einen Hinweis, wo du Probleme hast - da dürfte es schwer sein jemanden zu finden, der sich überhaupt dein Programm ansieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070241</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 28 May 2011 20:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:41:29 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Niemand liest das durch. Poste es erneut zwischen [cpp] und [/cpp].</p>
</blockquote>
<p>Wie meinst du das?</p>
<p>Erklär mir bitte wie ich es optisch am besten darstellen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070242</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sat, 28 May 2011 20:41:29 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 20:51:29 GMT]]></title><description><![CDATA[<p>Das Problem ist direkt nach dem Anmeldeteil!</p>
<p>das nicht erkannt wird das der Anwender und der Pin zusammengehören.<br />
bzw das Pintool garnicht funzt. warum auch immer habe keine ahnung wie ich die Übergabe und Übernahme so definieren kann das es funtkioniert.</p>
<p>Desweitern habe ich irgendwie keine Idee wie ich es anstellen soll das Lehre und Schüler über die If els Verzweigung getrennt werden.</p>
<p>Das ist mein gesamter Quelltext</p>
<p>zeilen 1 - 40 ist die Datenbank für das Programm.</p>
<p>Zeile 42 - 83 ist meine Pinfunktion</p>
<p>Zeile 85 - 302 ist das Programm mit der pinfunktion die leider nicht läuft.<br />
Warum auch immer.</p>
<p>und von Zeile 304 - 559 ist das Programm ohne Funktion - läuft allerdings auch nicht. Entweder ich kann mich anmelden mit Name und pin/ bzw mit egal was ich eingebe oder ich kann eingeben was ich will und es ist immer falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070243</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sat, 28 May 2011 20:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 21:53:02 GMT]]></title><description><![CDATA[<p>Das ist so ziemlich das schlimmste, was mir jemals untergekommen ist. Das ist kein C++, das ist auch kein C, das ist einfach nur Scheiße.</p>
<p>Bitte erklär uns kurz und verständlich, was das Ding tun soll, dann kann man versuchen, dir Ratschläge zu geben. Mir ist nicht klar, was das Ding tun soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070255</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 28 May 2011 21:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sat, 28 May 2011 22:02:52 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>das ist einfach nur Scheiße.</p>
</blockquote>
<p>Da muss ich dem guten Herr Pi leider recht geben. Viele Casts, Sprungbefehle, nicht existierende Header ( <code>&lt;iostream.h&gt;</code> ), rohe Arrays, mehrdeutige Zahlen (69 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ), Mehrdeutigkeit bei Bezeichnern, kein Vertrauen auf RAII, unlokale Deklarationen, Rechtschreibefehler, unnötige <code>sleep</code> -Befehle, Unwissenheit über implizite Konvertierungen und Operatorprioritäten und einen schlechten Codestil hast du...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070260</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 28 May 2011 22:02:52 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 07:00:38 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>das ist einfach nur Scheiße.</p>
</blockquote>
<p>Da muss ich dem guten Herr Pi leider recht geben. Viele Casts, Sprungbefehle, nicht existierende Header ( <code>&lt;iostream.h&gt;</code> ), rohe Arrays, mehrdeutige Zahlen (69 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ), Mehrdeutigkeit bei Bezeichnern, kein Vertrauen auf RAII, unlokale Deklarationen, Rechtschreibefehler, unnötige <code>sleep</code> -Befehle, Unwissenheit über implizite Konvertierungen und Operatorprioritäten und einen schlechten Codestil hast du...</p>
</blockquote>
<p>An statt Objektiv zu beurteilen und zu hinterfragen was für einen kenntniss stand man hat - wird genadenlos alles schlecht gemacht.</p>
<p>Ich weiss selber das , mein Program vom Aufbau her noch nicht das schönste ist, und anstatt zu sagen das ist unnötig und das ist &quot;Scheiße&quot;, wäre mir mit gezielten Fragen und Lösungsansätzen mehr geholfen.</p>
<p>Ich habe weder Programmierung studiert noch mache ich das Professionell - wenn due wissen würdest welchen Wissenstand ich habe, würdest du wahrscheinlich ein wenig anders Argumentiern.</p>
<p>**Das Programm soll von 2 Arten von Anwendern zu benutzen sein.<br />
Es sollen min 15 Anwender so definiert werden das Sie max 100 Additionsaufgaben rechnen können, nach jeder Aufgabe Ihren Punktestand erfahren und gefragt werden ob Sie noch eine weitere Aufgabe rechnen wollen. Nach der 100. Aufgabe ist Schluss und der Anwender Schüler erhält seine Bewertung.</p>
<p>Die 2. Art von Anwendern soll:<br />
1. nicht rechnen!<br />
2. nach einzelnen Schülern suchen können,<br />
3. neue Schüler anlegen können,<br />
4. die Variablen Aufgabenanzahl und Punkte sollen zurückzusetzen sein,<br />
5. der durchschnitt der Gruppe Schüler soll Abrufbar sein,<br />
6. die Ergebnisse aller Schüler soll angezeigt werden,</p>
<p>Beide Arten von Anwendern haben einen Anmeldenamen und ein Kennwort/Passsword/PIN - diese sollen geprüft werden und spätesten nach der dritten fehlerhaften Eingabe ist Schluss (für heute).**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070321</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 07:00:38 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 07:26:58 GMT]]></title><description><![CDATA[<p>Hab es überflogen.<br />
Mit welchem Compiler willst du den Quelltext übersetzen?</p>
<p>Ja, es gibt mir bekannte Compiler, die das so haben wollten. Aber heute wird mit denen nur selten etwas gemacht.</p>
<p>Also warum C++ im Stil der 90er und für den damaligen Marktführer auf dem Gebiet?</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070324</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sun, 29 May 2011 07:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 08:16:01 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<p>Hab es überflogen.<br />
Mit welchem Compiler willst du den Quelltext übersetzen?</p>
<p>Ja, es gibt mir bekannte Compiler, die das so haben wollten. Aber heute wird mit denen nur selten etwas gemacht.</p>
<p>Also warum C++ im Stil der 90er und für den damaligen Marktführer auf dem Gebiet?</p>
<p>MfG f.-th.</p>
</blockquote>
<p>Ich Nutze den CPPTrain2<br />
hier der Link dazu:<br />
<a href="http://www.t-cassebaum.de/" rel="nofollow">http://www.t-cassebaum.de/</a></p>
<p>Ja, warum - weil er seinen Zweck erfüllt, os ist und mit für den Anfang empfohlen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070336</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 08:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 09:02:43 GMT]]></title><description><![CDATA[<p>Der gute Herr Cassebaum lebt im letzten Jahrtausend. iostream.h ist seit 1998 nicht mehr im Standard enthalten. Wenn du C++ lernen möchtest, kaufe dir ein gutes Buch, sonst verplemperst du deine Zeit! Die Frage nach einem guten Buch wird hier im Forum immer wieder gestellt, wenn du die Suchfunktion benutzt solltest du also genug Vorschläge finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070352</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 29 May 2011 09:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 09:31:32 GMT]]></title><description><![CDATA[<p>Also wurdest du in deine Schule/deinem Lehrinstitut dazu angehalten CPPTrain2 zu nutzen? CPPTrain2 ist ja nur eine IDE wo du den Quelltext eingibst oder erstellst, wenn ich das nicht falsch gelesen hab.</p>
<p>Wenn der Compiler der free bcc ist, der kann auch modernen Quelltext übersetzen.</p>
<p>Schau mal ob dein CPPTrain2 mit so etwas klar kommt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;  // so sehen Header heute aus

using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen

int main()
{
  cout &lt;&lt; &quot;Hello World!&quot; &lt;&lt; endl;
  cout &lt;&lt; &quot;Welcome to C++ Programming&quot; &lt;&lt; endl; 
}
</code></pre>
<p>Hast du in deine Unterlagen auch nur die alten Beispiele?</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070369</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sun, 29 May 2011 09:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 11:20:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream.h&gt;  // so sehen Header heute aus

using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen

int main()
{
  cout &lt;&lt; &quot;Hello World!&quot; &lt;&lt; endl;
  cout &lt;&lt; &quot;Welcome to C++ Programming&quot; &lt;&lt; endl;
  getchar();
}
</code></pre>
<p>so funktioniert es - ohne getchar(); schließt es sofort.</p>
<p>Ja in meinen Aufzeichnungen sind mehr oder weniger nur Dinge von den Anfängen von C++ enthalten - das nötigste!</p>
<p>Zum Anfang der lehrphase programmierung hieß es, wir sollen keine Programme programmieren nur lesen und verstehen.<br />
Und dann zum Abschluss so eine Aufgabe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070419</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 11:20:04 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 11:29:39 GMT]]></title><description><![CDATA[<p>Danos schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;  // so sehen Header heute aus
</code></pre>
</blockquote>
<p>Warum hast du jetzt doch wieder ein .h eingefügt? So sehen Header eben <strong>nicht</strong> aus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070422</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 29 May 2011 11:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 11:30:23 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;  // so sehen Header heute aus
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2070423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070423</guid><dc:creator><![CDATA[CPPTrain2IsteinTroll]]></dc:creator><pubDate>Sun, 29 May 2011 11:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 11:37:47 GMT]]></title><description><![CDATA[<p>#include &lt;iostream&gt; // so sehen Header heute aus</p>
<pre><code class="language-cpp">using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen

int main()
{
  cout &lt;&lt; &quot;Hello World!&quot; &lt;&lt; endl;
  cout &lt;&lt; &quot;Welcome to C++ Programming&quot; &lt;&lt; endl;
  getchar();
}
</code></pre>
<p>Sorry - So ist es korrekt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070425</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 11:37:47 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 11:44:19 GMT]]></title><description><![CDATA[<p>Bei der IDE ist Volkards C++ Kurs dabei, wo auch noch iostream.h verwendet wurde. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070428</guid><dc:creator><![CDATA[volkard ist schuld!]]></dc:creator><pubDate>Sun, 29 May 2011 11:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 12:10:31 GMT]]></title><description><![CDATA[<p>&quot;schließt sofort&quot; -&gt; die Beiträge hier im Forum können wir kaum noch zählen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ihr sollt Consolen-Programme auch auf der Console ausführen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>So zurück zur Basis.</p>
<p>Hier mal ein wenig Quelltext:</p>
<pre><code class="language-cpp">// Additionsaufgabengenerator

#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

struct person
{
	string name;
	int pinnummer;		// wenn andere Zeichen oder Buchstaben möglich sein sollen -&gt; ändern
	bool sl;			// schüler/lehrer;
	int heutenichtmehr; // nach Fehleingabe Tageszahl - sonst 0
} nutzer;

void dummy()  // nur zum Test
{
	nutzer.name = &quot;maier&quot;;
	nutzer.pinnummer = 1234;
	nutzer.sl = 1;
	nutzer.heutenichtmehr = -3;
}

int nutzerident()
{
	int versuch = 0;
	string nname;
	int pinn;
	do
	{
		cout &lt;&lt; &quot;Bitte geben sie ihren Namen ein: &quot;;
		cin &gt;&gt; nname;
		cout &lt;&lt; endl &lt;&lt; &quot;Pin eingeben: &quot;;
		cin &gt;&gt; pinn;
		if(nutzer.name == nname)
		{
		    versuch = 3;
            nutzer.heutenichtmehr = 0;
        }
        else
        {
            versuch++;
		    // Datum in Struct eintragen -&gt; ergänzen
            nutzer.heutenichtmehr = 31;  // 31 -&gt; Dummy
        }
    } while (versuch &lt; 3);
	return (nutzer.heutenichtmehr);

}

void lehrer()
{
    cout &lt;&lt; &quot;Lehrerfunktion&quot; &lt;&lt; endl;
    // Gruppen, Schüler + Aufgaben -&gt; ideal auch auf Funktionsgruppen teilen
}

void schueler()
{
    cout &lt;&lt; &quot;Schülerfunktion&quot; &lt;&lt; endl;
    // Gruppen, Schüler + Aufgaben -&gt; ideal auch auf Funktionsgruppen teilen
}

int main()
{
	cout &lt;&lt; &quot;Additionsaufgabengenerator&quot; &lt;&lt; endl &lt;&lt; endl;
	dummy();
	cout &lt;&lt; &quot;Nutzeridentifikation&quot; &lt;&lt; endl;
	if(!nutzerident())
	{
	    cout &lt;&lt; &quot;Nutzer identifiziert&quot; &lt;&lt; endl;
	    if(nutzer.sl)
            lehrer();
        else
            schueler(); // ue damit es einfacher wird ? &lt;- Ansichtssache
	}
	else
	{
	    cout &lt;&lt; &quot;Identifikation fehlerhaft&quot; &lt;&lt; endl &lt;&lt; &quot;Programm beendet&quot;;
		// Konsequenz, wenn nicht identifiziert
	}
}
</code></pre>
<p>hoffe mal das kein grosser Bock drin ist und das halbwegs den Kenntnissen des Betragserstellers entgegen kommt. Der Quellcode löst noch nicht die ganze Aufgabe. Ein wenig Arbeit soll ja noch bleiben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Auf Konsole testen, hatte ich schon geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070438</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sun, 29 May 2011 12:10:31 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 12:37:05 GMT]]></title><description><![CDATA[<p>Schön und gut - allerdings ist somit mein Problem nicht behoben meine Datenbank sieht so aus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
int main()
{
  int Punkte[69],i,Aufgabenanzahl[69];
  char Name[69][100];
  char Pin[69][12];
  //int Lehrer[69];
  char Anwender[69][20];
  ofstream Abspeichern;
  for(i=1;i&lt;=2;i++)
  {
    Punkte[i]=0;
    Aufgabenanzahl[i]=0;
    cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Namen ein: &quot;;
    cin &gt;&gt;Name[i];
    cout&lt;&lt;&quot;Gib den &quot;&lt;&lt;i&lt;&lt;&quot;. Pin ein: &quot;;
    cin &gt;&gt;Pin[i];
    cout&lt;&lt; &quot;Ist &quot;&lt;&lt;i&lt;&lt;&quot; ein Lehrer oder Schüler?&quot;; //(wenn ja gib eine 1 ein, wenn nicht eine 0)
    cin &gt;&gt;Anwender[i];
    /*if( Eingabe[i] =='j'  )   // Bedingung
    { 
      Lehrer[i]=1;       // wahr-Block
    }
    else
    {  
      Lehrer[i]=0;      // falsch-Block
    }*/
  }
  Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Abspeichern.close();
  return 0;
}
</code></pre>
<p>meine Funktion :</p>
<pre><code class="language-cpp">bool pineingabe(char richtigepin[12])
{ char eingabepin[12];
  int Versuch,i;
  char Pin [69][12];
  !strcmp(eingabepin,Pin[i]);
  bool ergebnis;
  Versuch=0;
  top:
  cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe
  cin &gt;&gt; eingabepin; // Eingabe

     if( Versuch &lt;2 )   // Bedingung
     {
         Versuch++;

        if( eingabepin==richtigepin )   // Bedingung
        { ergebnis=true;       // wahr-Block
          cout&lt;&lt; &quot; Vielen Dank für Ihre Anmeldung.&quot;;
          sleep(2);
          clrscr();
        }
        else
        {//ergebnis= false;
         cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;
         sleep(2);
         clrscr();
         goto top;
        }

     }
     else
     {
       cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;
       sleep(2);
       ergebnis = false;
       //exit(0); 
             // falsch-Block
     }

      return (ergebnis);
}
</code></pre>
<p>Und das ist das Programm:<br />
Und hier Funktionieren die Übernahme und Übergabewerte für die Funktion nicht!<br />
Kann mir bitte dort jemand weiterhelfen. Und einen Vorschlag machen für die Unterteilung lehrer/Schüler?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio&gt;
#include &lt;fstream&gt;
#include &lt;dos&gt;
#include &quot;Funktionpin.cpp&quot;

int main()
{
  int Punkte[69],Aufgabenanzahl[69],i,Auswahl;
  char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];
  char Pin[69][12],Anmeldepin[12],eingabepin[12];
  //string Ausgabepinname=&quot;unbekannte Pin&quot;;
  //Variablen nur zum Rechnen:
  int zahl1, zahl2, ergebnis, loesung,n;
  char wiederholung, Ende;
  string note;
  int prozente;

// Hier beginnt das Einlesen der Daten.
  ifstream Einlesen;
  Einlesen.open(&quot;Rechnerei.dat&quot;,ios::in | ios::binary);
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Einlesen.read(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Einlesen.close();
//Hier endet das Einlesen der Daten.

  cout &lt;&lt; &quot;Herzlich Wilkommen beim Mathetrainer 01/2011&quot;; // Ausgabe
//Hier beginnt das Anmelden.
  gotoxy (30,12);

  cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;
  cin &gt;&gt; Anmeldename;
  //cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;
  //cin &gt;&gt; Anmeldepin; //clrscr ();

    for(i=1;i&lt;=69;i++)
      {            

                        if(!strcmp(Anmeldename,Name[i]) )
                        { 

                         cout&lt;&lt; &quot;Anmeldename gefunden\n&quot;;
                         bool pin;
                         pin=pineingabe(pin);
                         if( pin==true )   // Bedingung
                         { 
                         cout&lt;&lt;&quot;Programm läuft!&quot;;       // wahr-Block
                         } 
                          n=i;
                        } 

      }

 /*if( Ausgabepinname != &quot;unbekannte Pin&quot; )   
 { cout &lt;&lt;&quot;  Name: &quot; &lt;&lt; Ausgabepinname;       
 }
 else
 { cout &lt;&lt;&quot;  Fehler: &quot; &lt;&lt; Ausgabepinname;
 }*/ 

 //Definition Lehrer / Schüler
 //xy:
 //if( Lehrer == Anwender[i] )   // Bedingung
 //{    

        cout&lt;&lt;&quot;Guten Tag Lehrer &quot; &lt;&lt; Name[i]; sleep (1); clrscr(); gotoxy(20,2);
        cout &lt;&lt; &quot; Willkommen im Hauptmenü!!&quot; &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl; // Ausgabe: Begrüßung im Menü
        sleep (3);  // wahr-Block
        do
        { 
          cout &lt;&lt; &quot;\t1.\t Einen neuen Nutzer anlegen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t2.\t Ergebnisse einsehen.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t3.\t Zurücksetzungsoption.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t4.\t Ergebnissübersicht der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t5.\t Durchschnitsleistung der Gruppe.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\t6.\t Programm beenden.\n&quot; ; // Ausgabe
          cout &lt;&lt; &quot;\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t&quot; ; // Ausgabe
          cin &gt;&gt; Auswahl; // Eingabe
          switch( Auswahl )          // Auswahlausdruck
          { case  1 :   break; // Fall 1
            case  2 :   break; // Fall 2
            case  3 :   break;  // Fall n
            case  4 :   for( i=1 ;i&lt;=69  ;i++  )// Aus Aufgaeb 710
                        { 
                         cout&lt;&lt; i &lt;&lt;&quot;Name :\t&quot;&lt;&lt;Name[i]&lt;&lt;&quot;Aufgaben :\t&quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;\t&quot;&lt;&lt;Punkte[i]&lt;&lt;&quot; Punkte von &quot;&lt;&lt;Aufgabenanzahl[i]&lt;&lt;&quot;möglichen&quot;&lt;&lt;endl;
                               // Schleifenkörper-Block
                        }

            break; // Fall 1
            case  5 :   break; // Fall 2
            case  6 :   cout&lt;&lt; &quot;Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)&quot; ;
                        cin&gt;&gt; Ende;
                        break;  // Fall n
           default:  ;  cout &lt;&lt; &quot; Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.&quot;;
                        Ende = 'n';    // sonst-Fall
          }

        } while(Ende != 'j' ); // Solange-Bedingung
 /*}
 else
 {        // falsch-Block

//Hier beginnt das Rechenprogramm.
  randomize();
  Aufgabenanzahl[n];
  do
  {  

    if (Aufgabenanzahl[n]&lt;5)
    {   
       clrscr ();
       gotoxy (20,10);
       Aufgabenanzahl[n]++;
       zahl1 = random(100);
       zahl2 = random(100);
       ergebnis = zahl1 + zahl2;
       cout &lt;&lt; &quot;Aufgabe &quot; &lt;&lt;  Aufgabenanzahl[n] &lt;&lt; &quot; von 100&quot; &lt;&lt; endl;
       gotoxy (25,15);  
       cout &lt;&lt; zahl1 &lt;&lt; &quot; + &quot; &lt;&lt; zahl2 &lt;&lt; &quot; = &quot;; // Ausgabe
       //clrscr ();
       cin &gt;&gt; loesung;
       if( loesung == ergebnis )   // Bedingung
       { 
       clrscr (); 
       gotoxy (25,11);
       cout &lt;&lt; &quot;Das hast Du richtig gerechnet.&quot;;  // wahr-Block
       Punkte[n] = Punkte[n] + 1;
       cout &lt;&lt; &quot; Du erhälst 1 Punkt&quot; &lt;&lt; endl; sleep (1);
       }
       else
       { 
       clrscr (); sleep (1);
       cout &lt;&lt; &quot;Das hast Du leider falsch gerechnet&quot; &lt;&lt; endl; sleep (2);      // falsch-Block
       }
       clrscr(); gotoxy (25,11);
       if(Aufgabenanzahl[n]&lt;5  )   // Bedingung
       { 
         cout &lt;&lt; &quot;Möchtest Du eine weitere Aufgabe rechnen (j/n)? &quot;;
         cin &gt;&gt; wiederholung;       // wahr-Block
       }
       else
       { 
         wiederholung = 'n';
         cout&lt;&lt; &quot;Das Maximum ist erreicht&quot;;       // falsch-Block
       }

    }   
    else   
    {
     clrscr (); sleep (1);
     wiederholung = 'n';
     cout &lt;&lt; &quot;Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet.&quot; &lt;&lt; endl;       // 100 Aufgaben sind erreicht
    }
  }
  while (wiederholung == 'j');
  cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte[n] &lt;&lt; endl;
  //*cout &lt;&lt; &quot;Dein Gesamtpunktestand beträgt: &quot; &lt;&lt; Punkte &lt;&lt; endl &lt;&lt;endl;
  prozente = Punkte[n]*100/Aufgabenanzahl[n];  
  cout &lt;&lt; &quot;Du hast &quot;&lt;&lt; prozente &lt;&lt; &quot; Prozent erreicht!&quot;;
  if(prozente &lt; 26 ){note = &quot;ungenügend&quot;;}
  else
  { if(prozente &lt; 51 ){note = &quot;mangelhaft&quot;;}
    else 
    {if(prozente &lt; 66 ){note = &quot;ausreichend&quot;;}
     else
     {if(prozente &lt; 81 ){note = &quot;befriedigend&quot;;}
      else
      { if(prozente &lt; 95 ){note = &quot;gut&quot;;}
        else { note = &quot;sehr gut&quot;;}
     }
    }
   }
  }   
  cout &lt;&lt; &quot; Das entspricht der Note &quot; &lt;&lt;note;
  getchar(); 
 }*/ 
//Hier beginnt das Abmelden/Abspeichern.
  ofstream Abspeichern;
  Abspeichern.open(&quot;Rechnerei.dat&quot;,ios::out | ios::binary);
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Punkte),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Aufgabenanzahl),69*sizeof(int));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Name),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Pin),69*sizeof(char[100]));
  Abspeichern.write(reinterpret_cast&lt;char*&gt;(Anwender),69*sizeof(char[100]));
  Abspeichern.close();
//Da kommt nur noch das dicke Ende.
  clrscr (); gotoxy (25,10);
  cout &lt;&lt; &quot;Das Programm wird nun beendet&quot;; // Ausgabe
  sleep (2);
  clrscr ();
  gotoxy (25,12);
  cout &lt;&lt; &quot;Auf Wiedersehn, bis zum nächsten Mal.&quot;; // Ausgabe
  sleep (2);
  //getchar();
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2070451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070451</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 12:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 14:28:16 GMT]]></title><description><![CDATA[<ol>
<li>Benutze std::string</li>
<li>Lern den Umgang mit IO-Streams. Wer reinterpret_cast für sowas braucht, der hat nicht mehr alle Tassen im Schrank.</li>
<li>goto, sleep, clrscr ... Ohne Worte.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2070512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070512</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 29 May 2011 14:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 15:09:02 GMT]]></title><description><![CDATA[<p>Noch mal, wenn</p>
<pre><code class="language-cpp">int main()
</code></pre>
<p>im Quelltext steht, sollte das nur genau ein mal im Quelltext eines Projekts stehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<pre><code class="language-cpp">#include &quot;Funktionpin.cpp&quot;
</code></pre>
<p>ist in einem Quelltext suboptimal.<br />
Da erstellt man eine Main.cpp, eine Funktionpin.cpp und eventuell weitere xy.cpp.<br />
Diese compiliert man dann nacheinander und linkt die Objektdateien dann zusammen zu einem Programm.</p>
<p>Ich gehe also davon aus das du &quot;deinen&quot; Quelltext nicht verstanden hast.</p>
<p>Wenn du meinen letzten Beitrag begriffen hättest, wäre dir vielleicht aufgefallen das der erste Quelltextabschnitt deines letzten Beitrags da drin angeschnitten worden ist.</p>
<p>Oder glaubst du, das wir dir hier den kompletten Quelltext einstellen? So was mach ich eventuell Heiligabend, wenn ich gut drauf bin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070536</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Sun, 29 May 2011 15:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 15:55:53 GMT]]></title><description><![CDATA[<p>Es steht im Rechnerprogramm nur einmal - ich habe es in der Funktion nicht enthalten und genau das ist wie geschrieben mein Problem ich weiss nciht wie ich es meinem programm begreifbar machen soll den [i.] Pin zu übergeben und zu prüfen.</p>
<p>Und wenn ich es vordefiniere ist es ja nicht veränderbar - oder sehe ich das falsch. Eine definierte Variable kann ich nur innerhalb eines Typs oder einer höhrern Variable, durch zuweisung ändern.</p>
<p>Und genau in diesem Teil liegt das Problem:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Geben Sie Ihren Namen ein: &quot;;
  cin &gt;&gt; Anmeldename;
  //cout &lt;&lt; &quot;Geben Sie Ihren Pin ein: &quot;;
  //cin &gt;&gt; Anmeldepin; //clrscr ();

    for(i=1;i&lt;=69;i++)
      {            

                        if(!strcmp(Anmeldename,Name[i]) )
                        {

                         cout&lt;&lt; &quot;Anmeldename gefunden\n&quot;;
                         bool pin;
                         pin=pineingabe(pin);
                         if( pin==true )   // Bedingung
                         {
                         cout&lt;&lt;&quot;Programm läuft!&quot;;       // wahr-Block
                         }
                          n=i;
                        }

      }
</code></pre>
<pre><code class="language-cpp">bool pineingabe(char richtigepin[12])
{ char eingabepin[12];
  int Versuch,i;
  char Pin [69][12];
  !strcmp(eingabepin,Pin[i]);
  bool ergebnis;
  Versuch=0;
  top:
  cout &lt;&lt; &quot;Bitte die Pin eingeben: &quot;; // Ausgabe
  cin &gt;&gt; eingabepin; // Eingabe

     if( Versuch &lt;2 )   // Bedingung
     {
         Versuch++;

        if( eingabepin==richtigepin )   // Bedingung
        { ergebnis=true;       // wahr-Block
          cout&lt;&lt; &quot; Vielen Dank für Ihre Anmeldung.&quot;;
          sleep(2);
          clrscr();
        }
        else
        {//ergebnis= false;
         cout&lt;&lt; &quot;Die &quot;&lt;&lt;Versuch&lt;&lt;&quot;.Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.&quot;;
         sleep(2);
         clrscr();
         goto top;
        }

     }
     else
     {
       cout&lt;&lt; &quot; Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!&quot;;
       sleep(2);
       ergebnis = false;
       //exit(0);
             // falsch-Block
     }

      return (ergebnis);
}
</code></pre>
<p>Ich verlange keinen kompletten Quelltext - Ich möchte nur wissen und verstehen was mein Fehler ist! Und wie es besser ist. natürlich kann ich auch in der Struktur vordefinieren der Schüler hat 0 punkte und Augabenanzahl. Allerdings ist das auch so wenn das programm geschlossen wird?<br />
Weil dann könnte ich mir dieses Datenbankprogramm sparen und alles Definieren und wie jetzt auch den Anfang und das Ende des Programms lassen!? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070555</guid><dc:creator><![CDATA[Danos]]></dc:creator><pubDate>Sun, 29 May 2011 15:55:53 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 15:58:57 GMT]]></title><description><![CDATA[<p>Bist du einfach nur dumm oder kannst du nicht lesen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Es wurde schon mehrmals gesagt, dass du keine Sprungbefehle, keine <code>Sleep</code> , std::string und lokale Deklarationen nutzen sollst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070557</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 29 May 2011 15:58:57 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 16:15:08 GMT]]></title><description><![CDATA[<p>Danos schrieb:</p>
<blockquote>
<p>Ich möchte nur wissen und verstehen was mein Fehler ist!</p>
</blockquote>
<p>Wo kommen die Daten her? Du vergleichst deinen Eingabestring ohne das bereits in dem Namensarray Daten liegen.</p>
<p>Lehrt euer Lehrer euch wirklich goto? Dafür gibt es Schleifen (goto gehört jedenfalls nicht in sauberen Code für Hochsprachen). Ebenso gibt es seit 1998 einen C++ Standard, und auch Lehrer sollten sich irgendwann mal damit auseinander setzen.</p>
<p>Danos schrieb:</p>
<blockquote>
<p>Allerdings ist das auch so wenn das programm geschlossen wird?</p>
</blockquote>
<p>Konsolenprogramme müssen sich automatisch am Schluss beenden. Das liegt an der Art wie eine Konsole arbeitet. Man gibt etwas ein (z.B. den Programmnamen um dieses Programm zu starten), und erwartet am Schluss das man den nächsten Befehl eingeben kann. Wenn das Programm nicht schließen würde, kommt man nicht wieder auf die Kommandozeile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070566</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sun, 29 May 2011 16:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das? on Sun, 29 May 2011 16:15:37 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Bist du einfach nur dumm oder kannst du nicht lesen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Es wurde schon mehrmals gesagt, dass du keine Sprungbefehle, keine <code>Sleep</code> , std::string und lokale Deklarationen nutzen sollst!</p>
</blockquote>
<p>Ich denke solche Beschimpfungen müssen wahrlich nicht sein, zumal du selber oft genug &quot;dummes&quot; Zeugs postest. Eine gewisse Netiquette sollte doch möglich sein.</p>
<p>Da Danos offenbar nicht bereit ist mit dem ihm zur Verfügung gestellten code weiterzuarbeiten und offenbar auch nicht willens ist, sich die Grundkenntnisse anzueigenen wäre die einfachste Möglichkeit einfach nicht mehr zu antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070568</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Sun, 29 May 2011 16:15:37 GMT</pubDate></item></channel></rss>