Sunteți pe pagina 1din 8

Ministerul Educaiei al Republicii Moldova

Universitatea de Stat din Moldova


Facultatea de Matematic i Informatic
Catedra Tehnologii de Programare

Dare de seama la Java


Lucrare de laborator 1

Tema : Realizarea claselor n limbajul Java


Varianta: 7
Clasa: Mturtor Mustcios

Efectuat:

Verificat:

studentul grupei I21

lect.univers., magistru in inform.

Epifanova Irina .

Chiinu 2015

Formularea problemei:
De creat clasa Mturatorul mustcios cu cteva cmpuri.
Cmpurile obligatorii:
- (int), pentru pstrarea numrului de mturi a mturatorului;
- un vector dinamic, n care se pstreaz informaia despre coeficientul de uzare a fiecrei mturi
(coeficientul de uzare s fie de la 0 - 5, unde 5 - ultimul coeficient n cazul cnd matura sa uzat
complet).
- un cmp de tip intreg static in care se pastreaza numarul de maturatori creati.
Cmpuri opionale: vrsta maturtorului, nlimea, greutate(kg), nume, lungimea musttii .a.
De creat trei tipuri de constructori pentru aceast clas (cu alocare dinamic a memoriei):
- constructor standard (implicit - fr parametri) toate datele de introdus de la tstatur
- cteva constructori cu parametri
- constructor de copiere
De creat metodele pentru acces i modificarea tuturor cmpurilor clasei.
De creat metoda pentru a afia la ecran toat informaia despre mturtor, adic toate cmpurile din
aceast clas.
De creat metoda static, care compar doi mturtori (2 obiecte ale clasei, primate ca parametrii la
intrare) dup hrnicie, dup numarul de mature uzate (suma coificienilor de uzare);
De creat metoda, care renoieste maturile uzate( adic dac matura are coeficientul de uzare 5 se
arunca i se nlocuete cu una nou care are coeficientul de uzare 0);
n metoda main() de creat ciiva mturtori utiliznd toi constructorii declarai. Dup creerea
fiecrei instantze a clasei Mturtor, de afiat la ecran cmpurile cu ajutorul metodei respective.
De creat un vector dinamic din obiectele clasei i de initializat vectorul creat, folosind 3 tipuri de
constructor. De afiat la ecran (in ciclu) informatia obiectelor din vector. De comparat civa
mturtori cu ajutorul metodei respective. Rezultatele comparrii de afiat la ecran. De reactualizat
inventariul mturtorului, de asemenea cu ajutorul metodei corspunztoare. Rezultatele de afiat la
ecran.
Pentru nota 10. Adaugator pentru tot ce este descris mai sus:
- un constructor care primete ca parametru denumirea fiierului textual (String), de unde se incarc
valori pentru cmpurile obiectului creat.
- o funcie care nscrie toate cmpurile clasei n fiier, numele fisierului se indic ca parametru la
intrare.
- n funcia main pentru toate obiectele create de salvat datele n fiiere, denumirile crora se
preiau de la numele obiectelor.

Codul programului:
import java.util.*;
import java.io.*;
class MaturatorMustacios {
String name;
int maturi;
int virsta;
byte lungime_mustata;
int uzarea[];
static int nr;
MaturatorMustacios() {
System.out.print("Introdu numele Maturatorului Mustacios: ");
String input = null;
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(reader);
try {
name = in.readLine();
} catch (Exception e) {
}
System.out.print("Introdu numarul de maturi: ");
try {
input = in.readLine();
maturi = Integer.parseInt(input);
} catch (Exception e) {
}
System.out.print("Introdu virsta Maturatorului Mustacios: ");
Scanner a = new Scanner(System.in);
virsta = a.nextInt();
System.out.print("Introdu lungimea mustatii Maturatorului Mustacios: ");
lungime_mustata = a.nextByte();
System.out.print("Introdu uzarea fiecarei maturi: ");
uzarea = new int[maturi];
for (int i = 0; i < maturi; i++)
uzarea[i] = a.nextInt();
nr++;
}
MaturatorMustacios(int new_virsta, String name, int new_maturi) {
if ((new_virsta >= 16) && (new_virsta < 75))
virsta = new_virsta;
this.name = name;
if ((new_maturi >= 1) && (new_maturi <= 10))
maturi = new_maturi;
lungime_mustata = (byte) 15;
uzarea = new int[maturi];
for (int i = 0; i < maturi; i++)
uzarea[i] = 2;
nr++;
}
MaturatorMustacios(byte new_lungime_mustata, String name) {
this.name = name;
if ((new_lungime_mustata >= 1) && (new_lungime_mustata <= 30))
lungime_mustata = new_lungime_mustata;
maturi = 5;
virsta = 40;
uzarea = new int[maturi];
for (int i = 0; i < maturi; i++)
uzarea[i] = 5;
nr++;
}

MaturatorMustacios(MaturatorMustacios Clon) {
name = Clon.name;
virsta = Clon.virsta;
maturi = Clon.maturi;
lungime_mustata = Clon.lungime_mustata;
uzarea = new int[maturi];
for (int i = 0; i < maturi; i++)
uzarea[i] = Clon.uzarea[i];
nr++;
}
MaturatorMustacios(String fileName) {
try {
DataInputStream dis = new DataInputStream(new FileInputStream(
fileName));
byte[] datainBytes = new byte[dis.available()];
dis.readFully(datainBytes);
dis.close();
String content = new String(datainBytes, 0, datainBytes.length);
String[] str1 = content.split(" ");
// System.out.println(Arrays.toString(str1));
name = str1[0];
maturi = Integer.parseInt(str1[1]);
virsta = Integer.parseInt(str1[2]);
lungime_mustata = Byte.parseByte(str1[3]);
uzarea = new int[maturi];
for (int j = 0, i = 4; j < maturi; j++, i++)
uzarea[j] = Integer.parseInt(str1[i]);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public String get_name() {
return name;
}
public byte get_lungime_mustata() {
return lungime_mustata;
}
public int get_maturi() {
return maturi;
}
public int get_virsta() {
return virsta;
}
public int get_uzarea(int index) {
if ((index >= 0) && (index < maturi))
return uzarea[index];
else {
System.out.println("Nu exista asa matura");
return -1;
}
}
public void set_name(String new_name) {
name = new_name;
}
public void set_lungime_mustata(byte new_lungime_mustata) {
if ((new_lungime_mustata >= 1) && (new_lungime_mustata <= 30))
lungime_mustata = new_lungime_mustata;
}

public void set_virsta(int new_virsta) {


if ((new_virsta >= 16) && (new_virsta <= 77))
virsta = new_virsta;
}
public void set_maturi(byte new_maturi) {
if ((new_maturi >= 1) && (new_maturi <= 10) && (new_maturi != maturi)) {
int temp[] = new int[maturi];
for (int i = 0; i < maturi; i++)
temp[i] = uzarea[i];
uzarea = new int[new_maturi];
if (new_maturi < maturi)
for (int i = 0; i < new_maturi; i++)
uzarea[i] = temp[i];
else
for (int i = 0; i < maturi; i++)
uzarea[i] = temp[i];
maturi = new_maturi;
}
}
public void set_uzarea(int index, int new_uzare) {
if ((index >= 0) && (index < maturi) && (new_uzare >= 0)
&& (new_uzare < 5.0f))
uzarea[index] = new_uzare;
}
public void afisareInfo() {
System.out.println(" Numele Maturatorului Mustacios este " + name);
System.out.println(" Virsta Maturatorului Mustacios este " + virsta);
System.out.println(" lungimea mustatii Maturatorului Mustacios este "
+ lungime_mustata);
System.out.println(" Maturatorul Mustacios are " + maturi + " maturi");
System.out.print(" Uzarea maturilor : ");
for (int i = 0; i < maturi; i++)
System.out.print(" " + uzarea[i] + " ");
System.out.println();
System.out.println(" Harnicia Maturatorului Mustacios este "
+ harnicia());
}

System.out.println(" \n ------------------------------------ ");

public int harnicia() {


int sum = 0;
for (int i = 0; i < maturi; i++)
sum += uzarea[i];
return sum;
}
static void comparareHarnicie(MaturatorMustacios M1, MaturatorMustacios M2) {
if (M1.harnicia() > M2.harnicia())
System.out.println("Maturatorul Mustacios " + M1.name
+ " este mai harnic decit MaturatorMustaciosul " + M2.name);
else
System.out.println("Maturator Mustacios " + M2.name
+ " este mai harnic decit MaturatorMustaciosul " + M1.name);
}
public void reinnoire() {
int count = 0;
for (int i = 0; i < maturi; i++)
if (uzarea[i] == 5) {
uzarea[i] = 0;
count++;

}
System.out.println("Am inlocuit " + count
+ " maturi uzate ale Maturatorului Mustacios " + this.name);
}
public void writeToFile(String fileName) throws FileNotFoundException,
UnsupportedEncodingException {
PrintWriter writer = new PrintWriter(fileName, "UTF-8");
writer.printf("%s ", name);
writer.printf("%d ", maturi);
writer.printf("%d ", virsta);
writer.print(lungime_mustata);
for (int i = 0; i < maturi; i++)
writer.printf(" %d", uzarea[i]);
}

writer.close();

public static void main(String args[]) {


System.out.println("\n");
MaturatorMustacios Harry = new MaturatorMustacios(20, "Harry", 5);
Harry.afisareInfo();
MaturatorMustacios Vasile = new MaturatorMustacios("Vasile.txt");
Vasile.afisareInfo();
MaturatorMustacios Ron = new MaturatorMustacios((byte) 15, "Ron");
Ron.afisareInfo();
MaturatorMustacios Dolly = new MaturatorMustacios(Ron);
Dolly.afisareInfo();
MaturatorMustacios Hermione = new MaturatorMustacios((byte) 12,
"Hermione");
Hermione.afisareInfo();
int nrMaturatorMustaciosi = 8;
MaturatorMustacios brigada[] = new MaturatorMustacios[nrMaturatorMustaciosi];
for (int i = 0; i < nrMaturatorMustaciosi; i += 4) {
brigada[i] = new MaturatorMustacios();
brigada[i + 1] = new MaturatorMustacios(25, "Maturator_Mustacios",
5);
brigada[i + 2] = new MaturatorMustacios((byte) 12,
"Maturator_Mustacios");
brigada[i + 3] = new MaturatorMustacios(Harry);
}
for (int i = 0; i < nrMaturatorMustaciosi; i++) {
brigada[i].set_name("Maturator_Mustacios nr." + (i + 1));
brigada[i].afisareInfo();
}
System.out.println();
MaturatorMustacios.comparareHarnicie(Hermione, Harry);
MaturatorMustacios.comparareHarnicie(brigada[0], brigada[1]);
Ron.reinnoire();
Ron.afisareInfo();
System.out.println("Au fost creati " + nr + " maturatori");
try {

Ron.writeToFile(Ron.get_name() + ".txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Harry.writeToFile("Harry.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block

e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Exemple:

Concluzii:
Efectund lucrarea de laborator am nvat cum se declar o clas n java, constructori cu i
fr parametri, citirea de la tastatur i afiarea la ecran, metode get i set pentru cmpurile clasei,
utilizarea cmpurilor i metodelor statice, vectori i alocarea memoriei n Java, citirea din fi ier i
scrierea n fiier.
Lucrarea de laborator numrul 1 mi-a permis s n eleg conceptele de baz i s m ini iez n
sintaxa limbajului Java.

S-ar putea să vă placă și