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

Ερώτηση πάνω σε κομμάτι της C++


Μιμίκα

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

Δημοσ.

Καλησπέρα.Μόλις έμαθα ότι υπάρχει η πιθανότητα, μέσα από το συγκεκριμένο forum που είμαι γραμμένη καιρό και δεν είχα μπει σχεδόν ποτέ, να βοηθηθώ σε κάποια θέματα που με προβληματίζουν όσον αφορά τον προγραμματισμό και κάποια κομμάτια του.Αρχικά ευχαριστώ όσους θα μπούν στην φασαρία να δουν το post μου και να ασχοληθούν έστω και λίγο με αυτό.θα ήθελα λοιπόν να ρωτήσω χρησιμοποιώντας τη γλώσσα c++ πώς μπορώ να δημιουργήσω μια κλάση η οποία να περιέχει μέσα πίνακα με χαρακτήρες-ονόματα γιατρών.Πιο συγκεκριμένα για να γίνω κατανοητή έχω δημιουργήσει το εξής τμήμα κώδικα:

using namespace std;

 

class hospital_visit //H genikh klash pou periexei ta basika stoixeia

{

private:

char patients_nm; // to onoma to astheni to kataxwrei h grammateia

char doctors_code; //o kwdikos pou adistoixei ston giatro pou epithymei o asthenhs

 

public:

void setup();

void doctor();

 

};

 

void hospital_visit::doctor() //klash pou ekxwrei ta onomata

{

char docs[0]={'Á','Í','Ô','Ù','Í','É','Ï','Õ','\0'};

char docs[1]={'Ð','Á','Ð','Á','Ä','Ï','Ð','Ï','Õ','Ë','Ï','Ó','\0'};

char docs[2]={'Ð','Á','Ð','Á','Ä','Ç','Ì','Ç','Ô','Ñ','É','Ï','Õ','\0'};

char docs[3]={'Ð','Á','Ð','Ð','Á','Ó','\0'};

char docs[4]={'Ê','Ï','Õ','Ô','Ó','Ç','Ó','\0'};

char docs[5]={'Ð','Å','Ô','Ñ','Ï','Â','Á','Ó','\0'};

 

return ();

}

 

 

void hospital_visit:: setup()

{

cout<< "Dose to onoma tou asthenh:";

cin>>patients_nm;

cout<<"Dose to noumero tou zhtoumenou apo ton asthenh giatrou:"

cin>>doctors_code;

 

}

 

int main()

{

char docs[3]//as upothesoume oti o arithmos twn giatrwn pou anhkoun sto nosomokeio einai 6 kai thelw ton 3o

system("PAUSE");

return 0;

}

 

 

Θα ήθελα λοιπόν να φτιάξω μια κλάση που να βάζω μέσα τα ονόματα μερικών γιατρών σε ένα πίνακα και να αντιστοιχεί σε αυτούς ένας κωδικός αριθμός ώστε όταν εγώ θα θέλω να ψάξω στο νούμερο 10 π.χ να βγει το όνομα ενός γιατρού που ανήκει στο νοσοκομείο.Ελπίζω να μην σας μπέρδεψα πολύ!Ευχαριστώ πολύ εκ των πρωτέρων!

Δημοσ.

Φτιάχνεις μια κλάση που περιέχει char όνομα_γιατρού[], int κωδικό ως members.

Ο constructor με όρισματα char *, και int φτιάχνει καινούργια αντικείμενα.

Μια συνάρτηση ψάχνει με βάση το όνομα επιστρέφει τον κωδικό, και το ανάποδο να ψάχνει με βάσει τον κωδικό.

Αν θέλεις μπορείς να κάνεις και sorting στην δομή με τα αντικείμενα σου αν τα φυλάς όλα μαζί σε ένα array ως προς το χαρακτηριστικό που κάνεις search περισσότερες φορές.

 

Πάνω κάτω αυτά. Ένα οποιοδήποτε σχεδόν tutorial στο ιντερνετ θα λέει ακριβείς οδηγίες και είναι κάτι σχετικά απλό. Αν χρειατείς περαιτέρω μας λες που κολλάς.

Δημοσ.

αν και εισαι μαλλον στην αρχη του να μαθεις C++, θα σου συνηστουσα να επενδυσεις λιγο χρονο να μαθεις την standard library (γνωστη ως std) που παρεχει πολλες δομες και εργαλεια που λυνουν τα χερια σε οσους προγραμματιζουν σε C++

 

στη περιπτωση σου, νομιζω πως η κλαση map ειναι αυτο που χρειαζεσαι

ειναι μια δομη δεδομενων, πολυ πιο σοφιστικε απο τα απλα arrays που δινει τη δυνατοτητα να αποθηκευεις ζευγη τιμων , δηλαδη την τιμη και ενα "κλειδι" βασει του οποιου μπορεις να αναζητησεις την τιμη αυτη. Στην περιπτωση σου, οι τιμες ειναι τα ονοματα των γιατρων και κλειδια ειναι οι κωδικοι τους.

 

παρακατω, εφτιαξα ενα πολυ απλοικο παραδειγματακι για να παρεις μια γευση

βασει αυτου, μπορεις να κανεις την κλαση σου

 

>

#include <iostream>
#include <map>

using namespace std;

// η doctors_map ειναι η δομη στην οποια θα καταχωρουνται τα 
// ονοματα τν γιατρων και οι κωδικοι τους
map<int,string>  doctors_map;


// η fill_doctors_map γεμιζει το μαπ με μερικες δοκιμαστικες τιμες 
// ωστε να δειξουμε πως γινεται η καταχωρηση
// 
// αρχικα το doctors_map ειναι αδειο
// με το που δωσω την εντολη 
// doctors_map[100] = "John";
// καταχωρειται ο γιατρος John με κωδικο 100
void fill_doctors_map()
{


   doctors_map[100] = "John";
   doctors_map[200] = "Mary";
   doctors_map[300] = "Bob";
   doctors_map[400] = "George";
   doctors_map[500] = "Dr Octapus";
   doctors_map[600] = "Karagiozopaixtis";

   cout << "just put " << (int) doctors_map.size() << 
       " elements in the map :)" << endl;
}


bool find_a_doctor_by_code( int code )
{
   if( doctors_map.find(code) == doctors_map.end() )
   {
       cout << "could not find a doctor with code " << code << endl;
       return false;
   }
   else
   {
       cout << "doctor with code " << code << " is " 
           << ((string)doctors_map[code]).c_str() << endl;
       return true;
   }

   return true;
}

void main(int argc, char* argv[])
{
   fill_doctors_map();
   
   find_a_doctor_by_code(500); // should find Dr Octapus
   find_a_doctor_by_code(700);    // should find nothing

}

καλη συνεχεια, καλο διαβασμα και καλως ηρθες στο φορουμ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...