0% au considerat acest document util (0 voturi)
12 vizualizări11 pagini

Java.pp

Documentul detaliază un program Java care gestionează o farmacie, citind produse dintr-un fișier și organizându-le în liste pe categorii. De asemenea, include funcții pentru sortarea medicamentelor, verificarea unicității dispozitivelor medicale, gestionarea tastaturilor și cărților, precum și o agendă telefonică. Programul permite adăugarea, ștergerea și căutarea elementelor din liste, asigurându-se că acestea respectă anumite criterii de validare.

Încărcat de

Rosca Iulia
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
12 vizualizări11 pagini

Java.pp

Documentul detaliază un program Java care gestionează o farmacie, citind produse dintr-un fișier și organizându-le în liste pe categorii. De asemenea, include funcții pentru sortarea medicamentelor, verificarea unicității dispozitivelor medicale, gestionarea tastaturilor și cărților, precum și o agendă telefonică. Programul permite adăugarea, ștergerea și căutarea elementelor din liste, asigurându-se că acestea respectă anumite criterii de validare.

Încărcat de

Rosca Iulia
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 11

Farmacie

1. Sa se citeasca toate produsele din fisierul de intrare si sa se adauge toate intr-o colectie.
In paralel, sa se realizeze 3 liste diferite, pentru fiecare tip de produs existent si sa se
adauge produsele pe categoriile existente.
2. public static void main(String[] args) throws FileNotFoundException
3. { Scanner sc=new Scanner(new File("farmacie"));
4. ArrayList<Produse> Lista= new ArrayList<>();
5. while(sc.hasNextLine())
6. {
7. String Info=sc.nextLine();
8. if(Info!=null)
9. {
10. String[] Vector=Info.split("\\*");
11. String id=Vector[0];
12. String tip_produs=Vector[1];
13. String nume=Vector[2];
14. String descriere=Vector[3];
15. String producator=null;
16. String valabilitate=null;
17. if(Vector.length>4)
18. {
19. producator=Vector[4];
20. }
21. if(Vector.length>5)
22. {
23. valabilitate=Vector[5];
24. }
25. Produse ob1=new Produse(id,tip_produs, nume,
descriere,producator,valabilitate);
26. Lista.add(ob1);
27. }
28. }
29. for(int i=0;i<Lista.size();i++)
30. {
31. System.out.println(Lista.get(i));
32. }
33. ArrayList<Produse> Medicamente= new ArrayList<>();
34. ArrayList<Produse> DispozitiveMedicale= new ArrayList<>();
35. ArrayList<Produse> Dieta= new ArrayList<>();
36. for(int i=0;i<Lista.size();i++)
37. {
38. if(Lista.get(i).getTip_produs().equalsIgnoreCase("medicament"))
39. {
40. Medicamente.add(Lista.get(i));
41. }
42. if(Lista.get(i).getTip_produs().equalsIgnoreCase("dispozitiveMedi
cale"))
43. {
44. DispozitiveMedicale.add(Lista.get(i));
45. }
46. if(Lista.get(i).getTip_produs().equalsIgnoreCase("dieta"))
47. {
48. Dieta.add(Lista.get(i));
49. }
50. }
2.Sa se sorteze toate medicamentele dupa ID (prima componenta)
import java.util.Comparator;
public class Comparare implements Comparator<Produse>
{
@Override
public int compare(Produse o1, Produse o2)
{
if(o1.getId().compareToIgnoreCase(o2.getId()) ==-1)
{
return -1;
}
if(o1.getId().compareToIgnoreCase(o2.getId()) ==1)
{
return 1;
}
return 0;
}
}

Apelare main si afisare:


Collections.sort(Medicamente,new Comparare());
System.out.println(Medicamente.toString());

c.Sa se verifice daca exista dispozitve medicale unice in fisierul initial.


public static boolean unice(ArrayList<Produse> Lista)
{
HashSet<Produse> Unica=new HashSet<>(Lista);
return Lista.size()==Unica.size();
}
Si adaugare in clasa equals si hashset.
2. Se considera clasa Tastatura cu membrii: IDFabrica, pret, ListaButoane (unde fiecare Buton
este caracterizat prin pozitie (nr intreg de la 1-50) si denumire (ce reprezinta butonul respectiv),
anFabricatie.
1. Sa se scrie o metoda care retuneaza numarul de butoane pentru o tastatura data,
precum si caracteristicile pentru fiecare buton (una sub alta toate caracteristicile)
public static void nrbutoane(Tastatura ob5) {
ob5.getButoane().size();
System.out.println("Numarul de butoane este :" + " " +
ob5.getButoane().size());
for (int i = 0; i < ob5.getButoane().size(); i++)
System.out.println("Pozitia este" + " " + ob5.getButoane().get(i).getPozitie()
+ " " + "Denumirea este"
+ " " + ob5.getButoane().get(i).getDenumire());
}

2. Sa se scrie o metoda de comparare, care compara doua tastaturi (2 tastaturi sunt


identice daca au exact aceleasi caracteristici)
public static void comparare(ArrayList<Tastatura> List, Tastatura ob5) {
for (int i = 0; i < List.size(); i++) {
if (List.get(i).equals(ob5))
System.out.println("Cele doua tastaturi sunt identice ");
else
System.out.println("Cele doua tastaturi nu sunt identice");
break;
}
}

3. Sa se scrie o metoda care primeste ca parametru o lista de butoane si care testeaza


daca lista este sau nu unica SI daca toate butoanele au pozitie valida (adica intre 1
si 50). (daca nu merge hash)
public static boolean test2(ArrayList<Buton> Butoane) {
for (int i = 0; i < Butoane.size(); i++) {
boolean gasit = false;
for (int j = i + 1; j < Butoane.size() - 1; j++) {
if
(Butoane.get(i).getDenumire().equalsIgnoreCase(Butoane.get(j).getDenumir
e())
|| Butoane.get(i).getPozitie() == Butoane.get(j).getPozitie()) {
gasit = true;
}
}
if(gasit == true) {
return false;
}
}return true;
}
Si apelarea din main si stergere duplicate.
if(test2(Butoane)==true)
{
System.out.println("Lista e unica");
}
else if(test2(Butoane)==false)
{
System.out.println("Lista nu e unica");
}
HashSet<Buton> unice = new HashSet<Buton>(Butoane);
ArrayList<Buton> unicefinal = new ArrayList<Buton>(unice);
for(Buton abc:unicefinal)
System.out.println(abc);

4. Daca nu sunt butoane valide, atunci sa se stearga cele invalide.


5. public static void test(ArrayList<Buton> Butoane)
6. {
7. for (int i = 0; i < Butoane.size(); i++)
8. {
9. if( Butoane.get(i).getPozitie()>50)
10. { System.out.println("Butonul din pozitia" + " " +
Butoane.get(i).getPozitie()+" " +"nu e in pozitie valida");
11. Butoane.remove(i).getPozitie();
12. }
13. }
14. for (int i = 0; i < Butoane.size(); i++)
15. { System.out.println(Butoane);
16. break;
17. }
18. }

Se da o lista de tastaturi. Sa se sorteze dupa pret toate si apoi sa se verifice daca prima tastatura
din lista sortata respecta sau nu criteriul de la punctul b.

Afisari:
1.
public static void afisare1(Cursuri ob1)
{
System.out.println("Idcurs este:"+" "+ ob1.getIdcurs());
System.out.println("Denumire curs este:"+" " + ob1.getDenumire_curs());
System.out.println("Pret curs este:" + " " + ob1.getPret_curs());
System.out.println("Data start este:" + " " + ob1.getData_de_start());
}
2.
public static void afisare2(Cursuri ob1)
{
System.out.println("Idcurs"+ " "+ ob1.getIdcurs()+"/" + "Denumire_curs
"+""
+ " " + ob1.getDenumire_curs()+"/"+"Pret curs " + " " + ob1.getPret_curs()
+ "/"+"Data start " + " "
+ " " + ob1.getData_de_start());
}
Stergere:
Sa se stearga un curs cu un ID mentionat (daca exista in lista data). Daca nu exista, atunci se
afiseaza un mesaj corespunzator.

public static void stergere(ArrayList <Cursuri> List, String Idcurs)


{ for(int i=0;i<List.size();i++)
{
if(List.get(i).getIdcurs().compareTo(Idcurs)==0)
{
int pozitia = i;
List.remove(pozitia);
System.out.println("Obiect Sters");
}
else
if(List.get(i).getIdcurs().compareTo(Idcurs)!=0)
System.out.println("Nu se afla in lista");
break;
}
}

Adaugare:

Sa se verifice daca lista este unica (nu contine duplicate), iar apoi sa se incerce adaugarea unui
curs nou. “Incercarea” poate sa fie esuata daca cursul pe care il adaugam exista deja in lista sau
poate sa fie “cu success” daca se adauga pe prima pozitie in lista data.

public static void adaugare(Cursuri cursnou, ArrayList <Cursuri> List)


{ for(int i=0;i<List.size();i++)
{
if(List.get(i).equals(cursnou))
{ System.out.println("Incercare nereusita");
break;
}
else
{ List.add(0, cursnou);
System.out.println("Incercare reusita");
break;
}
}
}

Acces Direct: accesul direct la o carte/carti pri introducerea numelui unui autor

public static void acces(ArrayList<Book> Carti, String numeautor)


{
for(Book a:Carti)
{
if(a.getAutor().contains(numeautor))
{
System.out.println(a);
}
}
}

2. adaugarea/stergerea a unor autori in lista autorilor, precizand numele cartii

public static void adaugare(Book c1, String nume, String numeautor)


{
if(c1.getNume().compareTo(nume)==0)
{ String a=c1.getAutor()+ "#"+ numeautor;
c1.setAutor(a);
}
}

Stergere:
public static void stergere(Book c1,String nume,String numeautor)
{
String[] autori=new String[9];
autori=c1.getAutor().split("#");
if(c1.getNume().compareTo(nume)==0)
{
for(int i=0;i<autori.length;i++)
{
if(c1.getAutor().compareTo(numeautor)==0);
String a=c1.getAutor().replace(numeautor, "");
c1.setAutor(a);
}
}
}
3. fiind date mai multe carti, in cazul in care exista o aceeasi carte scrisa de autori diferiti, sa se
semnaleze aceasta situatie

public static void cautare(ArrayList<Book> Carti)


{
for(int i=0;i<Carti.size();i++)
{
for(int j=i+1;j<Carti.size();j++)
{if(Carti.get(i).getNume().equals(Carti.get(j).getNume()))
{
if(!Carti.get(i).getAutor().equals(Carti.get(j).getAutor()))
{
System.out.println("Autorii nu sunt la fel");
}
}
}
}
}

1. introducere/afisare a unei carti (tastatura si fisier text)

public static void afisare(Book c1)


{
System.out.println("Cartea este:"+" "+c1.toString());
}
Main cu apelare metode si ArrayList:

public static void main(String[] args)


{ ArrayList<Book>Carti=new ArrayList<>();
Book c1 = new Book("Povesti","Creanga#Calinescu#Caragiale", 24.4, 2011);
Book ob2 = new Book("Carte","Creanga#Calinescu#Eminescu", 24.4, 2010);
Book ob3 = new Book("Carte","Creanga#Calinescu", 26.4, 2013);
Book ob4 = new Book("Carte3","Creanga#Blaga", 28.4, 2015);
Carti.add(c1);
Carti.add(ob2);
Carti.add(ob3);
Carti.add(ob4);
adaugare(c1,"Povesti","Vasile");
afisare(c1);
stergere(c1,"Povesti","Caragiale");
afisare(c1);
Collections.sort(Carti, new Compararedupapret());
System.out.println(Carti);
cautare(Carti);
acces(Carti,"Vasile");
}

Clasa cu Compozitie

public class AgendaTelefonica


{ private String nume;
private ArrayList<Client> Lista_clienti;
Validare elemente
1. introducere/afisare a unei agende telefonice (tastatura si fisier text) – implementari si testare
functionalitate. Inainte de afisarea unei agende, se face si validarea elementelor introduse intr-o agenda
telefonica (nume client sa inceapa cu litera mare si sa aiba minim 4 caractere, numar telefon sa fie
format din 10 cifre iar numele agendei sa fie de forma “A”Numar)
public static boolean validarenume(AgendaTelefonica ob1)
{
return ob1.getNume().matches("A{1}[0-9]+");
}
public static boolean validarenumar(Client ob1)
{
return ob1.getNumar_telefon().matches("[0-9]{10}");
}
public static boolean validarenumeuti(Client ob1)
{
return ob1.getNume_client().matches("[A-Z]{1}[a-z]{3,}");
}
public static void main(String[] args)
{
2. adaugare/stergere a unor perechi de forma nume_client/numar_telefon dintr-o agenda–
implementari si testare functionalitate
private static void adaugare(ArrayList<Client> Lista_clienti, String numenou,
String numarnou)
{
Client ob1=new Client(numenou,numarnou);
Lista_clienti.add(ob1);
}

private static void stergere(ArrayList<Client> Lista_clienti, String numenou)


{
for(int i=0;i<Lista_clienti.size();i++)
{
if(Lista_clienti.get(i).getNume_client().contains(numenou))
{
Lista_clienti.remove(i);
}
else
System.out.println("Numele nu a fost gasit");
break;
}
}
3. reuniunea a doua agende telefonice date (daca avem 2 nume identice in agende, se reunesc
numele de telefon) – implementari si testare functionalitate
public static void reuniune(AgendaTelefonica ob1,AgendaTelefonica ob2)
{
for(int i=0;i<ob1.getLista_clienti().size();i++)
{
for(int j=0;j<ob2.getLista_clienti().size();j++)
{
if(ob1.getLista_clienti().get(i).getNume_client().equalsIgnoreCase(ob2.getList
a_clienti().get(j).getNume_client()))
{
String
a=ob1.getLista_clienti().get(i).getNumar_telefon().concat("#").concat(ob2.ge
tLista_clienti().get(j).getNumar_telefon());
ob1.getLista_clienti().get(i).setNumar_telefon(a);
}
}
}
}

5. accesul direct a unui numar de telefon prin introducerea unui anumit nume de client –
implementari si testare functionalitate
public static void introducere(ArrayList<Client> Lista_clienti, String
numenou)
{
for(int i=0;i<Lista_clienti.size();i++)
{
if(Lista_clienti.get(i).getNume_client().contains(numenou))
{
System.out.println(Lista_clienti.get(i).getNumar_telefon());
}
else
System.out.println("Numele nu este gasit");
break;
}
}

1. Se formează 3 liste diferite din tot fișierul text dat, fiecare lista cu utilizatorii valizi de
cele 3 tipuri posibile. Sa se afiseze lungimea fiecarei liste, dar și primul și ultimul
element din fiecare lista.
2. Scanner sc=new Scanner(new File("Fisier"));
3. while(sc.hasNextLine())
4. {
5. String Info=sc.nextLine();
6. if(Info!=null)
7. {
8. String[] Vector=Info.split("\\*");
9. for(int i=0;i<Vector.length;i++)
10. {
11. Vector[i].trim();
12. }
13. String nume_utilizator=Vector[0];
14. String parola=Vector[1];
15. String tip=Vector[2];
16. if(Vector.length>1)
17. {
18. Administrator ob1=new
Administrator(nume_utilizator,parola,tip);
19. Lista.add(ob1);
20. }
21. if(Vector.length>2 && Vector[2].contentEquals("medic"))
22. {
23. String caracterizare=Vector[3];
24. Medic ob2=new Medic(nume_utilizator,parola,tip,caracterizare);
25. Lista.add(ob2);
26. }
27. if(Vector.length>2 && Vector[2].contentEquals("pacient"))
28. {
29. String covid=Vector[3];
30. Pacient ob3=new Pacient(nume_utilizator,parola,tip,
31. covid);
32. Lista.add(ob3);

for(int i=0;i<Lista.size();i++)
{
if(Lista.get(i).getTip_utilizator().contains("administrator"))
{
Administratori.add((User) Lista.get(i));
}
}
for(int i=0;i<Lista.size();i++)
{
if(Lista.get(i).getTip_utilizator().contains("medic"))
{
Medici.add((User) Lista.get(i));
}
}
for(int i=0;i<Lista.size();i++)
{
if(Lista.get(i).getTip_utilizator().contains("pacient"))
{
Pacienti.add((User) Lista.get(i));
}
}
Utilizator valid: utilizator care are numele de utilizator format din minim 3 caractere, iar
caracterele pot sa fie orice caracter de pe tastatura
public static void validareutilizator(ArrayList<User> Lista)
{
for(int i=0;i<Lista.size();i++)
{
if(Lista.get(i).getNume_utilizator().matches(".{3,}"))
{
System.out.println("Utilizatori valizi"+Lista.get(i).getNume_utilizator());
}
}

Comparare dupa nume utilizator

public class Compararedupanume implements Comparator<User>


{
public int compare(User ob1, User ob2)
{
if(ob1.getNume_utilizator().compareToIgnoreCase(ob2.getNume_utilizator())
==-1)
{
return -1;
}
if(ob1.getNume_utilizator().compareTo(ob2.getNume_utilizator())==1)
{
return 1;
}
return 0;
}
}

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