Sunteți pe pagina 1din 48

Facultatea de Matematic-informatic Cursuri Postuniversitare de Informatic

Proiect
=ACTIVITATEA UNEI FARMACII=

Semestrul III

Activitatea unei farmacii


1) Specificarea cerinelor
Se dorete dezvoltarea unui software interactiv care s cuprind activitatea unei farmacii. Se cere ca sistemul s poat efectua att operaiile de administrare a farmaciei, specifice personalului i operaiile: de verificare a medicamentelor cerute de clieni, comand medicament, cumpr medicament, prepar medicament, ct i operaii de eviden a medicamentelor. Capturarea cerinelor O farmacie pune la dispoziia clienilor si medicamente oferind, de asemenea i posibilitatea de preparare a acestora, precum i posibilitatea de a face comand de acas. n cazul n care se opteaz pentru o comand de acas medicamentele necesare se aduc la domiciliu de ctre un curier. Exist dou categorii de clieni: clieni obinuii i clieni de acas. Clienii obinuii pot cumpra de la farmacie medicamente, pot cere prepararea medicamentului necesar, iar clienii de acas pot cumpra medicamente din farmacie, dar pot face i comand prin telefon. n mod periodic, farmacia achiziioneaz medicamente noi, modific lista de medicamente, medicamentele expirate sunt distruse, va furniza atenionri asupra stocului i mririi preului. n farmacie pot exista mai multe copii de medicamente, dar la diferite uniti de msur (comprimate, tablete, fiole) i fabricate de diferite firme.

Sistemul va permite cutarea medicamentelor dup cod, prepararea lor n farmacie, cumprarea medicamentelor, i permite clientului s sune la farmacist sau trimite fax, pentru a face comanda medicamentului necesar, de acas, dac nu se poate prezenta la farmacie sau nu are timp, comanda (medicamentului) fiind transportat de un curier la adresa cerut de client, iar acesta achit comanda la primirea acesteia.

2) Descrierea cazurilor de utilizare

3) Diagrama de clas
Clasele care se formeaz i se desprind n urma analizei substantivelor i eliminarea celor care nu prezint interes pentru sistemul considerat sunt urmtoarele: Casier, Farmacist, Curier, Medicament, Administrator, Client, Client_obinuit, Client_de_acasa.

Metoda cardurilor CRC. Client_obinuit Responsabiliti Colaboratori merge la farmacie, ntreab casierul Client obinuit. dac medicamentul dorit exist, i cere Casier. prepararea medicamentului solicitat, Farmacist. farmacistul l prepar. Responsabiliti primete i livreaz comanda de a rspunde clientului de acas care solicit un medicament prin intermediul telefonului. Curier Colaboratori Client_de_acasa Curier

Client Responsabiliti Colaboratori vine la farmacie i cere medicamentul Client dorit, cumpr i pltete Casier Client_de_acas Responsabiliti Colaboratori comand prin telefon medicament, Client_de_acas. ntreab casierul dac medicamentul Casier. dorit exist, dac medicamentul nu Curier. exist casierul va refuza comanda. Client_obinuit Responsabiliti Colaboratori vine la farmacie i cere medicamentul Client_obinuit dorit Casier Client_de_acas Responsabiliti Colaboratori sun la farmacie i face comanda unui Clientul_de_acas. medicament, curierul onoreaz Curier. comanda.
8

Administrator Responsabiliti Colaboratori n funcie de cerere adaug Administrator medicamente n stocul existent, iar n cazul ieirii din garanie a unor medicamente, le nltur. Casier Responsabiliti Colaboratori nainte de a vinde sau de a prepara un Casier medicament, verific medicamentul sau codul acestuia Client_de_acas Responsabiliti Colaboratori comand prin telefon medicament, Client_de_acas. ntreab farmacistul dac Farmacist.. medicamentul dorit exist, farmacistul noteaz comanda, dac medicamentul nu exist va refuza comanda. Farmacist Responsabiliti Colaboratori preia comanda, iar dac un Client obinuit. medicament trebuie preparat, atunci Farmacist. acesta va fi preparat de farmacist Farmacist Responsabiliti Colaboratori preia comanda, iar dac un Clientul_de_acas. medicament trebuie preparat, atunci Farmacistul. acesta va fi preparat de farmacist i va Curierul preda comanda curierului

4) Diagrame de secven

5) Generare de cod cu MAGIC DRAW Folosind utilitarul Magic Draw, dup specificarea atributelor i operaiilor pentru fiecare clas, se genereaz codul: public class Administrator { private Vector medicamente; private String nrleg; private String nume; private java.util.Collection adauga; public void adauga_medicamente( ) { } public Administrator( ) { } public String getNrleg( ) { return null; } public String getNume( ) { return null;

} public void inlatura_medicamente( ) { } public void listare( ) { } public void setNrleg( String nrleg ) { } public void setNume( String n ) { } } public class Casier { private String nrleg; private String nume; private java.util.Collection vinde; private Farmacist cere; public Casier( String nrleg, String nume ) { } public Casier( ) {

} public String getNrleg( ) { return null; } public String getNume( ) { return null; } public void setNrleg( String nrleg ) { } public void setNume( String n ) { } public void verif_medic( ) { } public void vinde( ) { } } public class Client_de_acasa extends Client { protected String adresa; protected String nume;

protected int telefon; private java.util.Collection face_comanda; public void accepta_comanda( ) { } public void achita_comanda( ) { } public void cere_prepararea( ) { } public Client_de_acasa( ) { } public void face_comanda( ) { } public String getAdresa( ) { return null; } public String getNume( ) { return null; } public int getTelefon( ) {

return 0; } public void setAdresa( String adr ) { } public void setNume( String n ) { } public void setTelefon( int tel ) { } } public class Client_obisnuit extends Client { private java.util.Collection cumpara1; public void accepta_cumpararea( ) { } public void cere_prepararea( ) { } public Client_obisnuit( ) { } public void client_obisnuit( )

{ } } public class Curier { private String nrleg; private String nume; private Farmacist da_comanda; private java.util.Collection livreaza; public Curier( ) { } public String getNrleg( ) { return null; } public String getNume( ) { return null; } public void incaseaza_bani( ) { } public void livreaza_comanda( ) {

} public void primeste_comanda( ) { } public void setnrleg( String nrleg ) { } public void setNume( String n ) { } } public class Farmacist { private String nr_legitimatie; private String nume; private Curier da_comanda; private java.util.Collection cere; private java.util.Collection prepara; public Farmacist( ) { } public String getNrleg( ) { return null; } public String getNume( )

{ return null; } public void noteaza_comanda( ) { } public void preda_camanda( ) { } public void prepara_medic( ) { } public void setNrleg( String nr ) { } public void setNume( String n ) { } public void verif_lista_medic( ) { } } public class Medicament { protected int cod_medicament; protected Date data_exp;

protected String fabricat; protected int pret; protected String u_m; private Farmacist prepara; private Administrator adauga; private Curier livreaza; private java.util.Collection cumpara; private java.util.Collection vinde; private java.util.Collection cumpara1; private java.util.Collection face_comanda; public void comandat( ) { } public void cumparat( ) { } public int getCod_medicament( ) { return 0; } public Date getData_exp( ) { return null; } public String getFabricat( ) {

return null; } public int getPret( ) { return 0; } public String getU_m( ) { return null; } public Medicament( ) { } public void preparat( ) { } public void setCod_medicament( int cod ) { } public void setData_exp( Date data ) { } public void setFabricat( String firm ) { } public void setPret( int pret ) {

} } public class Client { private java.util.Collection cumpara; public void cumpara( ) { } public void plateste( ) { }

IMPLEMENTAREA CLASELOR N JAVA Implementarea claselor presupune: /** * @(#) Aplicatie.java

*/ import java.io.*; import java.util.Vector; import java.util.Date; public class Aplicatie { public static void main( String[] arg )throws IOException { Administrator ad=new Administrator(); Client_obisnuit c1=null; Client_de_acasa c2=null; ad.initializare(); Integer co=null; int a,cod; String s,c; DataInputStream cin=new DataInputStream(System.in); /*20*/ do{ Integer u; s=cin.readLine(); System.out.println("1. Adaugare medicament"); System.out.println("2. Inlaturare medicament"); System.out.println("3. Cere medicament"); System.out.println("4. Comanda telefonica"); /* System.out.println("5. Livrare");*/ System.out.println("5. Preparare"); System.out.println("6. Listare medicamente"); System.out.println("7. EXIT");

s=cin.readLine(); u=new Integer(s); a=u.intValue(); Farmacist f=new Farmacist(); switch(a){ case medicament.............."); System.out.println("codul:"); /*37*/ c=cin.readLine(); co=new Integer(c); cod=co.intValue(); System.out.println("data:"); System.out.println("ziua:"); String z=cin.readLine(); Integer zz=new Integer(z); int zi=zz.intValue(); System.out.println("luna:"); String l=cin.readLine(); Integer lu=new Integer(l); int luna=lu.intValue(); System.out.println("anul:"); String a1=cin.readLine(); Integer aa=new Integer(a1); int an=aa.intValue(); Date data=new Date(luna,zi,an); 1: System.out.println("..............adaugare

System.out.println("firma:"); String firm=cin.readLine(); System.out.println("pretul:"); String p=cin.readLine(); Integer pr=new Integer(p); int pret=pr.intValue(); System.out.println("unitate masura:"); String u1=cin.readLine();

Medicament Medicament(cod,data,firm,pret,u1); ad.adauga_medicamente(m); System.out.println("medicamentul adaugat:"); break; case medicamente..............."); 2: a

m=new

fost

System.out.println("...............inlatura

System.out.println("codul medicamentului:"); c=cin.readLine(); co=new Integer(c); cod=co.intValue();

ad.inlatura_medicamente(cod); // inlaturat:"); break; case medicament.........."); c1=new Client_obisnuit(); c1.accepta_cumpararea(ad.medicamente); break; case telefonica..........."); c2=new Client_de_acasa(); int mdc=0; mdc=c2.accepta_comanda(ad.medicamente); if (mdc!=0){ /*case 5:*/ System.out.println("...............livrare..........."); Curier cc=new Curier(); /* System.out.println("codul medicamentului:"); c=cin.readLine(); co=new Integer(c); cod=co.intValue();*/ cc.livreaza_comanda(c2,mdc); } break; case 5: System.out.println("...............preparare..........."); System.out.println("codul medicamentului:"); c=cin.readLine(); 4: System.out.println("...............comanda 3: System.out.println("...............cere System.out.println("medicamentul a fost

co=new Integer(c); cod=co.intValue(); f.prepara_medic(cod); break; case 6: ad.listare(); break; case 7: System.out.println("Bye-Bye!!"); break; default: System.out.println("optiune invalida"); } System.out.println("\n*****************************\n"); } while(a!=8); } } /** * @(#) Client.java */ public abstract class Client{ // private java.util.Collection cumpara; public void cumpara( ){ }

public void plateste( ){ } } /** * @(#) Casier.java */ import java.util.Vector; public class Casier{ private String nrleg; private String nume; // // private Farmacist cere; private java.util.Collection vinde; public Casier( String nrleg, String nume ){ this.nrleg=nrleg; this.nume=nume; } public Casier( ){

this.nrleg=""; this.nume=""; } public String getNrleg( ){ return nrleg; } public String getNume( ){ return nume; } public void setNrleg( String nrleg ){ this.nrleg=nrleg; } public void setNume( String n ){ this.nume=nume; } public boolean verif_medic( int med, Vector v_med){ boolean este=false; for(int i=0;i<v_med.size();i++){ Medicament m=(Medicament)(v_med.elementAt(i)); if(m.getCod_medicament()==med){ este=true; }

} return este; } public void vinde( int med){ System.out.println("A fost vandut medicamentul cu codul "+med); }

} /** * @(#) Administrator.java */ import java.util.Vector; public class Administrator{ public Vector medicamente; private String nrleg; private String nume; // private java.util.Collection adauga; public void adauga_medicamente( Medicament m ){

medicamente.addElement(m); } public void Administrator( String nume, String nrleg ){ medicamente=new Vector(100); this.nume=nume; this.nrleg=nrleg; } public void Administrator( ){ medicamente=new Vector(20); this.nume=""; this.nrleg=""; } public String getNrleg( ){ return nrleg; } public String getNume( ){ return nume; } public void inlatura_medicamente( int cod){ boolean gasit=false; for(int i=0;i<medicamente.size();i++){ Medicament mm=(Medicament)(medicamente.elementAt(i)); if(mm.getCod_medicament()==cod){ medicamente.removeElementAt(i);

gasit=true; break; } } if(!gasit) System.out.println("Medicamentul cu acest cod nu exista!"); } public void listare(){ for(int i=0;i<medicamente.size();i++){ Medicament m=(Medicament)(medicamente.elementAt(i)); System.out.println(m.getCod_medicament()); } } public void setNrleg( String nrleg ){ this.nrleg=nrleg; } public void setNume( String n ){ nume=n; } public void initializare( ){ this.medicamente=new Vector(5,5); Medicament m1=new Medicament();medicamente.addElement(m1); Medicament m2=new Medicament();medicamente.addElement(m2); Medicament m3=new Medicament();medicamente.addElement(m3);

Medicament m4=new Medicament();medicamente.addElement(m4); Medicament m5=new Medicament();medicamente.addElement(m5); } } /** * @(#) Client_de_acasa.java */ import java.util.Vector; import java.io.*; public class Client_de_acasa extends Client{ protected String adresa; protected String nume; protected int telefon; // private java.util.Collection face_comanda; public int accepta_comanda( Vector v_med )throws IOException{ DataInputStream cin=new DataInputStream(System.in); System.out.println("codul medicamentului:"); String m=cin.readLine(); Integer me=new Integer(m); int med=me.intValue(); Farmacist f=new Farmacist();

boolean exista=f.verif_lista_medic(med,v_med); if(exista){ f.noteaza_comanda(this,med); return med; } else{ System.out.println("Nu exista..."); } return 0; } public void achita_comanda( ){ } public void cere_prepararea( ){ } public Client_de_acasa( String a, String n, int tel ){ adresa=a; nume=n; telefon=tel; } public Client_de_acasa( ){ adresa="";

nume=""; telefon=0; } public void face_comanda( ){ } public String getAdresa( ){ return adresa; } public String getNume( ){ return nume; } public int getTelefon( ){ return telefon; } public void setAdresa( String adr ){ adresa=adr; } public void setNume( String n ){ nume=n; }

public void setTelefon( int tel ){ telefon=tel; }

/** * @(#) Client_obisnuit.java */ import java.io.*; import java.util.Vector; public class Client_obisnuit extends Client{ // private java.util.Collection cumpara1; public void accepta_cumpararea( Vector v_med )throws IOException{ DataInputStream cin=new DataInputStream(System.in); System.out.println("codul medicamentului:"); String m=cin.readLine(); Integer me=new Integer(m); int med=me.intValue(); Casier cas=new Casier(); boolean exista=cas.verif_medic(med,v_med); if(exista){

cas.vinde(med); } else{ System.out.println("Nu exista..."); } } public void cere_prepararea( int med )throws IOException{ DataInputStream cin=new DataInputStream(System.in); System.out.println("numele medicamentului:"); String m=cin.readLine(); Integer me=new Integer(m); med=me.intValue(); Farmacist f=new Farmacist(); f.prepara_medic(med); } public Client_obisnuit( ){ }

/** * @(#) Curier.java

*/

public class Curier{ private String nrleg; private String nume; // // private java.util.Collection transporta; private Farmacist da_comanda; public Curier( String leg, String n ){ nume=n; nrleg=leg; } public Curier( ){ nume=""; nrleg=""; } public String getNrleg( ){ return nrleg; }

public String getNume( ){ return nume; } public void incaseaza_bani( ){ System.out.println("Curierul primeste banii de la client"); } public void livreaza_comanda( Client_de_acasa c, int med ){ System.out.println("Medicamentul "+med+" va fi livrat clientului "+c.getNume()); incaseaza_bani(); } public void primeste_comanda( ){ System.out.println("Curierul a primt comanda"); } public void setnrleg( String nrleg ){ this.nrleg=nrleg; } public void setNume( String n ){ nume=n; } }

/** * @(#) Farmacist.java */ import java.io.*; import java.util.Vector; public class Farmacist{ private String nr_legitimatie; private String nume; // // // private java.util.Collection prepara; private java.util.Collection cere; private Curier da_comanda; public Farmacist( String n, String leg){ nume=n; nr_legitimatie=leg; } public Farmacist( ){ nume=""; nr_legitimatie="";

} public String getNrleg( ){ return nr_legitimatie; } public String getNume( ){ return nume; } public void noteaza_comanda( Client_de_acasa c, int med)throws IOException{ /* DataInputStream cin=new DataInputStream(System.in); Integer u; String s=cin.readLine(); u=new Integer(s); med=u.intValue();*/ System.out.println("Comanda fost notata"); } public void preda_comanda( ){ Curier c=new Curier(); c.primeste_comanda(); } public void prepara_medic( int med){

System.out.println("Se prepara medicamentul "+med); } public void setNrleg( String nr ){ nr_legitimatie=nr; } public void setNume( String n ){ nume=n; } public boolean verif_lista_medic( int med, Vector v_med){ boolean este=false; for(int i=0;i<v_med.size();i++){ Medicament m=(Medicament)(v_med.elementAt(i)); if(m.getCod_medicament()==med){ este=true; } } return este; } }

/** * @(#) Medicament.java */

import java.util.Date; public class Medicament{ protected int cod_medicament; protected Date data_exp; protected String fabricat; protected int pret; protected String u_m; // // // // // // // private java.util.Collection vinde; private java.util.Collection cumpara; private Curier transporta; private java.util.Collection face_comanda; private Farmacist prepara; private java.util.Collection cumpara1; private Administrator adauga;

public void comandat( ){ System.out.println("Medicamentul a fost comandat"); } public void cumparat( ){ System.out.println("Medicamentul a fost cumparat"); } public int getCod_medicament( ){ return cod_medicament; } public Date getData_exp( ){ return data_exp; } public String getFabricat( ){ return fabricat; } public int getPret( ){ return pret; } public String getU_m( ){ return u_m; }

public Medicament( int cod, Date data, String fabr, int pret, String um ){ cod_medicament=cod; data_exp=data; fabricat=fabr; this.pret=pret; u_m=um; } public Medicament( ){ cod_medicament=0; data_exp=new Date(); fabricat=""; this.pret=0; u_m=""; } public void preparat( ){ System.out.println("Medicamentul a fost preparat"); } public void setCod_medicament( int cod ){ cod_medicament=cod; } public void setData_exp( Date data ){ data_exp=data;

} public void setFabricat( String firm ){ fabricat=firm; } public void setPret( int pret ){ this.pret=pret; } }