Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] esercizio di programmazione su un negozio di libri

    Probabilmente per molti di voi il mio problema sarà irrisorio, ma sono bloccato da due ore e mi sto innervosendo. Così, se magari qualcuno sa come aiutarmi...
    Dunque, sto facendo un esercizio per un esame, si tratta di costruire il solito negozio di libri.
    Due metodi principali: buyBook-ordina dei libri che vengono a far parte del negozio-
    e sellBook-vende un libro al cliente tra quelli presenti in negozio.
    Sul primo nessun problema, ma per quanto riguarda il secondo, non riesco a fare in modo che il metodo afferri gli elementi contenuti nel vettore dei libri presenti in negozio.
    Di seguito, il codice:
    codice:
    public class BookStore {
    	
    	private Vector	<BookStoreBook> storebooks;
    	private Vector <Transaction> transactions;
    	private Double money;
    	private String owner;
    	
    	public BookStore (){
    		storebooks = new Vector <BookStoreBook>();
    		transactions = new Vector <Transaction>();
    		owner = "Andrea";
    		money = 5000.00;
    	}
    	
    	public Boolean buyBook (Integer isbn,Integer units, Double costPrice){
    		
    		BookStoreBook storebook= new BookStoreBook (isbn, units, costPrice); 
    		
    		Double order = (Double)(costPrice*units);
    		if (order <= money){
    		money -= order;
    		System.out.println (money);
    		storebooks.add (storebook);
    		storebook.getIsbn();
    		Boolean isSold = false;
    		Double saldo = -(order);
    		Transaction boughtBook = new Transaction (isSold, isbn, saldo);
    		transactions.add(boughtBook);
    		System.out.println (transactions);
    		System.out.println (storebooks);
    		System.out.println(saldo);
    	return true;
    
    	
    	}
    		System.err.println ("Andrea's credit is unfortunately over");
    				return false;
    	}
    	
    	public boolean sellBook(Integer isbn) {
    		for (Integer i = 0; i < storebooks.size(); i++) {
    			
    			BookStoreBook bookstorebook = storebooks.get(i);
    		
    			Integer currentIsbn = bookstorebook.getIsbn();
    			System.out.println (bookstorebook.getIsbn());
    			if (isbn.equals(currentIsbn)) {
    				
    		System.out.println("The book "+ bookstorebook.getIsbn()+ " costs " +bookstorebook.getSellingPrice());
    					System.out.println("This book has been sold succesfully!");
    					Boolean isSold = true;
    					Double saldo = bookstorebook.getSellingPrice();
    					Transaction currentTransaction = new Transaction(isSold, isbn, saldo);
    					transactions.add(currentTransaction);			
    					return true;
    				}
    			else {
    				System.out
    						.println("Error: Book not available");
    			}
    		
    		return false;
    	}
    		return false;
    	}
    Non so...può darsi abbia sbagliato qualcosa nel costruttore BookStoreBook???
    codice:
    public class BookStoreBook extends Book{
    	
            Integer isbn;
    	
    	Integer units;
    	
    	private Double costPrice;
    	
    	private Double sellingPrice;
    	
    	public BookStoreBook (Integer isbn, Integer units, Double costPrice){
    		
    		super (title, author, yearOfPublishing);
    	}
    	
    	public BookStoreBook(String title, String author, 
    						Integer yearOfPublishing,Integer isbn, 
    						Double sellingPrice ) {
    		super (title, author, yearOfPublishing);
    		this.isbn = isbn;
    		this.sellingPrice += costPrice * 0.2;
    	}
    Grazie mille in anticipo per l'aiuto!

  2. #2
    In che modo richiami sellBook? Magari l'oggetto BookStore sul quale richiami sellBook non è lo stesso sul quale precedentemente hai richiamato buyBook (nel quale aggiungi elementi al vector storebooks).
    Al mio segnale... scatenate l'inferno!

  3. #3
    sellBook viene richiamato da una classe Starter

    codice:
    import java.util.Vector;
    
    
    import objects.BookStoreBook;
    import objects.Book;
    import objects.Transaction;
    public class Starter {
    	
    	
    	public static void main(String[] args){
    	BookStore bookstore = new BookStore ();	
    
    	bookstore.buyBook(97888, 70, 15.2);
    	System.out.println("nach ersten Einkauf:");
    	bookstore.buyBook(12888, 50, 2.3);
    	System.out.println("nach zweiten Einkauf:");
    	bookstore.buyBook(13888, 50, 4.5);
    	
    	bookstore.sellBook(13888);
    	}
    Il problema è che pur richiamando sellBook un libro che dovrebbe già essere nel vettore storebooks (13888), tuttavia non lo vede...PERCHè????

  4. #4
    Non me ne ero accorto prima... ma nel ciclo for che hai messo in grassetto nel post precedente hai usato:

    for(Integer i =0; ...

    devi usare

    for(int i=0; ...


    Integer ed int non sono la stessa cosa. A grandi linee si può dire che Integer è la rappresentazione ad oggetti di un int che invece rappresenta un effettivo valore numerico.
    Al mio segnale... scatenate l'inferno!

  5. #5
    grazie...forse qualcosa ho risolto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.