Eingabeoberfläche für Daten, Gestaltung Input und Output



  • Hi Leute,

    ich würde mich über eure Hilfe sehr freuen. Bin Neuling in C++ und habe folgendes Programm geschrieben:

    #include<iostream>
    using namespace std;
    
    int main () {
    
        int i,max,k;
        double nutzen [10]={12.6,33.77,51.32,5.7,500.8,9.8,85.18,89.0,37.5,24.1};   //Nutzen
        double gewichte [10]={12.6,33.77,51.32,5.7,70.8,9.8,85.18,89.0,37.5,24.1};  //Gewichte
        double kap = 180;                                                           //Kapazität
        double ngew = 0;  
        double temp=0;                                                              //Ausgenutzte Kapazität
        int n=sizeof(nutzen)/sizeof(double);
        double greedy_nutzen=0; 
    
         while (ngew <= kap) // Solange die Kapazität noch nicht überschritten ist
               {         
    
                        max=0;
                          k=0;
    
                         while (k<n)   // Finde nutzenmaximalen Gegenstand
                         {
                               if (nutzen[k]>nutzen[max])
    
                                 {max=k; }
    
                                 k++; 
    
                          }      
    
                    double temp=temp + gewichte[max];
    
                    if (temp >= kap)
                    { printf("Der Gegenstand mit dem naechsthohen Nutzen kann nicht mehr eingepackt werden.\n");
                    system( "pause" );   
                    break;
                    }
                    else 
                    {
    
                          double ngew=ngew + gewichte[max];                     
                          double greedy_nutzen=greedy_nutzen+nutzen[max];       //bereits eingepackte Gegenstände bekommen nun Nutzen 0, 
                                                                                //sodass Sie nicht noch einmal eingepackt werden können.
                          nutzen[max]=0;
                          cout<< "Rucksackkapazitaet:" << kap <<endl;
                          cout<< "Gewaehlter Gegenstand: " << max <<endl; 
                          cout<< "Erreichter Nutzen: " << greedy_nutzen <<endl;
                          cout<< "Benutzte Kapazitaet: " <<ngew<<endl;    
    
                    }
                system( "pause" );        
                }
    }
    

    Ich würde das Programm gerne etwas anwenderfreundlicher machen, indem eine Eingabe der Vektoren durch den in einer Programmmaske erfolgen soll.
    Gibt es da evtl. eine einfache Möglichkeit/vllt. auch eine mit GUI, wie man die unten stehenden Vektoren dem Programm durch Eintippen übergeben kann?

    double nutzen [10]={12.6,33.77,51.32,5.7,500.8,9.8,85.18,89.0,37.5,24.1};   //Nutzen
    double gewichte [10]={12.6,33.77,51.32,5.7,70.8,9.8,85.18,89.0,37.5,24.1};  //Gewichte
    double kap = 180;
    

    Gibt es zudem eine schönere Möglichkeit der Ausgabe, als dem Fließtext in der Console?

    Ich bin für eure Antworten sehr dankbar!!

    Schöne Grüße,

    swizzx



  • swizzx schrieb:

    Gibt es zudem eine schönere Möglichkeit der Ausgabe, als dem Fließtext in der Console?

    Hi,
    ne die gibt es als Anfänger nicht. C++ kennt keine GUI. Du musst also auf externe Toolkits zurückgreifen wie z.B. Qt. Einem Anfänger ist davon abzuraten. An GUIs kannst du dich machen wenn du min. 1 Buch durchgearbeitet hast. Ansonsten ist C++ wohl die falsche Sprache für dich.



  • Du kannst ja einfach auch eine Datei machen, die dein Programm dann verarbeitet.


Anmelden zum Antworten