Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » highscore mit arrays für ein quiz programmieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.02.2004, 08:08 Uhr
~elitericher
Gast


hallo kann mir jemand helfen ich muss für ein quiz ähnlich wie wer wird millionär ein highscore programmieren und zwar mit arrays ich hab keine ahnung wie ich das machen soll es soll der name eingebar sein und in einer liste soll neben den namen dann der gewonnene betrag (state) stehen. hier sind die beträge auch fie bei wer wird millionär. kann mir jemand helfen event. den quelltrext dafür hier rein posten. danke im vorraus

P.S.: wenn ihr mir nicht helfen könnt ist nicht schlimm dann versuch ich mir das wissen anzulesen und es nochmal selbst zu probieren
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.02.2004, 09:02 Uhr
(un)wissender
Niveauwart



C++:
#include <iostream>
#include <string>

int main() {
    using namespace std;
    
    struct liste {
        string name;
        int gewinnsumme;
    };
    
    const int HIGH_SCORE_LENGTH = 5;
    liste highscore[HIGH_SCORE_LENGTH];
  
    for(int i = 0; i < HIGH_SCORE_LENGTH; ++i) {
        cout << "Eintrag " << i << "\n";
        cout << "Bitte Namen eingeben:";
        cin >> highscore[i].name;
        cout << "Bitte Gewinnsumme eingeben:";
        cin >> highscore[i].gewinnsumme;
        cout << endl;
    }
    
    return 0;
}




Bearbeitung:

Das sollte dir helfen, du kannst es ja so modifizieren, das es deinen Anforderungen genügt.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 03.02.2004 um 09:04 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.02.2004, 09:03 Uhr
ao

(Operator)


Das ist ne Hausaufgabe, gell? Bei Hausaufgaben läuft das hier allgemein so: Wir helfen gern bei Problemen weiter, aber wir verschenken keine kompletten Lösungen. Die Aufgabe ist für dich, und wir wollen dir nicht den Spaß verderben ;-)

Also: Was ist dein Ansatz, und wo bleibst du hängen?

Und: Am besten postest du auch mal die komplette Aufgabenstellung. Bei deiner Beschreibung bleibt nämlich einiges unklar, z.B.

Wie viele Einträge hat die Liste?
Was soll mit der Liste passieren? Am Bildschirm anzeigen, in eine Datei schreiben, ins Internet stellen, rückwärts sortieren, ...?


Bearbeitung von ao:
Na gut, unwissender, dann geh ich halt wieder. ;-)

Dieser Post wurde am 03.02.2004 um 09:06 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.02.2004, 09:05 Uhr
(un)wissender
Niveauwart


@ao
Sorry, habe nicht dran gedacht.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.02.2004, 09:42 Uhr
~elitericher
Gast


hallo danke erst mal für den quellcode. hausaufgabe nicht ganz ist ein projekt von der schule. daran hab ich gar nicht gedacht die liste soll in eine datei geschrieben werden und nach gewinnsumme sotiert werden. es können allerdings mehrere die gleiche gewinnsume haben ist das ein problem was macht das programm da? wenn es unsinn macht wäre nicht schlecht wär zu erst kommt steht auch weiter oben. ich dachte so da wir 18 Leute in der Klasse sind sollten auch 18 Einträge gemacht werden das jeder weiß wo er steht, denn jeder muss das programm mal testen. das programm steht schon es wird eine frage gestellt man hat antwortmöglichkeiten und wenn man richtig antwortet komm die nächste frage bei falscher antwort wird erst die richtige antwort gezeigt und wenn man gewonnen hat, man fällt ja wie bei wer wird millionär auch zurück, dann zeigt er an wo eben der betrag gesichert wurde sagen wir mal 500 € der ist als state festgelegt. und dann dachte ich mir dass man nach der anzeige der gewinnsumme seinen namen eintragen musss und das wird dann in eine datei geschrieben. und in der datei soll dann stehen
1. jgdjfh 100000
2. jdfhdkg 500
.
.
.
18.fdsjklsdgf 0
so hat ich mir das gedacht der quellcode oben hilft mir schon viel. vielleicht könnt ihr mal ja denn wie ich mir das gedacht hatte nochmal schicken aber ich probiers mal selber aus danke nochmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.02.2004, 10:22 Uhr
(un)wissender
Niveauwart


Da ich mich eh schon nicht an die Regeln gehalten haben, hier nochmal Code.
Wenn du es in der Datei anders formatiert haben willst, oder nicht alles auf einmal einlesen möchtest, dann muss du das ändern.
Evtl. Datei auslesen, in Vector packen, dann einlesen lassen (Konsole), dann sort.
Ach ja, auf Fehler solltest du auch prüfen (im Stream, bei den Eingaben, etc.)



C++:
#include <iostream>
#include <algorithm>
#include <fstream>
#include <vector>
#include <string>
using namespace std;

class HighscoreList {  
    
    public:
        HighscoreList(int size);
        friend istream& operator>>(istream &in, HighscoreList &list);
        friend ostream& operator<<(ostream &out, const HighscoreList &list);
        void sort();
    
    private:
        struct value {
            string name;
            int gewinnsumme;
        };
        
        struct my_sort {
            bool operator()(const value &one, const value &two)
            {
                return one.gewinnsumme < two.gewinnsumme;
            }
        };
                              
        vector <value> vec;
};

HighscoreList::HighscoreList(int size) : vec(size) {}

istream& operator>>(istream &in, HighscoreList &list)
{
    const int SIZE = list.vec.size();
    for(int i = 0; i < SIZE; ++i) {
        cout << "Eintrag " << i << "\n";
        cout << "Bitte Namen eingeben:";
        in >> list.vec[i].name;
        cout << "Bitte Gewinnsumme eingeben:";
        in >> list.vec[i].gewinnsumme;
        cout << endl;
    }
    
    return in;
}

ostream& operator<<(ostream &out, const HighscoreList &list)
{
    const int SIZE = list.vec.size();
    for(int i = 0; i < SIZE; ++i) {
        out << "Eintrag " << i;
        out << "\nName: " << list.vec[i].name;      
        out << "\nGewinnsumme: " << list.vec[i].gewinnsumme;        
        out << "\n" << endl;
    }
    
    return out;
}

void HighscoreList::sort()
{
    //Nur vertauschen, wenn notwendig!
    ::stable_sort(vec.begin(), vec.end(), HighscoreList::my_sort());
}

int main() {          
    const int HIGH_SCORE_SIZE = 5;    
    HighscoreList l = HIGH_SCORE_SIZE;
    cout << "\nEingabe\n\n";
    //Von Konsole lesen
    cin >> l;
    l.sort();
    //Hier deinen Dateinamen.
    string filename = "test.txt";
    cout << "\nAusgabe in: " << filename.c_str() << "\n\n";  
    ofstream out(filename.c_str());
    //In Datei schreiben
    out << l;      
    return 0;
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.02.2004, 12:10 Uhr
~elitericher
Gast


vielen dank für deine hilfe. allerdings vieles was du hier benutzt hast hatten wir noch nicht in der schule macht aber zum einen nichts weil wir neue sachen mit reinbringen sollen. allerdings verstehe ich einige sachen dort nicht. ich hab erst letztes jahr angefangen zu programmieren und bin daher sozusagen noch eine null, wir arbeite noch mit printf und scanf und schleifen und if und switch und so von ostream und puplic und private und const hab ich noch nie was gehört. wenn du noch zeit hast und es dir nichts aus macht könntest du vielleicht zu einigen sachen noch kommentare schreiben wie zum schluss. ich hab es eben mal ausprobiert es hat aber noch fehler. frage ich muss ja ne datei erstellen was muss dass den für eine sein txt kann er nicht öffnen und dann noch ein fehler ist mon ich füge es ein

eneuer ordner\hgbdfg\ghmjvfh.cpp(36) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(40) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(42) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(51) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(54) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(55) : error C2248: "vec" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "HighscoreList" erfolgte
eneuer ordner\hgbdfg\ghmjvfh.cpp(29) : Siehe Deklaration von 'vec'
eneuer ordner\hgbdfg\ghmjvfh.cpp(65) : error C2039: 'stable_sort' : Ist kein Element von '`global namespace''
eneuer ordner\hgbdfg\ghmjvfh.cpp(73) : error C2593: 'Operator >>' ist mehrdeutig
eneuer ordner\hgbdfg\ghmjvfh.cpp(80) : error C2593: 'Operator <<' ist mehrdeutig
Fehler beim Ausführen von cl.exe.

also wie gesagt ich hab noch keine große ahnung von programmieren wenn ihr mir helfen könnt, wäre nett.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.02.2004, 14:59 Uhr
(un)wissender
Niveauwart


Das obige kompiliert ohne Fehler und tut meines wissens nach das was es soll!
Was auch immer du damit getan hast, es war wohl nicht korrekt.
Welchen Compiler benutzt du?
Hast du was verändert, gelöscht, hinzugefügt?
Sorry, aber sowas wie: ich weiß nicht, was const und alle anderen C++-Sachen bedeuten, werde ich hier nicht erklären.
Lies ein Buch und/oder schau dir Tutorials an.
Vielleicht ist ja auch jemand netter als ich und erklärt alles, könnten dann aber mehrere 100 Seiten sein.
Wenn du konkrete Fragen hast dann beantwortet ich die gerne(oder andere, bessere Leute), kann aber etwas dauern, weil ich gerade umziehe.

Ansonsten haben wir von dir noch nicht ein bisschen Code gesehn, ich denke jetzt bist du dran.

Viel Erfolg!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.02.2004, 15:09 Uhr
~elitericher
Gast


oh tut mir leid ich hab es eben nochmal ausprobiert ich hab anscheinend etwas vergessen zu kopieren denn eben ging es. danke nochmal. ok ist kein problem hab ein buch schau jetzt gleich mal nach danke für alles ciao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: