24/08/11 9:18
el cuba libre
salve a tutti
scusate ma mi trovo costretto a farvi altre domande perchè altrimenti non ne cavo le gambe.
sto creando un programma che dovrebbe gestire una serie di elementi all'interno della vita di un ospedale. ho creato una classe reparti che ha come metodi:
impostanomereparto che imposta il nome del reparto.
archiviodegenti che contiene oltre all'impostazione del nome del degente anche i giorni di degenza e il numero di degenti
calcolodegenzamedia che dovrebbe calcolare la degenza media di tutti i malati del reparto
print info che dovrebbe stampare tutte le varie informazioni.
allora quando io inserisco i dati dal main facendo per esempio
tutti i valore all'interno del metodo archiodegenti vengono impostati correttamente, solo che poi all'esterno del metodo tutti i valori sono errati e non riesco a capire perchè,credo sia colpa del costruttore perchè tutte le variabili sono impostate come nel costruttore cioè a zero e non so come impostarle in maniera non statica.
se prima richiamo il metodo archiviodegenti dal main tutto risulta regolare, se poi richiamo sempre dal main la funzione calcol_degenza_media il metodo piglia i valori cosi come sono impostati nel costruttore. ma come faccio a cambiarli nel costruttore, perchè se provo a mettere una variabile al posto di =0 il compilatore mi dice che è una variabile non statica e se non metto nulla non compila lo stesso. mi servirebbe un modo per far si che il metodo giorni_degenza_media prendesse i parametri in input dal metodo archiviodegenti. per esempio potrei richiamare il metodo all'interno della funzione ma non so se si può fare ne come si fa!
scusate la confusione!
grazie mille
scusate ma mi trovo costretto a farvi altre domande perchè altrimenti non ne cavo le gambe.
sto creando un programma che dovrebbe gestire una serie di elementi all'interno della vita di un ospedale. ho creato una classe reparti che ha come metodi:
impostanomereparto che imposta il nome del reparto.
archiviodegenti che contiene oltre all'impostazione del nome del degente anche i giorni di degenza e il numero di degenti
calcolodegenzamedia che dovrebbe calcolare la degenza media di tutti i malati del reparto
print info che dovrebbe stampare tutte le varie informazioni.
allora quando io inserisco i dati dal main facendo per esempio
cout<<"inserisci cognome degente"<<endl; cin>>cognome; cout<<"inserisci giorni di degenza"<<endl; cin>>giorni_degenza; istanza[i].archiviodegenti(cognome,giorni_degenza,num_degenti);
tutti i valore all'interno del metodo archiodegenti vengono impostati correttamente, solo che poi all'esterno del metodo tutti i valori sono errati e non riesco a capire perchè,credo sia colpa del costruttore perchè tutte le variabili sono impostate come nel costruttore cioè a zero e non so come impostarle in maniera non statica.
class reparti : public element { public: int numero_posti,numero_degenti,giorni_degenza_media,degenza_ricoverato; reparti(,int num_degenti=0,int num_posti=0) { numero_degenti=num_degenti; numero_posti=num_posti; } void archiviodegenti(char *name_degente,int degenza_malato,int numero_degenti) { nome_degente=new char [strlen (name_degente)+1]; strncpy(nome_degente,name_degente,strlen (name_degente)); nome_degente [strlen (name_degente)+1]='salve a tutti
scusate ma mi trovo costretto a farvi altre domande perchè altrimenti non ne cavo le gambe.
sto creando un programma che dovrebbe gestire una serie di elementi all'interno della vita di un ospedale. ho creato una classe reparti che ha come metodi:
impostanomereparto che imposta il nome del reparto.
archiviodegenti che contiene oltre all'impostazione del nome del degente anche i giorni di degenza e il numero di degenti
calcolodegenzamedia che dovrebbe calcolare la degenza media di tutti i malati del reparto
print info che dovrebbe stampare tutte le varie informazioni.
allora quando io inserisco i dati dal main facendo per esempiocout<<"inserisci cognome degente"<<endl; cin>>cognome; cout<<"inserisci giorni di degenza"<<endl; cin>>giorni_degenza; istanza[i].archiviodegenti(cognome,giorni_degenza,num_degenti);
tutti i valore all'interno del metodo archiodegenti vengono impostati correttamente, solo che poi all'esterno del metodo tutti i valori sono errati e non riesco a capire perchè,credo sia colpa del costruttore perchè tutte le variabili sono impostate come nel costruttore cioè a zero e non so come impostarle in maniera non statica.class reparti : public element { public: int numero_posti,numero_degenti,giorni_degenza_media,degenza_ricoverato; reparti(,int num_degenti=0,int num_posti=0) { numero_degenti=num_degenti; numero_posti=num_posti; } void archiviodegenti(char *name_degente,int degenza_malato,int numero_degenti) { nome_degente=new char [strlen (name_degente)+1]; strncpy(nome_degente,name_degente,strlen (name_degente)); nome_degente [strlen (name_degente)+1]='{parsed_message}'; degenza_ricoverato=degenza_malato; numero_degenti++; cout<<"degenti numero : "<<numero_degenti<<endl; cout<<"nome degente : "<<nome_degente<<endl; } void calcolo_degenza_media(int degenza_ricoverato) { cout<<"degenza ricoverato : "<<degenza_ricoverato; int degenza_totale=0; for(int i=0;i<numero_degenti;i++) { degenza_totale=degenza_totale+degenza_ricoverato; } giorni_degenza_media=degenza_totale/numero_degenti; }
se prima richiamo il metodo archiviodegenti dal main tutto risulta regolare, se poi richiamo sempre dal main la funzione calcol_degenza_media il metodo piglia i valori cosi come sono impostati nel costruttore. ma come faccio a cambiarli nel costruttore, perchè se provo a mettere una variabile al posto di =0 il compilatore mi dice che è una variabile non statica e se non metto nulla non compila lo stesso. mi servirebbe un modo per far si che il metodo giorni_degenza_media prendesse i parametri in input dal metodo archiviodegenti. per esempio potrei richiamare il metodo all'interno della funzione ma non so se si può fare ne come si fa!
scusate la confusione!
grazie mille'; degenza_ricoverato=degenza_malato; numero_degenti++; cout<<"degenti numero : "<<numero_degenti<<endl; cout<<"nome degente : "<<nome_degente<<endl; } void calcolo_degenza_media(int degenza_ricoverato) { cout<<"degenza ricoverato : "<<degenza_ricoverato; int degenza_totale=0; for(int i=0;i<numero_degenti;i++) { degenza_totale=degenza_totale+degenza_ricoverato; } giorni_degenza_media=degenza_totale/numero_degenti; }
se prima richiamo il metodo archiviodegenti dal main tutto risulta regolare, se poi richiamo sempre dal main la funzione calcol_degenza_media il metodo piglia i valori cosi come sono impostati nel costruttore. ma come faccio a cambiarli nel costruttore, perchè se provo a mettere una variabile al posto di =0 il compilatore mi dice che è una variabile non statica e se non metto nulla non compila lo stesso. mi servirebbe un modo per far si che il metodo giorni_degenza_media prendesse i parametri in input dal metodo archiviodegenti. per esempio potrei richiamare il metodo all'interno della funzione ma non so se si può fare ne come si fa!
scusate la confusione!
grazie mille
Ultima modifica effettuata da el cuba libre 24/08/11 9:43
aaa