Você está na página 1de 6

import java.io.

FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Automobile> products = new ArrayList<Automobile>();
ArrayList<Automobile> cadou = new ArrayList<Automobile>();
BMW blue = new BMW();
Audi r = new Audi();
Mercedes q = new Mercedes();
double pret_cadou;
for(Automobile tampon:products)
{
pret_cadou =+ tampon.pret;
}
//Sortarea bomboanelor dupa indice_zahar
Collections.sort(products);
while(true)
{
System.out.println("\nAlgeti optiunea dorita: \n");
System.out.println("1. Introduceti dulciuri in cadou");
System.out.println("2. Deserializati lista de dulciuri din
cadou");
System.out.println("3. Afisarea listei de bomboane din
cadou");
System.out.println("4. Pretul pentru cadou");
System.out.println("5. Gasiti bomboana in diapozonul de indice
de zahar dorit");
System.out.println("6. Afisati sortarea listei de bomboane");
System.out.println("7. Afisati pretul la fiecare bomboana");
System.out.println("x -> iesire\n");
String optiunea = sc.next();

switch(optiunea) {
case "1" :{
try {
System.out.println("Introduceti numarul de dulciuri: ");
int n = sc.nextInt();
if (n>0) {
String nume2;
double pret2, capacitatea2;
int viteza2;
for(int i=0; i<n; i++) {
System.out.println("Introduceti denumirea
automobilului:");
nume2 = sc.next();
System.out.println("Introduceti pretul
automobilului :");
pret2 = sc.nextDouble();
System.out.println("Introduceti capacitatea
automobilului :");
capacitatea2 = sc.nextDouble();
System.out.println("Introduceti viteza
automobilului :");
viteza2 = sc.nextInt();
Automobile a1= new Automobile (nume2, pret2,
capacitatea2, viteza2);
products.add(a1);
}
try {
FileOutputStream file= new
FileOutputStream("D:\\automobile.ser");
ObjectOutputStream st= new
ObjectOutputStream(file);
st.writeObject(products);
file.close();
}
catch(IOException ex) {ex.printStackTrace();}
}
else {System.out.println("Introduceti numarul de
dulciuri mai mare ca 0");}
}
catch(java.util.InputMismatchException e)
{System.out.println("Introduceti va rog numere!!! sau pentru Pret si Greutate
scrieti ca in exemplu `0,89`.....Incercati din nou!!!");}
break;
}
case "2" :{
try {
FileInputStream file= new
FileInputStream("D:\\automobile.ser");
ObjectInputStream st = new
ObjectInputStream(file);
cadou = (ArrayList)st.readObject();
st.close();
file.close();
}
catch(IOException ex) {ex.printStackTrace();}
catch(ClassNotFoundException e) {e.printStackTrace();}
blue.addAll(cadou);
r.addAll(cadou);
q.addAll(cadou);
System.out.println("Deserializarea sa efectuat cu
succes!!!");
}
case "3" :{
cadou.forEach(Automobile::report);

System.out.println("\n==========================================================
==============");
break;
}
case "4" :{
//System.out.println("Avertizare mai intii afisati lista
deserelizata");
pret_cadou = 0;
//calcularea pretului total pentru cadou
for(Automobile tampon:cadou)
{
pret_cadou +=
tampon.pret*tampon.capacitatea;
}
double pret = Math.round(pret_cadou);
System.out.println("\nPretul total al automobilelor
este de "+pret+" lei");

System.out.println("\n====================================================
==================");
break;
}
case "5" :{
//System.out.println("Avertizare mai intii afisati lista
deserelizata");
//afisarea listei de bomboane a caror indice de zahar
este cuprins intre `a` si `b`
blue.diapazon();

System.out.println("\n==========================================================
================");
break;
}
case "6" :{
//System.out.println("Avertizare mai intii afisati
lista deserelizata");
//Sortarea listei dupa indicele de zahar
Collections.sort(cadou);
System.out.println("\n"+cadou);

System.out.println("\n====================================================
====================");
break;
}
case "7" :{
//System.out.println("Avertizare mai intii afisati lista
deserelizata");
//Afisarea preturilor mai detaliate
blue.pret();//apelarea metodei pret din clasa BMW
r.pret();//apelarea metodei pret din clasa Audi
q.pret();//apelarea metodei pret din clasa Mercedes

System.out.println("\n==========================================================
=================");
break;
}
case "x":
System.exit(0); //iesirea din program
}
}
}

}
import java.io.Serializable;
class Automobile implements Comparable, Serializable{/*clasa dulciuri care
implementeaza comparable pentru a putea face compararea listei de dulciuri*/
public String nume;//numele bomboanei
public double pret;//pretul bomboanei la kg
public double capacitatea;//greutatea care o vom procura
public int viteza;//indicele de zahar care o contine bomboana
//constructorul clasei cu 4 parametri
public Automobile(String nume, double pret, double capacitatea, int viteza)
{
this.nume = nume;
this.pret = pret;
this.capacitatea = capacitatea;
this.viteza = viteza;
}
//metoda toString
@Override
public String toString() {
return " Denumirea=" + nume + " Pretul=" + pret + " Capacitatea=" +
capacitatea + " Viteza =" + viteza+ "\n";
}
public void report() {
//metoda report pentru a afisa lista de dulciuri
System.out.println("Denumirea "+nume+",");
System.out.println("Pretul: "+pret+" $,");
System.out.println("Capacitatea: "+capacitatea);
System.out.println("Viteza: "+viteza+"\n");
}
//metoda getName
public String getName() {
return nume; //returneaza valoare nume
}
//metoda getPret
public double getPret() {
return pret; //returneaza valoarea pret
}
//metoda getGreutate
public double getCapacitatea() {
return capacitatea; //returneaza valoarea greutate
}
//metoda getIndice_zahar
public int getViteza() {
return viteza; //returneaza valoarea indice_zahar
}
//metoda compareTo pentru a face compararea intre indicele de zahar
@Override
public int compareTo(Object o) {
int comparezah=((Automobile)o).getViteza();
/* For Ascending order*/
return this.viteza-comparezah;
}

}
import java.util.ArrayList;
import java.util.Scanner;
class BMW extends ArrayList<Automobile> {//clasa Nefis care extinde lista de
dulciuri
//metoda pret pentru calcularea pretului pentru bomboanei Nefis
public void pret() {
String str = "BMW";
for(int i=0; i < size(); i++) {//parcurgerea listei
if(get(i).getName().equalsIgnoreCase(str)) {//verificam daca este in
lista bomboana Nefis
//Calculam pretul bomboanei Nefis in dependenta de greutate si
pret
System.out.println("Pretul pentru automobilul BMW
"+Math.round(get(i).getPret()*get(i).getCapacitatea())+" $");
}
}
}
//metoda diapazon
public void diapazon() {
int j=0;//declararea variabilei j si initializarea eii cu 0
int a; //declararea variabilei a
int b; //declararea variabilei b
Scanner sc = new Scanner(System.in);//Scanner pentru a putea introduce de
la tastatura numerele
try {
System.out.println("\n\nIntroduceti un numar = ");//Afisarea la ecran a
mesajului
a = sc.nextInt();//Citirea de la tastatura variabilei a
System.out.println("\nIntroduceti un numar = ");//Afisarea la ecran
a mesajului
b = sc.nextInt();//Citirea de la tastatura variabilei b
if((a>=0)&&(b>=0)) {//Vefificam daca variabilele `a` si `b` sunt mai
mare ca 0
for(int i=0; i < size(); i++) {//parcurgerea listei de bomboane
//Verificam daca indicele de zahar a bomboanei intra in
diapazonul `a` si `b'
if(get(i).getViteza()>=a && get(i).getViteza()<=b) {
//icrementarea lui j;
j++;
//Afisarea listei de bomboane care intra in diapazonul `a` si
`b'
System.out.println("Denumirea autmobilului "+get(i).nume+"
Pretul: "+get(i).pret+" $ Capacitatea: "+get(i).capacitatea+" Viteza:
"+get(i).viteza);
}
}
//Veficam daca j este egal cu 0 atunci in lista de bomboane nu
exista bomboana cu indicele de zahar cuprins intre 'a' si 'b'
if (j==0) {System.out.println("In lista de dulciuri nu exista
bomboana la care indicele de zahar sa fie cuprins intre "+a+" si "+b);}
}
//Afisarea la ecran ca variabilele `a` si `b` sunt mai mici ca 0
else {System.out.println("Intoduceti un numar pozitiv");}
}
//Folosim catch pentru evitarea erorilor de tip ca introducem litere
sau simboluri
catch(java.util.InputMismatchException e) {System.out.println("Introduceti va
rog numere!!!.....Incercati din nou!!!");}
}}
import java.util.ArrayList;
class Audi extends ArrayList<Automobile> { //clasa Snickers care extinde lista
de dulciuri
public void pret() {
String str = "Audi";
for(int i=0; i < size(); i++) {//parcurgerea listei de bomboane
if(get(i).getName().equalsIgnoreCase(str)) {//verificam daca este in
lista bomboana Snickers
//Calculam pretul bomboanei Nefis in dependenta de greutate si
pret
System.out.println("Pretul pentru dulciurile Snickers:
"+Math.round(get(i).getPret()*get(i).getCapacitatea())+" $");
}
}
}
}

import java.util.ArrayList;
class Mercedes extends ArrayList<Automobile> {//clasa MMs care extinde lista de
dulciuri
//metoda pret
String str="Mercedes";
public void pret() {
for(int i=0; i < size(); i++) {//parcurgerea listei de bomboane
if(get(i).getName().equalsIgnoreCase(str)) {//verificam daca este in
lista bomboana M&M痴
//Calculam pretul bomboanei MMs in dependenta de greutate si
pret
System.out.println("Pretul pentru automobilele Mercedes:
"+Math.round(get(i).getPret()*get(i).getCapacitatea())+" lei");

}
}
}
}

Você também pode gostar