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

10

11

4) Diagrame de secven

12

13

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;

14

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

15

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

16

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

17

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

18

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

19

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

20

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

21

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

22

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

23

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

IMPLEMENTAREA CLASELOR N JAVA


Implementarea claselor presupune:
/**
* @(#) Aplicatie.java

24

*/
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*/

Integer u;
do{

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

25

s=cin.readLine();
u=new Integer(s);
a=u.intValue();
Farmacist f=new Farmacist();
switch(a){
case

1:

System.out.println("..............adaugare

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

26

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

m=new

Medicament(cod,data,firm,pret,u1);
ad.adauga_medicamente(m);
System.out.println("medicamentul

fost

adaugat:");
break;
case

2:

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

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

27

ad.inlatura_medicamente(cod);
//

System.out.println("medicamentul

fost

inlaturat:");
break;
case

3:

System.out.println("...............cere

medicament..........");
c1=new Client_obisnuit();
c1.accepta_cumpararea(ad.medicamente);
break;
case

4:

System.out.println("...............comanda

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

28

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

29

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

30

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

31

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

32

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

33

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

34

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

35

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="";

36

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

37

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

38

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

39

*/

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

40

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

41

/**
* @(#) 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="";

42

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

43

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
*/

44

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;

45

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

46

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;

47

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

48

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