Προς το περιεχόμενο

c++ menu και κατι που δεν βρίσκω ή δεν το ψάχνω σωστά


Επισκέπτης

Προτεινόμενες αναρτήσεις

Επισκέπτης
Δημοσ. (επεξεργασμένο)

Καλησπέρα σας

Λύνω μια άσκηση σε c++ και δεν έχω μάλλον καταλάβει κάτι σωστά.

Θέλω να φτιάξω ένα μενού και ο χρήστης όταν κάνει μια επιλογή ( πχ 1, 2, 3, 4 κτλ) να καλεί μια συνάρτηση και παει λέγοντας

Αυτό που δεν εχω καταλάβει είναι το εξής το μενού θα πρέπει να γίνει σε συνάρτηση ή στην παρακάτω μορφή? Εαν είναι στην παρακάτω μορφή πως θα "καλέσω" τις συναρτήσεις( οι συναρτήσεις ειναι σε κλάση)??

int main()
{
int choice;

do
{


cout << endl
<< " 1 - \n"
<< " 2 - \n"
<< " 4 -\n"
<< " 5 - \n"
<< " Enter your choice: ";
cin >> choice;

switch (choice)
{
case 1:

break;


case 2:

break;


case 3:

break;


case 4:

break;


case 5:

break;


default:
cout << "Not a Valid Choice. \n"
<< "Choose again.\n";
break;
}

}while (choice !=5);
return 0;
}

Αυτό μόνο μπόρεσα να σκεφτώ!!!

Θα ήταν σωστό σε κάθε case να έβαζα

κλάση ψ;
     ψ.συνάρτηση();

Επεξ/σία από vense97
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πολύ τρόποι υπάρχουν για να γίνει αυτό. Κανένας δεν είναι "ο σωστός τρόπος", απλά όλοι έχουν τα θετικά και τα αρνητικά τους.

Έχοντας πει το παραπάνω, η γνώμη μου είναι ότι αν κάθε case είναι παραπάνω από "μερικές γραμμές", καλό θα είναι να οργανωθούν σε ξεχωριστές συναρτήσεις.

Ένας απ' τους πολλούς τρόπους που προανέφερα θα ήταν να υλοποιήσεις ένα σύστημα που θα έκανες "register" επιλογές, πχ:

// Before main
void runChoiceOne();
void runChoiceTwo();
void runChoiceThree();

// In main
RegisterChoice("Choice #1", "1", runChoiceOne);
RegisterChoice("Choice #2", "2", runChoiceTwo);
RegisterChoice("Choice #3", "3", runChoiceThree);

while (keepRunning) {
	OfferChoice();
}

// After main
void runChoiceOne() {
	cout << "You selected #1" << endl;
}
void runChoiceTwo() {
	cout << "You selected #2" << endl;
}
void runChoiceThree() {
	cout << "You selected #3" << endl;
}

Εννοείται ότι μπορεί να υλοποιηθεί και με κλάσεις. Πχ έχεις μια κλάση "MultipleChoice" που κάνει κάτι παρόμοιο με το παραπάνω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επισκέπτης
Δημοσ. (επεξεργασμένο)
7 ώρες πριν, GReaperEx είπε

Πολύ τρόποι υπάρχουν για να γίνει αυτό. Κανένας δεν είναι "ο σωστός τρόπος", απλά όλοι έχουν τα θετικά και τα αρνητικά τους.

Έχοντας πει το παραπάνω, η γνώμη μου είναι ότι αν κάθε case είναι παραπάνω από "μερικές γραμμές", καλό θα είναι να οργανωθούν σε ξεχωριστές συναρτήσεις.

Ένας απ' τους πολλούς τρόπους που προανέφερα θα ήταν να υλοποιήσεις ένα σύστημα που θα έκανες "register" επιλογές, πχ:



// Before main
void runChoiceOne();
void runChoiceTwo();
void runChoiceThree();

// In main
RegisterChoice("Choice #1", "1", runChoiceOne);
RegisterChoice("Choice #2", "2", runChoiceTwo);
RegisterChoice("Choice #3", "3", runChoiceThree);

while (keepRunning) {
	OfferChoice();
}

// After main
void runChoiceOne() {
	cout << "You selected #1" << endl;
}
void runChoiceTwo() {
	cout << "You selected #2" << endl;
}
void runChoiceThree() {
	cout << "You selected #3" << endl;
}

Εννοείται ότι μπορεί να υλοποιηθεί και με κλάσεις. Πχ έχεις μια κλάση "MultipleChoice" που κάνει κάτι παρόμοιο με το παραπάνω.

Ουσιαστικά το μενού θα έχει την μορφή της φωτο κάτω!!!

Εαν κατάλαβα σωστά αυτό που έγραψες θα βάλω τα void μέσα στην κλάση η main κομπλε και στο after main θα γράψω αυτά που θέλω να κάνει η κάθε συνάρτηση  

 

Επεξ/σία από vense97
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...