tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
305
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    neulingsoki neulingsoki ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Hallo,

    bin ein absoluter Neuling. In der Form unter vc++ 2005 habe ich mir ein Textfeld, ein Label und ein button reingebaut. Wenn ich nun in das Textfeld ein wort eingebe und auf den Button "Berechnen" klicke, dann sollen die einzelnen Buchstaben in Zahlen umgewandelt werden. Zu diesem Zweck habe ich die Map programmiert. Aus diesen errechneten Zahlen soll dann die Quersumme errechnet werden.
    Irgendwie komme ich da nicht weiter.
    textName heißt mein Textfeld und erg ist mein label, wo das ergebnis erscheinen soll.

    Diese dateien hab ich mit eingebunden

    #include <iostream >
    #include <string>
    #include <stdio.h>
    #include <string.h>

    #include <map>

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    private: System::Void ergebnis_Click(System::Object^  sender, System::EventArgs^  e) {
            
        
    map<string, string> zuordne;
     
    zuordne["A"] = "1";
    zuordne["B"] = "2";
    zuordne["C"] = "3";
    zuordne["D"] = "4";
    zuordne["E"] = "5";
    zuordne["F"] = "8";
    zuordne["G"] = "3";
    zuordne["H"] = "5";
    zuordne["I"] = "1";
    zuordne["J"] = "1";
    zuordne["K"] = "2";
    zuordne["L"] = "3";
    zuordne["M"] = "4";
    zuordne["N"] = "5";
    zuordne["O"] = "7";
    zuordne["P"] = "8";
    zuordne["Q"] = "1";
    zuordne["R"] = "2";
    zuordne["S"] = "3";
    zuordne["T"] = "4";
    zuordne["U"] = "6";
    zuordne["V"] = "6";
    zuordne["W"] = "6";
    zuordne["X"] = "5";
    zuordne["Y"] = "1";
    zuordne["Z"] = "7";
    zuordne["ß"] = "6";
    zuordne["ä"] = "6";
     
    double wort; 
    int k, buchstabe, zahl;
    wort = Convert::ToDouble(this->textName->Text);
    double summe=0;
     
    for(k=0; k<=strlen(wort); k++){
        buchstabe=substr (wort, k, 1);
      buchstabe=toupper(buchstabe);
    zahl = zuordne (buchstabe);
      summe += zahl;
    }
        this->erg->ToString();
             
             
             }
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Du hast das Problem, das du .NET mit Standard C++ verwenden willst. Das ist nicht so einfach für Anfänger.

    Sollst du denn überhaupt ein grafisches Programm machen?

    Entscheide dich entweder für die Verwendung von den .NET Klassen mit einer graf. Oberfläche oder mach ein einfaches Kommandozeilenprogramm.

    Wenn du unbedingt ein graf. Programm machen willst/sollst, dann mußt du auch C++/CLI lernen und die System.String Klasse verwenden.

    Das du allerdings versuchst den String in einen Double zu konvertieren, zeigt das du erstmal die Grundlagen lernen mußt.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    double wort;
    int k, buchstabe, zahl;

    wort = Convert::ToDouble(this->textName->Text);
    double summe=0;

    for(k=0; k<=strlen(wort); k++)
    {
    buchstabe=substr (wort, k, 1);
    buchstabe=toupper(buchstabe);
    zahl = zuordne (buchstabe);
    summe += zahl;
    }
    this->erg->ToString();

    Deine Variable "wort" ist von Typ "double"!
    Also machen die Funktionen "strlen" und "substr" hier wirklich keinen Sinn, da sie nur auf Zeichenketten anwendbar sind!

    Wo kommt denn "Textname" überhaupt her

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  4. #4
    neulingsoki neulingsoki ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Nach mühseliger Arbeit habe ich es nun so in etwa hinbekommen. Es funktioniert auch soweit. Nur würde ich gerne das Wort in die Textbox mit dem Namen"textName" eingeben. Siehe Zeile 2. Doch kommt dann immer die Meldung:
    'wchar_t' kann nicht in 'char [10]' konvertiert werden



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    
    char wort[10]= "juergen";
    //wort=System::Convert::ToChar(this->textName->Text);
    int len =strlen(wort);
    int number = 0;
    int buchstabe = 0;
    int b4sum = 0;
    int sum = 0;
     
     
    std::string str(wort);
    for (buchstabe = len; buchstabe >= 0; buchstabe--)
        {
            if (wort[buchstabe] == 'a')
                number = 1;
            else if (wort[buchstabe] == 'b')
                number = 2;
            else if (wort[buchstabe] == 'c')
                number = 3;
            else if (wort[buchstabe] == 'd')
                number = 4;
            else if (wort[buchstabe] == 'e')
                number = 5;
            else if (wort[buchstabe] == 'f')
                number = 8;
            else if (wort[buchstabe] == 'g')
                number = 3;
            else if (wort[buchstabe] == 'h')
                number = 5;
            else if (wort[buchstabe] == 'i')
                number = 1;
            else if (wort[buchstabe] == 'j')
                number = 1;
            else if (wort[buchstabe] == 'k')
                number = 2;
            else if (wort[buchstabe] == 'l')
                number = 3;
            else if (wort[buchstabe] == 'm')
                number = 4;
            else if (wort[buchstabe] == 'n')
                number = 5;
            else if (wort[buchstabe] == 'o')
                number = 7;
            else if (wort[buchstabe] == 'p')
                number = 8;
            else if (wort[buchstabe] == 'q')
                number = 1;
            else if (wort[buchstabe] == 'r')
                number = 2;
            else if (wort[buchstabe] == 's')
                number = 3;
            else if (wort[buchstabe] == 't')
                number = 4;
            else if (wort[buchstabe] == 'u')
                number = 6;
            else if (wort[buchstabe] == 'v')
                number = 6;
            else if (wort[buchstabe] == 'w')
                number = 6;
            else if (wort[buchstabe] == 'x')
                number = 5;
            else if (wort[buchstabe] == 'y')
                number = 1;
            else if (wort[buchstabe] == 'z')
                number = 7;
            else if (wort[buchstabe] == 'ä')
                number = 6;
            else if (wort[buchstabe] == 'ö')
                number = 3;
            else if (wort[buchstabe] == 'ü')
                number = 2;
            else if (wort[buchstabe] == 'ß')
                number = 6;
     
     
     
     
            else
                number = 0;
                sum = sum + number;
     
            b4sum = number;
        }
     
     
     
     
     
     
     erg->Text=System::Convert::ToString(sum);
     

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Wie bereits gesagt, nimm einfach einen System::String wenn du C++/CLI verwendest, es macht wenig Sinn ständig hin und her zu konvertieren.
    Code cpp:
    1
    2
    3
    
    String^ wort = this->textName->Text;
     
    int len = wort->Length;
    Gruß
    Geändert von deepthroat (22.02.09 um 09:41 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #6
    neulingsoki neulingsoki ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Und wie weise ich dem Array den Wert [10] zu?
    Das Progr. wird zwar ausgeführt, doch stürzt es ab mit der Meldung, dass kein Index definiert ist.
     

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von neulingsoki Beitrag anzeigen
    Und wie weise ich dem Array den Wert [10] zu?
    Das Progr. wird zwar ausgeführt, doch stürzt es ab mit der Meldung, dass kein Index definiert ist.
    Das ist ein Fehler der bereits in deinem alten Programm enthalten war. Wenn ein String die Länge 10 hat, dann kann man auf die Buchstaben 0 bis 9 zugreifen. Den Buchstaben mit dem Index 10 gibt es nicht.

    Du mußt deine Schleife anpassen:
    Code cpp:
    1
    2
    3
    
    for (buchstabe = wort->Length - 1; buchstabe >= 0; --buchstabe) {
      ..
    }
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  8. #8
    neulingsoki neulingsoki ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Hallo,

    ich möchte mich bedanken. Es funktioniert hervorragend.
    Mal ne andere Frage: Warum kann ich den Buchstaben ä,ü,ö oder ß keine Zahl zuweisen? Unter php ist es mir auch schon aufgefallen.




    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    
    String^ wort = this->textName->Text; 
    int len = wort->Length;
    int number = 0;
    int buchstabe = 0;
    int b4sum = 0;
    int sum = 0;
     
    for (buchstabe = wort->Length - 1; buchstabe >= 0; --buchstabe)
        {
            if (wort[buchstabe] == 'a')
                number = 1;
            else if (wort[buchstabe] == 'b')
                number = 2;
            else if (wort[buchstabe] == 'c')
                number = 3;
            else if (wort[buchstabe] == 'd')
                number = 4;
            else if (wort[buchstabe] == 'e')
                number = 5;
            else if (wort[buchstabe] == 'f')
                number = 8;
            else if (wort[buchstabe] == 'g')
                number = 3;
            else if (wort[buchstabe] == 'h')
                number = 5;
            else if (wort[buchstabe] == 'i')
                number = 1;
            else if (wort[buchstabe] == 'j')
                number = 1;
            else if (wort[buchstabe] == 'k')
                number = 2;
            else if (wort[buchstabe] == 'l')
                number = 3;
            else if (wort[buchstabe] == 'm')
                number = 4;
            else if (wort[buchstabe] == 'n')
                number = 5;
            else if (wort[buchstabe] == 'o')
                number = 7;
            else if (wort[buchstabe] == 'p')
                number = 8;
            else if (wort[buchstabe] == 'q')
                number = 1;
            else if (wort[buchstabe] == 'r')
                number = 2;
            else if (wort[buchstabe] == 's')
                number = 3;
            else if (wort[buchstabe] == 't')
                number = 4;
            else if (wort[buchstabe] == 'u')
                number = 6;
            else if (wort[buchstabe] == 'v')
                number = 6;
            else if (wort[buchstabe] == 'w')
                number = 6;
            else if (wort[buchstabe] == 'x')
                number = 5;
            else if (wort[buchstabe] == 'y')
                number = 1;
            else if (wort[buchstabe] == 'z')
                number = 7;
    else
                number = 0;
                sum = sum + number;
     
            b4sum = number;
        }
     
     erg->Text=System::Convert::ToString(sum);
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von neulingsoki Beitrag anzeigen
    Mal ne andere Frage: Warum kann ich den Buchstaben ä,ü,ö oder ß keine Zahl zuweisen?
    Wie meinst du das?
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. quersumme bilden
    Von 3dsmaxer im Forum Java
    Antworten: 3
    Letzter Beitrag: 06.12.07, 23:36
  2. Mysql Php Quersumme
    Von ryserstephan im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.07.07, 10:37
  3. Quersumme
    Von RulerofDarkness im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 03.11.05, 09:20
  4. Wie berechne ich die Quersumme
    Von BeachBoy im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 10.10.05, 19:43
  5. Quersumme berechnen
    Von Shootatme im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 28.02.04, 07:00

Stichworte