Suche Hilfe für ein kleines, simples Programm :)
-
Hi,
#include <iostream> #include <conio.h> #include <string> using namespace std; //--------------------------------------------------------------------------- typedef struct { char *code; } s_code; const int anzahl = 2; // Anzahl der Fragen // hier stehen alle Codes, fuer alle moeglichen Antworten drin s_code alle_codes[anzahl][5] = { // Code zur 1. Frage { "A1", "A2", "A3", "A4", "A5" }, // Code zur 2. Frage { "C1", "C2", "C3", "C4", "C5" } // ... }; s_code code[anzahl]; // der Code, der erstellt werden soll int fragen( int n ); // diese Funktion stellt die Fragen int main() { char *txt = ""; // der komplette Code in einem char zum // Speichern und Ausgeben char k = 0; // die gedrueckte Taste char trennzeichen[1]; // das Trennzeichen zwischen den einzelnen // Codes trennzeichen[0] = ' '; do { system("cls"); // Bildschirm loeschen int n = 0; // erste Frage do { int r = fragen( n ); // stelle die Frage und schreibe den // Rueckgabewert in eine Variable if( r == 0 ) // wenn '0' zurueckgegeben wurde { cout << endl << "Moechten Sie wirklich beenden? J/N" << endl; cin >> k; if( k == 'J' || k == 'j' ) // wenn 'J' oder 'j' eingegeben wurde { return 0; // beende das Programm } } else // andernfalls { n += r; // springe zur naechsten // oder zur vorherigen Frage } cout << endl; } while( n < anzahl ); // wenn alle Fragen durch sind cout << "Loesung: "; for( int a = 0; a < anzahl; a++ ) // Code fuer jede Frage einzeln durchlaufen { // den aktuellen Code zu der Variable fuer den kompletten Code hinzufuegen txt = strncat( txt, code[a].code, strlen( txt ) + strlen( code[a].code ) ); // wenn wir nicht beim letzten Code sind if( a != anzahl-1 ) { // fuege noch das Trennzeichen ein txt = strncat( txt, trennzeichen, strlen( txt ) + 1 ); } } cout << txt << endl; // den Code ausgeben cout << "\n\n[E] zum Beenden druecken." << endl; // Hinweis zum Beenden cout << "Eine andere Taste druecken, um an den Anfang zu springen" << endl; cin >> k; } while( k != 'E' && k != 'e' ); // Wenn nicht 'E' oder 'e' gedrueckt wurde // beginne von vorne FILE *file; // Dateihandle file = fopen( "d:\\text.txt", "w" ); // Datei oeffnen / erstellen if( !file ) // Wenn das Handle ungueltig ist { // Gebe Hinweis aus und beende cout << "\n\nDie Datei konnte nicht beschrieben werden." << endl; return 0; } fwrite( txt, strlen( txt ), 1, file ); // schreibe Code in die Datei fclose( file ); // schliesse die Datei cout << "\n\nDie Datei wurde erstellt!"; // Hinweis ausgeben return 0; // beenden } //--------------------------------------------------------------------------- int fragen( int n ) { char k = ' '; // die gedrueckt Taste if( n == 0 ) // die richtige Frage stellen { cout << "1. Wie alt bist du?" << endl; cout << "[1] Zwischen 18 und 25 Jahre" << endl; cout << "[2] Zwischen 25 und 35 Jahre" << endl; cout << "[3] Zwischen 35 und 45 Jahre" << endl; cout << "[4] älter als 45 Jahre" << endl; cout << "[5] Bin mir nicht sicher :P" << endl; } else if( n == 1 ) { cout << "2. Wieviele Geschwister hast du?" << endl; cout << "[1] Einen Bruder" << endl; cout << "[2] Eine Schwester" << endl; cout << "[3] Zwei Geschwister" << endl; cout << "[4] Mehr als zwei Geschwister" << endl; cout << "[5] Keine Geschwister" << endl; cout << "[B] zur voherigen Frage zurueckspringen" << endl; } do { // lasse solange eine Taste eingeben, bis es eine Taste von 1-5 oder 'B' oder 'b' // war cin >> k; // wenn bei der ersten Frage 'B' oder 'b' gedrueckt wurde if( k == 'b' && n == 0 || k == 'B' && n == 0 ) { // nicht gueltig, deshalb setzen wir 'k' auf '0' k = '0'; } } while( k != '1' && k != '2' && k != '3' && k != '4' && k != '5' && k != 'B' && k != 'b' && k != 'e' && k != 'E' ); if( k == 'e' || k == 'E' ) { return 0; } else if( k == 'B' || k == 'b' ) // wenn 'B' oder 'b' gedrueckt wurde { return -1; // gebe -1 zurueck } else // andernfalls { int ascii = int( k ) - 49; // schreibe den Asciiwert der // gedrueckten Taste in eine Variable code[n].code = alle_codes[n][ascii].code; // schreibe den Code return 1; // gebe 1 zurueck } }
So läuft es stürtzt dann allerdings ab.
@Tanuka, ein bisschen C++ könntest du ja schon lernen,
damit du weist wie include anweisungen funktionieren.
@Aoeke komisch das deine Header Files in deinem
Projekt verzeichniss sind :#include "iostream.h"
Das .h ist nicht mehr nötig und
using namespace std;
braucht man dann auch. Ich hab dein clscr() oder wie das heißt durch:
system("cls");
ersetzt.
Cooles Programm @Aoeke.cu max
-
Ja also bei mir stuerzt das mit Dev-Cpp auch ab... In der Zeile mit "strncat(...)" glaube ich... Muss mich mal ein wenig mit Dev-Cpp beschaeftigen, und herausfinden, wie man Haltepunkte setzt etc... Und das mit Headerdateien kommt daher, dass ich mit der Konsole und StandardC++ eigentlich kaum Erfahrungen habe.. Ich beschaeftige mich hauptsaechlich mit der VCL und schreib eigentlich ganz selten bis nie irgendwelche Progs fuer die Konsole... Nur bei dem Programm hier habe ich mir gedacht, kannst ja mal versuchen, ist wieder eine tolle Uebung...
Naja.. Also ich werde mal noch ein bisschen rumprobieren und dann mal schauen......
MfG Aoeke
-
Tanuka schrieb:
Hi C-O-M-M-A-N-D-E-R,
ich werde hier keine Links oder Aussagen darüber angeben, da wir ziemlichen Wert auf anonymität legen, sorry.
MfG,
Tanuka
aha, sehr merkwürdig
-
lol. wasn Spinner ... Community, die geheim ist und wir sollen aber sein Programm schreiben.
Willst du auch noch n bissle Geld? Meinen PC?
-
Komisch, ich dachte immer eine community besteht aus Mitgliedern,
aber wie wollt ihr ohne Mitglieder existieren?
Denn wenn ihr geheim seit, werdet ihr kaum Mitglieder finden.(Oder ihr seid ein Anonymes Alkoholiker Forum.
Und ihr braucht das Programm damit es Fragen wie Was ist dein liebstes Alkoholisches Getränk codiert,
damit es nur eingeweihte Mitglieder Herausfinden können. )@dEUs, falls er deinen PC nicht will, so ist es ja nicht,
du kannst ihn ja auch an mich "spenden"
-
*g* den willst du garnet
Naja, wahrscheinlich doch
-
Vielleicht ist es ja ein Sektenforum?
Eventuell von:
((s****ce*****y)oder den(Z****n J*****s))(Auch wenn die Z****n J*****s))
Laut meiner Religions Lehrerin gar keine richtige Sekte sind.Ich habe natürlich nichts gegen sollche Volksgruppierungen , jeder
soll an das Glauben dürfen was er für richtig hält. Ich halte
aber sollche Gruppierungen nicht für richtig.Ich will hier keinen Thread zu dem Thema provuzieren, ich
frage mich nur warum der "Tanuka" ein Forum erröffnen will
was keiner kennen darf.@dEUs, trotzdem danke für dein Angebot, ich lehne es hiermit
schriftlich ab.cu max
-
lol. wasn Spinner ... Community, die geheim ist und wir sollen aber sein Programm schreiben.
Willst du auch noch n bissle Geld? Meinen PC?
Hi dEUs,
ich weiss ja nicht, was du für ein Problem hast aber,
1. ist hier nicht die Rede von "sollen", da ich höflich darum gebeten habe, mir dabei zu helfen und
2. Was spielt es für eine Rolle, wofür ich dieses Programm verwende, solange ich damit nichts illegales anstelle?
Um nochmal auf unsere Community zu sprechen zu kommen:
Wir legen nicht ohne Grund wert auf anonymität, da wir eine Gruppierung sind, die von der Öffentlichkeit noch nicht wirklich aktzeptiert wird. Wer allerdings die selben Interessen hat wie wir, wird keine Probleme damit haben, uns im Internet mit Hilfe einer Suchmaschine zu finden. Ich möchte lediglich verhindern, das Leute, die sich nicht ernsthaft für unsere Thematik interessieren fernbleiben, da wir keinen Wert auf Leute legen, die Beleidigungen oder intollerante Aussagen tätigen.
Mit freundlichen Grüßen,
Tanuka
-
Ich will hier keinen Thread zu dem Thema provuzieren, ich
frage mich nur warum der "Tanuka" ein Forum erröffnen will
was keiner kennen darf.Das mit dem Forum war nur ein Beispiel und ich habe nicht vor eins zu eröffnen, denn es existiert bereits und wir haben viele Mitglieder, da es nicht geheim ist.
Warum ich keinen Link posten will, habe ich ja oben erwähnt. Ich hoffe du kannst das verstehen
Liebe Grüße,
Tanuka
-
Tanuka schrieb:
2. Was spielt es für eine Rolle, wofür ich dieses Programm verwende, solange ich damit nichts illegales anstelle?
Ganz einfach: Ich bin ganz doll neugierig
Tanuka schrieb:
Wir legen nicht ohne Grund wert auf anonymität, da wir eine Gruppierung sind, die von der Öffentlichkeit noch nicht wirklich aktzeptiert wird.
Toll, jetzt hast dus geschafft. Jetzt bin ich erst richtig neugierig geworden
-
@Tanuka: Hast du immer noch Interesse an einer Version, die sich mit Dev-C++ problemlos ausfuehren laesst?
<EDIT>Oder hast du schon eine Loesung?</EDIT>
-
Hi Aoeke,
ich habe noch keine Lösung gefunden. Also wenn du es zum laufen bekommen hast, wäre es super, wenn du den Quellcode nochmal posten könntest
Liebe Grüße,
Tanuka
-
Kann man mit dir verhandeln? Denn wie dEUS hast du mich auch voll neugierig gemacht, fuer welche "Community" das ist... Also ich dachte so an etwas wie:
Du schickst mir eine Mail, wo du mal die Internetadresse bekannt gibst, ich behalte das fuer mich und stell damit auch keine scheisse an, und als Gegenleistung poste ich hier den Code, der sich unter Dev-C++ fehlerfrei kompilieren und ausfuehren laesst??? Ist das was??? *Bin halt auch schrecklich neugierig*...
MfG Aoeke
-
Och man.. wieso müssen nur alle immer so schrecklich neugierig sein? :p
Hmmm.. überleg...
Nagut.. ich schicke dir ne E-Mail, wo du auf die Seite kommst, für die dieses Tool verwendung finden soll unter der Vorraussetzung, das du es wirklich!!! für dich behälst, dir dann diese Seite aber auch ernsthaft, vollständig und unvoreingenommen durch ließt und mir netter weise, fals nötig, noch ein wenig zur Hand gehst, damit ich den Quellcode so hinbekomme, das er auch für 25 Fragen funktioniert
Ist das ein Vorschlag?
Liebe Grüße,
Tanuka
-
Tanuka schrieb:
und mir netter weise, fals nötig, noch ein wenig zur Hand gehst, ...
Seid ihr... schwul???
-
Idiot
-
@Tanuka: Ist klar...
Also kannst mir an: info@aoeketec.de oder uebers Forum schreiben, ok?
Wenn ich die Mail bekommen habe, poste ich den Quelltext...
MfG Aoeke
-
dEUs schrieb:
Idiot
Man, das war doch nur ein Witz, weil er so ne anonyme Gruppe hat. Ich appeliere an deinen Humor...
-
So hier ist der Code, der bei mir mit Dev-Cpp laeuft... Ich bin bei manchen Variablen auf strings umgestiegen und hoffe, dass das kein Problem darstellt! Ausserdem habe ich noch ein paar horizontale Linien zur besseren Uebersicht eingefuegt.
//--------------------------------------------------------------------------- #include <iostream> #include <string> #include <stdio.h> using namespace std; //--------------------------------------------------------------------------- typedef struct { char *code; } s_code; const int anzahl = 3; // Anzahl der Fragen // hier stehen alle Codes, fuer alle moeglichen Antworten drin s_code alle_codes[anzahl][5] = { // Code zur 1. Frage { "A1", "A2", "A3", "A4", "A5" }, // Code zur 2. Frage { "B1", "B2", "B3", "B4", "B5" }, // Code zur 3. Frage { "Cc1", "Cc2", "Cc3", "Cc4", "Cc5" } }; s_code code[anzahl]; // der Code, der erstellt werden soll int fragen( int n ); // diese Funktion stellt die Fragen int main() { string txt = ""; // der komplette Code in einem string // zum Speichern und Ausgeben string filename = ""; // der Name der zu erstellenden Textdatei char k = 0; // die gedrueckte Taste char trennzeichen[1]; // das Trennzeichen zwischen den einzelnen // Codes trennzeichen[0] = ' '; do { system( "cls" ); txt = ""; int n = 0; // erste Frage do { int r = fragen( n ); // stelle die Frage und schreibe den // Rueckgabewert in eine Variable if( r == 0 ) // wenn '0' zurueckgegeben wurde { cout << endl << "Moechten Sie wirklich beenden? J/N" << endl; cin >> k; if( k == 'J' || k == 'j' ) { return 0; // beende das Programm } } else // andernfalls { n += r; // springe zur naechsten // oder zur vorherigen Frage } cout << endl; } while( n < anzahl ); // wenn alle Fragen durch sind cout << endl; cout << "----------------------------------------------------------------------" << endl << endl; cout << "Code: "; for( int a = 0; a < anzahl; a++ ) // Code fuer jede Frage einzeln durchlaufen { // den aktuellen Code zu der Variable fuer den kompletten Code hinzufuegen txt.insert( txt.size(), code[a].code ); // wenn wir nicht beim letzten Code sind if( a != anzahl-1 ) { txt.insert( txt.size(), " " ); } } cout << txt << endl << endl; // den Code ausgeben cout << "----------------------------------------------------------------------" << endl << endl; cout << "[E] zum Beenden druecken." << endl; // Hinweis zum Beenden cout << "Eine andere Taste druecken, um an den Anfang zu springen" << endl; cin >> k; } while( k != 'E' && k != 'e' ); // Wenn nicht 'E' oder 'e' gedrueckt wurde // beginne von vorne cout << endl; cout << "----------------------------------------------------------------------" << endl << endl; cout << "Geben Sie jetzt bitte den kompletten Pfad und den Namen der" << endl; cout << "Textdatei an, in der das Ergebnis gespeichert werden soll!" << endl; cout << endl << "Datei: "; cin >> filename; cout << endl; cout << "----------------------------------------------------------------------" << endl << endl; FILE *file; // Dateihandle file = fopen( filename.c_str(), "w" );// Datei oeffnen / erstellen if( !file ) // Wenn das Handle ungueltig ist { // Gebe Hinweis aus und beende cout << "Die Datei konnte nicht erstellt werden werden." << endl; cout << "Das Programm wird beendet!" << endl; return 0; } cout << "Die Datei wird erstellt..."; fwrite( txt.c_str(), txt.size(), 1, file ); // schreibe Code in die Datei fclose( file ); // schliesse die Datei cout << endl << "Die Datei wurde erstellt!" << endl; // Hinweis ausgeben cout << endl; cout << "----------------------------------------------------------------------" << endl << endl; cout << "Beliebige Taste zum Beenden druecken." << endl; cin.clear(); // nach Tastendruck beenden cin.ignore( std::cin.rdbuf() -> in_avail() ); cin.get(); return 0; // beenden } //--------------------------------------------------------------------------- int fragen( int n ) { char k = ' '; // die gedrueckt Taste if( n == 0 ) // die richtige Frage stellen { cout << "1. Wie alt bist du?" << endl; cout << "[1] Zwischen 18 und 25 Jahre" << endl; cout << "[2] Zwischen 25 und 35 Jahre" << endl; cout << "[3] Zwischen 35 und 45 Jahre" << endl; cout << "[4] älter als 45 Jahre" << endl; cout << "[5] Bin mir nicht sicher :P" << endl; } else if( n == 1 ) { cout << "2. Wieviele Geschwister hast du?" << endl; cout << "[1] Einen Bruder" << endl; cout << "[2] Eine Schwester" << endl; cout << "[3] Zwei Geschwister" << endl; cout << "[4] Mehr als zwei Geschwister" << endl; cout << "[5] Keine Geschwister" << endl; cout << "[B] zur voherigen Frage zurueckspringen" << endl; } else if( n == 2 ) { cout << "3. Bist du einsam?" << endl; cout << "[1] Ja total" << endl; cout << "[2] Ja ein bisschen" << endl; cout << "[3] Eigentlich nicht" << endl; cout << "[4] Nein" << endl; cout << "[5] Was heisst das?" << endl; cout << "[B] zur voherigen Frage zurueckspringen" << endl; } do { // lasse solange eine Taste eingeben, bis es eine Taste von 1-5 oder 'B' oder 'b' // war cin >> k; // wenn bei der ersten Frage 'B' oder 'b' gedrueckt wurde if( k == 'b' && n == 0 || k == 'B' && n == 0 ) { // nicht gueltig, deshalb setzen wir 'k' auf '0' k = '0'; } } while( k != '1' && k != '2' && k != '3' && k != '4' && k != '5' && k != 'B' && k != 'b' && k != 'e' && k != 'E' ); if( k == 'e' || k == 'E' ) { return 0; } else if( k == 'B' || k == 'b' ) // wenn 'B' oder 'b' gedrueckt wurde { return -1; // gebe -1 zurueck } else // andernfalls { int ascii = int( k ) - 49; // schreibe den Asciiwert der // gedrueckten Taste in eine Variable code[n].code = alle_codes[n][ascii].code; // schreibe den Code return 1; // gebe 1 zurueck } }
Ich denke, dass es jetzt funktioniert.
MfG Aoeke
-
Hi Aoeke,
das Programm funktioniert super! Die Idee mit der Pfadangabe ist auch sehr praktisch. Vielen, vielen Dank
Werde mich dann jetzt gleich mal drann setzten und versuchen die anderen 25 Fragen da rein zu basteln
Ich freue mich echt, das du dich an dein Wort gehalten hast. Also nochmals Danke!
Mit lieben Grüßen,
Tanuka