Sunteți pe pagina 1din 7

package src; public class Carte extends Publicatie { private String autor; private int isbn; public Carte(long

id) { super(TipPublicatie.CARTE, id); setAutor("necunooscut"); setIsbn(0); } public Carte(TipPublicatie tipPublicatie, long id, String title, String editura, int anAparitie, int nrPagini) { super(TipPublicatie.REVISTA, id, title, editura, anAparitie, nrP agini); this.setAutor(autor); } public int getIsbn() { return isbn; } public void setIsbn(int isbn) { this.isbn=isbn; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } public String ToString() { String s=new String(); s=super.toString(); s=s+"\n Autor: "; s=s+autor; s=s+"\n Isbn: "; s=s+isbn; return s; } } package src; public interface Manager { public boolean adaugaPublicatie(Publicatie publicatie); public boolean stergePublicatie(Publicatie publicatie); public Publicatie[] getPublicatii(); } package src; public class ManagerImpl implements Manager {

private Publicatie[] publ=new Publicatie[100]; static Manager manager; private ManagerImpl(){} public static Manager getInstance() { if(manager==null) { manager=new ManagerImpl(); } return manager; } static int dim=0;//numarul de publicatii public boolean adaugaPublicatie(Publicatie publicatie) { if(dim<100) { publ[dim]=publicatie; dim++; return true; } return false; } public Publicatie[] getPublicatii() { return publ; } public boolean stergePublicatie(Publicatie publicatie) { if(dim>0) { for (int i=0;i<dim;i++) { if(publ[i].equals(publicatie)) { for(int j=i;j<dim-1;j++) { publ[j]=publ[j+1]; } dim--; return true; } } } return false; } } package src; import java.io.*; public class pp_laborator3 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br=new BufferedReader(new InputStreamReader(Syste m.in)); int id=0; Manager m=ManagerImpl.getInstance();

//Carti/Reviste aflate in stoc //Revista r = new Revista(TipPublicatie.REVISTA,10001,"WoW Magaz ine","Publisher",2009,150,2030); //m.adaugaPublicatie(r); while(true) { System.out.println("Optiuni:\n 1.Adauga\n 2.Sterge\n 3.A fisare\n 0.Iesire"); System.out.println("Optiunea: "); String s=br.readLine(); int opt = Integer.parseInt(s); switch(opt) { case 0: System.exit(0); break; case 1:System.out.println("\nTipul publicatiei(Revista/C arte):"); s=br.readLine(); id++; if(s.equals("Revista")) { Revista p=new Revista(id); System.out.println("\nTitlul: ") ; s=br.readLine(); p.setTitle(s); System.out.println("\nEditura: " ); s=br.readLine(); p.setEditura(s); System.out.println("\nEditia cu numarul: "); s=br.readLine(); p.setIssn(Integer.parseInt(s)); System.out.println("\nNumar de p agini: "); s=br.readLine(); p.setNrPagini(Integer.parseInt(s )); System.out.println("\nAnul: "); s=br.readLine(); p.setAnAparitie(Integer.parseInt (s)); System.out.println("\n iss: "); s=br.readLine(); p.setIssn(Integer.parseInt(s)); if(!m.adaugaPublicatie(p)) { System.out.println("Nu s -a putut adauga publicata;"); } } if(s.equals("Carte")) { Carte p=new Carte(id); System.out.println("\nTi tlul: "); s=br.readLine(); p.setTitle(s); System.out.println("\nAu

torul: "); s=br.readLine(); p.setAutor(s); System.out.println("\nEd itura: "); s=br.readLine(); p.setEditura(s); System.out.println("\nNu mar de pagini: "); s=br.readLine(); p.setNrPagini(Integer.pa rseInt(s)); System.out.println("\nAn ul: "); s=br.readLine(); p.setAnAparitie(Integer. parseInt(s)); System.out.println("\n i sbn: "); s=br.readLine(); p.setIsbn(Integer.parseI nt(s)); if(!m.adaugaPublicatie(p )) { System.out.print ln("Nu s-a putut adauga publicata;"); } } break; case 2: System.out.println("\nTipul publicatiei:"); s=br.readLine(); if(s.equals("Revista")) { System.out.println("\nCare e id-ul de st ers:"); s=br.readLine(); int de = Integer.parseInt(s); Publicatie[] publicatii=m.getPublicatii( ); for (int i=0;i<ManagerImpl.dim;++i) { if (de==publicatii[i].id) { m.stergePublicatie(publi catii[i]); break; } } } else if(s.equals("Carte")) { System.out.println("\nCare e idul de sters:"); s=br.readLine(); int de = Integer.parseInt(s);

Publicatie[] publicatii=m.getPub licatii(); for (int i=0;i<ManagerImpl.dim;+ +i) { if (de==publicatii[i].id ) { m.stergePublicat ie(publicatii[i]); break; } } } break; case 3: Publicatie[]pp=m.getPublicatii(); for (int i=0;i<ManagerImpl.dim;i ++) { System.out.print ln(pp[i].toString()); } break; } } } } package src; abstract class Publicatie { protected TipPublicatie tipPublicatie; protected long id; protected String title; protected String editura; protected int anAparitie; protected int nrPagini; public Publicatie(TipPublicatie tipPublicatie, long id) { this.tipPublicatie = tipPublicatie; this.id = id; setTitle("necunooscut"); setEditura("necunooscut"); setAnAparitie(0); setNrPagini(0); } public Publicatie(TipPublicatie tipPublicatie, long id, String title, String editura, int anAparitie, int nrPagini) { this.tipPublicatie = tipPublicatie; this.id = id; this.title = title; this.editura = editura; this.anAparitie = anAparitie; this.nrPagini = nrPagini; } public String toString()

{ return "id "+Long.toString(id)+" Titlu "+title+"; "+"Editura: "+ editura+"; "+"Anul: "+Integer.toString(anAparitie)+"; Nr de pagini: "+nrPagini+" ; Tipul: "+tipPublicatie.name(); } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getEditura() { return editura; } public void setEditura(String editura) { this.editura = editura; } public int getAnAparitie() { return anAparitie; } public void setAnAparitie(int anAparitie) { this.anAparitie = anAparitie; } public int getNrPagini() { return nrPagini; } @Override public boolean equals(Object arg0) { return title.equals(((Publicatie)arg0).title); } public void setNrPagini(int nrPagini) { this.nrPagini = nrPagini; } public TipPublicatie getTipPublicatie() { return tipPublicatie; } public long getId() { return id; } } package src; public class Revista extends Publicatie { private int issn; public Revista(long id) { super(TipPublicatie.REVISTA, id);

setIssn(0); } public Revista(TipPublicatie tipPublicatie, long id, String title, String editura, int anAparitie, int nrPagini, int issn) { super(TipPublicatie.REVISTA, id, title, editura, anAparitie, nrP agini); setIssn(issn); } public int getIssn() { return issn; } public void setIssn(int i) { this.issn = i; } public String ToString() { String s=super.toString(); s=s+"\n issn: "; s=s+issn; return s; } } package src; public enum TipPublicatie { REVISTA, CARTE; }

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