Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-09-2015, 12:44   #1
ansem90
Junior Member
 
Iscritto dal: May 2010
Messaggi: 14
help classi e puntatori c++ per esame

salve a tutti ragazzi,ho questo programma svolto ma faccio fatica a capire alcune cose e la tipologia d'esame è molto simile tra i vari appelli.
In pratica devo costruire una classe Persona con nome e cognome,una classe derivata studente con matricola e tramite la bubblesort ordinare i nomi in base alla matricola...il tutto usando le classi.

#include<iostream>
#include<string.h>
using namespace std;


class Persona{ // inizio punto 1
private:
string Nome,Cognome;
public:
Persona(){ //definizione costruttore
Nome="";
Cognome="";
};

Persona(string name,string subname){ //funzione costruttore da definire dentro la classe
Nome=name;
Cognome=subname;

}
void insert(); //definizione funzioni
void setname(string name) {Nome=name;}
void setsubname(string subname) {Cognome=subname;}
string getname() {return Nome;}
string getsubname(){return Cognome;}
void visual();
};


void Persona::insert(){ //funzioni
string name,subname;
cout<<"inserire nome persona:"<<endl;
cin>>name;
setname(name);
cout<<"inserire cognome persona:"<<endl;
cin>>subname;
setsubname(subname);
}

void Persona::visual(){
cout<<"nome:"<<endl<<getname()<<endl;
cout<<"cognome:"<<endl<<getsubname()<<endl;
} //fine punto 1


class Studente: public Persona{ //inizio punto 2,definizione sottoclasse studente
int Matricola;
public:
Studente(){ //definizione costruttore
Matricola=0;
};
Studente(int mat){ //funzione costruttore
Matricola=mat;
}
void insertmat(); //definizione funzioni punto 2
void setmat(int mat) {Matricola=mat;}
int getmat() {return Matricola;}
void visualmat();

};

void Studente::insertmat() { //funzioni 2
int mat;
cout<<"inserire la matricola:"<<endl;
cin>>mat;
setmat(mat);
}

void Studente::visualmat(){
cout<<"matricola:"<<getmat()<<endl;
} //fine punto 2




class ListaStudenti: public Studente{ //inizio punto 4
Studente *lista; //dichiaro un puntatore lista che punta a una variabile Studente
int n;
public:
void ordina();
void visuallista();
ListaStudenti(){ //definizione costruttore lista
cout<<"inserire il numero di studenti:"<<endl;
cin>>n;
lista=new Studente[n]; //dichiaro un array di puntatori a studente (new funziona come & e restituisce un indirizzo)
for (int i=0;i<n;i++){
cout<<"inserisci studente"<<i+1<<endl;
lista[i].insert();
lista[i].insertmat() ; //richiamo la funzione di inserimento di Persona,siccome che listastudenti è una sottoclasse di studenti che è una sottoclasse di persona
}
}
~ListaStudenti(){delete[] lista;} //distruttore
};


void ListaStudenti::ordina(){ //algoritmo di ordinamento lista
for(int i=0;i<n;i++){
for(int j=0;j<n-1;j++){
if (lista[j].getmat()>lista[j+1].getmat()){ //chiamo la funzione di studente getmat e ordino quella
Studente temp = lista[j+1];

lista[j+1] = lista[j];

lista[j] = temp;
}
}
}
}

void ListaStudenti::visuallista(){ //utilizzo la funzione visual di persona per visualizzare l'array di studenti
for(int i=0;i<n;i++){
lista[i].visual();
lista[i].visualmat();
}

}

int n;
Studente lista[n];

main(){
ListaStudenti a;
cout<<"lista non ordinata:"<<endl;
a.visuallista();
a.ordina();
cout<<"lista studenti ordinata:"<<endl;
a.visuallista();
return 0;
}


Mi servirebbe una mano col capire costruttori e distruttori...in particolare vorrei capire se ad esempio avessi definito Nome e Cognome in public cosa sarebbe cambiato con il costruttore...consequenzialmente quindi vorrei capire le funzioni setname e getname a cosa servono(se ho capito bene,definendo Nome e Cognome privati non posso accedervi direttamente e fare le operazioni su di loro,ma tramite altre variabili che poi daranno il loro valore a Nome e Cognome tramite get e set,giusto?).
Infine siccome non sono praticissimo di puntatori,per realizzare la bubblesort si è usato un array di Studente con dei puntatori e l'operatore new...mi servirebbe sapere qualcosa in più su questo procedimento e se c'è un modo di semplificare le cose usando magari un array statico di Studente...grazie a tutti per l'attenzione!
ansem90 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
Standard sì, licenze no: la linea di Ope...
Guida all'acquisto: quale smartphone HON...
PS6 e nuova XBOX, i SoC avrebbero supera...
Alcuni frigoriferi smart di Samsung si a...
Italiani e IA, l'entusiasmo cala: avanti...
Robin Williams resuscitato dall'IA per p...
Acquista una RTX 5090 usata per risparmi...
CLOSEDQUORUM, il malware che usa quattro...
Microsoft: Calendar, People e Files vann...
Due missili su una scuola elementare ira...
Pirate Face è il Pirate Bay degli LLM: i...
ASUS ROG Azoth 96 HE: con gli switch mag...
Tutte le offerte Amazon aggiornate: sono...
DeepSeek punta sempre di più sui ...
Apple rilascia le prime beta pubbliche d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v