labatteria.it • Leggi argomento - C'è una buon'anima che mi aiuta con C++?


C'è una buon'anima che mi aiuta con C++?

Qui nessuna conversazione sara' off-topic: tutti gli argomenti sono ammessi (eccetto quelli che rientrano negli altri forum).

Messaggioda Jack Jagoz il ven mag 09, 2008 11:49 am

Salve mi servirebbero delucidazioni su C++. Vorrei avere solo alcuni chiarimenti.

La prima e piu' importante è:

Ho una classe con dati privati. Ergo ho messo metodi di set/get per accedervi.
In input, come faccio a modificare i dati della classe. Io avevo pensato:
creo delle variabili temporanee. Le uso per scrivervi i dati in input. Poi queste variabili le utilizzo col set(in una classe temporanea che poi mettero' in un vettore).

C'è qualcuno?

Grazie in anticipo :wink:
Ultima modifica di Jack Jagoz il ven mag 09, 2008 12:35 pm, modificato 1 volta in totale.
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda sl0wg33k * BANNED * il ven mag 09, 2008 12:12 pm

ma forse se scrivi le domande qualcuno arriva ;)

p.s. purtroppo io so solo fare "hello world!" e manco a memoria :D
Let them be a martyr but don't let them suffer For these chains I fear they will have to linger for life [groundation]
Avatar utente
sl0wg33k * BANNED *
guru delle pelli
guru delle pelli
 
Messaggi: 2313
Iscritto il: dom apr 13, 2008 1:17 am
Località: where you wouldn't be

Messaggioda Ste il ven mag 09, 2008 12:45 pm

scusa non hai funzioni pubbliche per lavorare sui dati privati? non ho ben capito cosa vorresti fare con le variabili temporanee
Santissima Alleanza Ufip Cymbal Forever devoted member
Cavaliere Templare del Sacro Ordine di Sonor
Immagine
Avatar utente
Ste
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 521
Iscritto il: mar ago 02, 2005 12:53 pm
Località: Como

Messaggioda Jack Jagoz il ven mag 09, 2008 12:57 pm

Si ho messo delle funzioni di get e di set...Siccome son privati (i dati) devo utilizzare il set per mettere i dati in input nell'oggetto...
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:02 pm

eccomi :P

i metodi get & set servono proprio per modificare i dati della classe quando sono privati, dato che un cosa cosi MyClasse->dato = blabla; darebbe un exception

allora.. io programmo con il c# però se non ricordo male dato che è c-like
in c++ dovrebbe essere una cosa simile:

Codice: Seleziona tutto
public class MyClasse
{
    private int dato1;
    public int InsDato1;

   MyClasse() //costruttore
   {
      int dato1=0; //inizializzazione
   }

   public int InsDato
   {
       set{ dato1 = value;}
       get{ return dato1; }
   }

}


dovrebbe essere circa cosi.. ripeto potrebbe differire qualcosa dal c# ma è per rendere l'idea
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 1:09 pm

Si si..questo lo so..la definizione della classe la so..
Il mio problema è nel main..Cioe': chiedo di darmi il dato1 e devo schiaffarlo nel suo posto. Chiedo il dato2 e lo schiaffo nel suo posto ecc... ma come? io appunto proponevo di metterli in variabili temp che vengono poi usate come parametri del set...

void main(){

Costruttore classe

int a,b;

cout<<"dammi dato1";
cin>>a;
myclass.set1(a);
cout<<"dammi dato2";
cin>>b;
myclass.set2(b);

e poi metto il myclass in un vettore col pushback..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:12 pm

mhmm perchè usare una funzione quando puoi fare direttamente cosi

cin>> myclass.dato1; ( o come si chiama )

ovviamente facendo attezione ai cast di tipo.. altrimenti posta il codice e vediamo di trovarti una soluzione perchè cosi non si capisce molto di quello che vuoi fare.. ;)
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 1:14 pm

beh certo questa è la soluzione piu' semplice ma dovrei mettere tutto in public ergo il metodi di set/get non servono piu' ad una cippa...

io vorrei sapere come mettere dei dati inseriti dall utente nell'oggetto avente pero' dati privati accessibili solo con metodi pubblici..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:19 pm

senti posta il codice :wink: perchè ci sono mille soluzioni.. potrei anche usare il valore di ritorno della funzione get .. etc etc etc..
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 1:20 pm

vuoi che ti posto come lo farei io?
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:21 pm

si il codice della classe, per capire come hai strutturato tutto..
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 1:25 pm

ok è un programma di gestione delle previsioni del tempo...(progetto universitario.. s'era capito? :mrgreen: )

Codice:

#include <iostream>
#include <string>
#include <vector>

class previsione {
string citta;
date data;
int temperatura;
string tempo;
string vento;
int umidita;

void setcitta(string city){citta=city;}
void setdata(string city){} // devo definire il set della data..
void settempe(int temp){temperatura=temp;}
void settempo(string weather){tempo=weather;}
void setvento(string wind){vento=wind;}
void setumidita(int umidity){umidita=umidity;}

string getcitta() {return citta;}
date getdata () //defo sistemare anche il get della data
int gettempe () {return temperatura;)
string gettempo () {return tempo;}
string getvento () {return vento;}
int getumidita () {return umidita;)
};


Poi vabbe' devo metterci l'overload del << per mostrare tutto di una certa classe, ma questo non è un problema..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda The Maus il ven mag 09, 2008 1:37 pm

:D Non è molto chiaro, quello che vuoi fare... ma se ho capito bene, il codice che hai postato dovrebbe andare bene allo scopo.

(magari nella set controlla che il valore input sia valido, nei range giusti, etc etc)
My Drum Kit! * Member of: Sacra Alleanza Batteristi Rolandiani * Alleanza dei batteristi pelatoni * alleanza dei videogiocatori * Dirty old drummers alliance * Yamaha Elegance Club * Santa Alleanza degli Allievi o Ex Allievi di G.Gandino * Associazione Batteristi Centauri
Avatar utente
The Maus
Buddy Rich
Buddy Rich
 
Messaggi: 4188
Iscritto il: gio feb 15, 2007 11:28 am
Località: Torino

Messaggioda Jack Jagoz il ven mag 09, 2008 1:39 pm

La classe so che è giusta...Voglio solo sapere come allocare i dati inseriti dall'utente..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda The Maus il ven mag 09, 2008 1:42 pm

allocare? intendi PIU valori in input da memorizzare internamente alla classe?
My Drum Kit! * Member of: Sacra Alleanza Batteristi Rolandiani * Alleanza dei batteristi pelatoni * alleanza dei videogiocatori * Dirty old drummers alliance * Yamaha Elegance Club * Santa Alleanza degli Allievi o Ex Allievi di G.Gandino * Associazione Batteristi Centauri
Avatar utente
The Maus
Buddy Rich
Buddy Rich
 
Messaggi: 4188
Iscritto il: gio feb 15, 2007 11:28 am
Località: Torino

Messaggioda Jack Jagoz il ven mag 09, 2008 1:46 pm

si.. Devo chiedere all utente di inserire i dati della classe(citta', data, tempo ecc) poi inserire la classe(l oggetto) in un vettore...


Pero' in input separati..

esempio

dammi citta'
sistemo la citta' nella classe
dammi data
sistemo la data
ecc
Ultima modifica di Jack Jagoz il ven mag 09, 2008 1:49 pm, modificato 1 volta in totale.
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:47 pm

ahh.. ecco :D
e c'è bisogno di fare tutto sto casino ? un ciclo for .. et voilà.. ! ;)
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 1:50 pm

cioe'?non capisco dove c'azzecca il ciclo for..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 1:53 pm

fai un ciclo x richiedere i dati in sequenza .. e poi per l'inserimento fai una cosa simile:

for(int i = 0; i <totrichieste>> Vettore[i];
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda The Maus il ven mag 09, 2008 1:54 pm

Ok, devi farti un vettore di classi 'previsione'.

Una roba tipo:

previsione Prevs[5000]; // Se conosci il nr esatto o se sai che saranno cmq sotto quella soglia..

ti setti l'indice di partenza:

int Idx = 0;

while( Idx < 5000 )
{
// Ricevi/imposti l'input utente (non sto a scrivere tutto il codice...

Prevs[ Idx ].setcitta( "torino" );
Prevs[ Idx ].setdata( "12/10/2008" );

etc.

// incrementi l'indice quando passi all'utente successivo.

Idx++;

}

(Scritto molto alla buona)

(Spero di aver capito bene)
My Drum Kit! * Member of: Sacra Alleanza Batteristi Rolandiani * Alleanza dei batteristi pelatoni * alleanza dei videogiocatori * Dirty old drummers alliance * Yamaha Elegance Club * Santa Alleanza degli Allievi o Ex Allievi di G.Gandino * Associazione Batteristi Centauri
Avatar utente
The Maus
Buddy Rich
Buddy Rich
 
Messaggi: 4188
Iscritto il: gio feb 15, 2007 11:28 am
Località: Torino

Messaggioda Dj^Hoke il ven mag 09, 2008 2:01 pm

esatto.. quoto Maus.. lui è stato piu esplicativo..

per perfezionare puoi fare cosi

Prevs[ Idx ].setdata( cin.get() );

cin.get() fa la stessa cosa di cin >> a; solo che passi direttamente il valore alla funzione ed eviti l'allocazione di una variabile..
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda The Maus il ven mag 09, 2008 2:06 pm

:D eheh non uso la CIN da secoli (ormai sono un uomo MFC/.NET)
My Drum Kit! * Member of: Sacra Alleanza Batteristi Rolandiani * Alleanza dei batteristi pelatoni * alleanza dei videogiocatori * Dirty old drummers alliance * Yamaha Elegance Club * Santa Alleanza degli Allievi o Ex Allievi di G.Gandino * Associazione Batteristi Centauri
Avatar utente
The Maus
Buddy Rich
Buddy Rich
 
Messaggi: 4188
Iscritto il: gio feb 15, 2007 11:28 am
Località: Torino

Messaggioda Jack Jagoz il ven mag 09, 2008 2:07 pm

Temo non mi sia spiegato bene o io non abbia capito bene le vostre idee..

Allora: ho fatto la classe. Nel main mettero ' un menu' col switch case...

Una delle opzioni sara'"aggiungi previsione per una data citta' ad un certa data...

Ed è in questa opzione che v'è il mio problema... Devo far riempire i dati di un nuovo oggetto all utente. Poi l oggetto lo metto nel vettore di previsioni col push_back...
Il tutto dentro magari un ciclo do.. while per continuare a creare nuove previsioni finchè vuole l'utente..

Spero di essermi spiegato :wink:

@Djhoke Leggo solo ora la risposta. ok allora faro' cosi'. Bueno, era la cosa che cercavo. Grazie..
Ultima modifica di Jack Jagoz il ven mag 09, 2008 2:10 pm, modificato 1 volta in totale.
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 2:08 pm

eh io C# quindi .NET ormai da 4 anni.. il c++ è un vecchio ricordo :suk

EDIT:

allora ti conviene usare una matrice.. in cui le colonne sono le città e le righe le varie date.. poi fai un vettore contenente il nome della città.. una cosa tipo questa:

char Città[totcittà] = "Milano","Roma", etc..

poi la matrice cosi

char Dati[totcittà, totgiorni];

quando prendi poi un dato usi l'id della colonna per passarlo all'array città in modo che ti stampi il nome..

quindi diciamo..

// prelievo dati
int id_Città = 2;
string dati = Dati[id_Città,10];
quando mandi in stampa i dati
fai cosi
cout >> "I dati per la città di" . Città[id_Città] . " Sono: ";

qua il for che stampa il contenuto

spero sia chiaro..
Ultima modifica di Dj^Hoke il ven mag 09, 2008 2:15 pm, modificato 1 volta in totale.
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 2:12 pm

Scusate..un ultima cosa..come faccio a inserire dati in una classe contenuta in un altra classe?
nel programma ho inserito una classe data(vedere piu' su)..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda The Maus il ven mag 09, 2008 2:16 pm

@Jack... :wink: quindi il problema era solo di COME chiedere l'input all'utente?

:oops: Non ci sto capendo più una mazz...
My Drum Kit! * Member of: Sacra Alleanza Batteristi Rolandiani * Alleanza dei batteristi pelatoni * alleanza dei videogiocatori * Dirty old drummers alliance * Yamaha Elegance Club * Santa Alleanza degli Allievi o Ex Allievi di G.Gandino * Associazione Batteristi Centauri
Avatar utente
The Maus
Buddy Rich
Buddy Rich
 
Messaggi: 4188
Iscritto il: gio feb 15, 2007 11:28 am
Località: Torino

Messaggioda Dj^Hoke il ven mag 09, 2008 2:17 pm

dio mio , non ci sto capendo piu una mazza :D

@Jack: Ok , però cerca di essere piu chiaro con le richieste :P
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 2:18 pm

Era banalmente come mettere i dati inseriti dall utente..
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Messaggioda Dj^Hoke il ven mag 09, 2008 2:37 pm

oky.. l'importante è che hai risolto ! ;)
My Drum -> Alesis DM6
Avatar utente
Dj^Hoke
maestro del groove
maestro del groove
 
Messaggi: 886
Iscritto il: sab mag 20, 2006 3:53 pm
Località: Sassari,Sardegna
facebook: DjHoke

Messaggioda Jack Jagoz il ven mag 09, 2008 2:39 pm

ehm ci sarebbe un ultima cosettina.. nel mio terzultimo post :lol:
L'allegra compagnia del Pota
Gemellato con l'elettro-compagno Nuvolorapido :tru

Infiltrato da lachitarra.it
Avatar utente
Jack Jagoz
ho il ritmo nel sangue
ho il ritmo nel sangue
 
Messaggi: 582
Iscritto il: sab dic 22, 2007 6:00 pm
Località: Nella reggia della dea Atalanta

Prossimo

http://www.youtube.com/watch?v=NP5_CJg7oKQ

Torna a Tutto il resto

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti