Documente Academic
Documente Profesional
Documente Cultură
Lucrare de laborator № 1
Varianta: № 14
Clasa: „Sultan”
Epifanova Irina .
- Chişinău 2018 -
(listingul programului)
import java.io.*;
import java.util.*;
class Sultan
{
String Name; //numele Sultanului
double bani; //numărul banilor
int sotii; //numărul de soții
int frumusete[]; //vectorul dinamic cu frumusetea sotiilor
int rautate[]; //vectorul dinamic cu rautatea sotiilor
byte stres; //coeficientul stresului
static int nr_sultan=0; //numărul de sultani creați(obiectelor clasei)
Sultan(String nick)
{
Name=nick;
bani=10045.25;
sotii=10;
frumusete=new int[sotii]; //alocăm memorie pentru vectorul de frumusere- tipul elementelor este int, numarul lor=soții
for (int i=0; i<sotii; i++) //prin ciclu umplem vectorul cu 7. Variabila ciclului – i.
frumusete[i]=7;
rautate=new int[sotii]; //alocăm memorie pentru vectorul de rautate- tipul elementelor este int, numarul lor=soții
for (int i=0; i<sotii; i++) //prin ciclu umplem vectorul cu 3. Variabila ciclului – i.
rautate[i]=3;
stres=(byte)65;
nr_sultan++; //încrementarea numărului de obiecte
}
Sultan(Sultan Prototype) //constructorul de copiere este obligat să copie TOATE cîmpurile obiectului-parametru Prototype
{
Name=Prototype.Name;
bani=Prototype.bani;
stres=Prototype.stres;
sotii=Prototype.sotii;
frumusete=new int[sotii]; //alocăm memorie pentru vectorul de frumusere- tipul elementelor este int, numarul lor=soții
for (int i=0; i<sotii; i++)
frumusete[i]=Prototype.frumusete[i];
rautate=new int[sotii]; //alocăm memorie pentru vectorul de rautate- tipul elementelor este int, numarul lor=soții
for (int i=0; i<sotii; i++)
rautate[i]=Prototype.rautate[i];
nr_sultan++; // dacă este chemat constructorul => a fost creat un obiect => numărul obiectelor (nr) crește
}
public int get_mark(int index) //acces la elementul vectorului marks cu indicele index, adică la notă concretă
{
if ( (index >= 0) && (index < exams) ) //controlăm dacă in genere există notă cu indicele introdus (index)
return marks[index]; //dacă da, returnăm nota cu indicile dat
else //dacă nu – afișăm mesajul ca așa examen nu există
{
System.out.println("such exam doesn’t exist");
return -1;
}
}
public String getName() // accesul la cîmpul clasei name – returnează copia valorii cîmpului dat
{
return Name; // return this.name
}
public byte getstres() // accesul la cîmpul clasei stres – returnează copia valorii cîmpului dat
{
return stres; // return this.stres
}
public double getbani() // accesul la cîmpul clasei bani – returnează copia valorii cîmpului dat
{
return bani; // return this.bani
}
public int getsotii() // accesul la cîmpul clasei sotii – returnează copia valorii cîmpului dat
{
return sotii; // return this.sotii
}
public int getrautate(int id) //acces la elementul vectorului rautate cu indicele id, adică la rautatea concretă
{
if (id>=0 && id<sotii) //controlăm dacă in genere există rautate cu indicele introdus (id)
return rautate[id];
else //dacă nu – afișăm mesajul ca nu există
{
System.out.println("such exam doesn’t exist");
return -1;
}
}
public int getfrumusete(int id) //acces la elementul vectorului frumusete cu indicele id, adică la frumusetea concretă
{
if (id>=0 && id<sotii) //controlăm dacă in genere există frumusete cu indicele introdus (id)
return frumusete[id]; //dacă da, returnăm frumusetea cu indicile dat
else //dacă nu – afișăm mesajul ca nu există
{
System.out.println("such exam doesn’t exist");
return -1;
}
}
public void setName(int id, String Name1) //setează în cîmpului clasei name valoarea nouă a parametrului new_name
{
if(id >= 0 && id < nr_sultan && Name1!=Name && && Name1.length() != 0) //verificam daca id exista si lungimea stringului >0
Name=Name1;} // daca este corect, introducem valoarea lui în this.Name
public void setsotii(int nousotii) // setează în cîmpului clasei sotii valoarea nouă a parametrului nnousotii
{if(nousotii>0 && nousotii!=sotii && nousotii<100) //controlăm corectitudine lui nousotii
{int tmp[]=new int[sotii];
int tmp1[]=new int[sotii];
for (int i=0; i<sotii; i++)
{tmp[i]=frumusete[i];
tmp1[i]=rautate[i];}
frumusete= new int[nousotii]; //deoarece s-a schimbat numărul sotiilor, trebuie să se schimbe și frumusetea =>
rautate = new int[nousotii]; //deoarece s-a schimbat numărul sotiilor, trebuie să se schimbe și rautatea =>
void afisare()
{
System.out.println("==================================");
System.out.println("Sultan's name is: "+Name);
System.out.println("Sultan's bani is: "+bani);
System.out.println("Sultan's sotii is: "+sotii);
System.out.println("Sotii's frumusete are: ");
for (int i=0; i<sotii; i++)
System.out.print(frumusete[i]+" ");System.out.println(" ");
System.out.println("Sotii's rautate are: ");
for (int i=0; i<sotii; i++)
System.out.print(rautate[i]+" ");System.out.println(" ");
System.out.println("Sultan's stres is: "+stres);
}
System.out.println("=====================================");
System.out.println("Metodele set");
Clon.setstres((byte)80); //setăm la obiectul Clon- stres=80
Clon.setbani(15642); //setăm la obiectul Clon- bani=15642
Clon.setsotii(10); //setăm la obiectul Clon- sotii=10
Clon.afisare(); //afișăm la ecran toată informația despre Clon
System.out.println("\n_____________________________________");
System.out.println(" ");
System.out.println("Au fost creati sultani in numar de:"+ nr_sultan); //afișăm numărul de sultani creați
System.out.println("=====================================");
System.out.println(" ");
ComparSotii(Daniel,Andrei); //afișarea comparării soțiilor a lui Daniel și Andrei
ComparSotii(Alex,Mihai); //afișarea comparării soțiilor a lui Alex și Miahi
System.out.println("_____________________________________");
System.out.println(" ");
System.out.print("Sultanul cel mai sanatos este " + retea[winnerIndex].getName() + ". Coeficientul sanatatii este: " +
retea[winnerIndex].sanatatea());
System.out.println("\n_____________________________________");
System.out.println("In total sunt sotii in numar de:"+ sum); //afișarea numarului total de soții
}
Concluzie: