activitatea unei farmacii - proiect uml

Upload: ovidiu-florin-bogdan

Post on 14-Jul-2015

1.868 views

Category:

Documents


25 download

TRANSCRIPT

Facultatea de Matematic-informatic Cursuri Postuniversitare de Informatic

Proiect=ACTIVITATEA UNEI FARMACII=

Semestrul III

1

Activitatea unei farmacii1) Specificarea cerinelorSe 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.

2

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

4

3) Diagrama de clasClasele 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.

5

6

7

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

9

1

1

4) Diagrame de secven

1

1

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;

1

} 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( ) {

1

} 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;

1

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( ) {

1

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( )

1

{ } } 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( ) {

1

} 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( )

2

{ 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;

2

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( ) {

2

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 ) {

2

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

}

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

2

*/ 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");

2

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

2

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();

2

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

2

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( ){ }

2

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( ){

3

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