Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα."— Μεταγράφημα παρουσίασης:

1 Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα

2 Περίπτωση Χρήσης ΠΧ1: Διεκπεραίωση Πώλησης (Process sale) Κύριος χρήστης: Ταμίας … Βασική Ροή 1.Ο Πελάτης έρχεται σε ένα ταμείο POS για να αγοράσει προϊόντα. 2.Ο Ταμίας ξεκινά μια νέα πώληση. 3.Ο Ταμίας εισάγει τον κωδικό του προϊόντος και την ποσότητα. 4.Το Σύστημα καταγράφει το προϊόν και παρουσιάζει την περιγραφή, την τιμή και το τρέχον σύνολο. Ο ταμίας επαναλαμβάνει τα βήματα 3-4 μέχρι να δηλώσει την ολοκλήρωση της διαδικασίας. 5.Το Σύστημα εμφανίζει το συνολικό κόστος, συμπεριλαμβανομένων και των φόρων. 6.Ο Ταμίας ενημερώνει τον Πελάτη για το κόστος και ζητάει την πληρωμή. 7.Ο Πελάτης πληρώνει και το Σύστημα διαχειρίζεται την πληρωμή. 8.Το Σύστημα καταγράφει την ολοκληρωμένη πώληση και στέλνει πληροφορίες σχετικές με την πώληση και την πληρωμή στο εξωτερικό Λογιστικό σύστημα (για λογιστική επεξεργασία και υπολογισμό προμηθειών), καθώς και στο Αποθεματικό σύστημα (για την ενημέρωση των αποθεμάτων). 9.Το Σύστημα εκδίδει απόδειξη. 10.Ο Πελάτης αναχωρεί με την απόδειξη και τα προϊόντα.

3 Το Εννοιολογικό μοντέλο της περιοχής προβλήματος

4 Διάγραμμα Συνεργασίας

5 Διάγραμμα Ακολουθίας Περίπτωση χρήσης: Process sale

6 Το διάγραμμα Κλάσεων

7 Ο κώδικας σε Java public class ProcesSaleHandler { public static void main(String[] args) { Store store = new Store(); Register reg = new Register(store); store.addRegister(reg); // ΣΥΜΒΑΝ 1: makeNewSale() reg.makeNewSale("19/3/2010", "10:24"); // ΣΥΜΒΑΝ 2: enterItem(itemID, quantity) - Επαναληπτική διαδικασία... // εισάγουμε τον κωδικό του προϊόντος και την ποσότητα reg.enterItem("x1", 4); // εισάγουμε ένα ακόμη προϊόν με την ποσότητα reg.enterItem("x7", 3); // εισάγουμε ένα ακόμη προϊόν με την ποσότητα reg.enterItem("x5", 2); // ΣΥΜΒΑΝ 3: reg.endSale(); // ΣΥΜΒΑΝ 4: makePayment(amount) }

8 public class Store { private Register reg; private ArrayList prodCat; public Store() { prodCat = new ArrayList(); makeInitialStore(); // Δημιουργεί ένα αρχικό κατάστημα } public void addRegister(Register reg) { this.reg = reg; } // Δημιουργεί ένα αρχικό κατάστημα και πραγματοποιεί κάποιες αρχικές συναλλαγές. private void makeInitialStore(){ // Δημιουργεί και καταχωρεί στο κατάστημα 5 προϊόντα prodCat.add(new Item("x1", "Σαμπουάν", 4.35)); prodCat.add(new Item("x2", "Σαπούνι", 1.28)); prodCat.add(new Item("x3", "Μαλακτικό Ρούχων", 8.72)); prodCat.add(new Item("x4", "Οδοντόκρεμα ΑΙΧ", 2.45)); prodCat.add(new Item("x5", "Οδοντόβουρτσα ΑΙΚ", 2.90)); //Εμφάνισε τα προϊόντα System.out.println("Διαθέσιμα προϊόντα στο κατάστημα"); printItems(); }

9 public Item findItem(String itemId) { Iterator itr = prodCat.iterator(); while (itr.hasNext()) { // 2.1.1: getItem() Item item = (Item) itr.next(); if (item.getltemlD().equals(itemId)) { return item; } return null; } public void printItems() { Iterator itr = prodCat.iterator(); while (itr.hasNext()) { Item item = (Item) itr.next(); System.out.println(item); } System.out.println("\n"); }

10 public class Register { private Store store; private Sale currentSale; public Register(Store store) { this.store = store; } public void makeNewSale(String date, String time) { currentSale = new Sale(date, time); System.out.println("\n" + currentSale); } // 2. ΣΥΜΒΑΝ public void enterItem(String itemID, int quantity) { // 2.1: πρώτα βρίσκουμε το Προϊόν Item item = store.findItem(itemID); // 2.1.2: if (item==null) System.out.println(itemID + " Ανύπαρκτο προϊόν"); else // 2.2: μετά δημιουργούμε μία γραμμή πώλησης με το προϊόν, η οποία εμφανίζει // και το τρέχον σύνολο currentSale.enterLineItem(item,quantity); } // 3. ΣΥΜΒΑΝ public void endSale(){ System.out.println("ΓΕΝΙΚΟ ΣΥΝΟΛΟ: " + currentSale.getTotal()); System.out.println("---------------------------------------------"); }

11 public class Sale { private String date; private String time; private double total =0; private ArrayList saleLines; public Sale(String date, String time) { this.date = date; this.time = time; this.saleLines = new ArrayList(); }

12 // 2.2.a[item found] public void enterLineItem(Item item, int quantity) { // 2.2.1: δημιουργείται μία γραμμή πώλησης SalesLineItem sli = new SalesLineItem(item, quantity); // 2.2.2: η γραμμή πώλησης προστίθεται στον πίνακα saleLines της Sale saleLines.add(sli); // 2.2.3: η γραμμή πώλησης ενημερώνεται με το τρέχον σύνολο total+=sli.getSubTotal(); // 2.2.4: το σύστημα εμφανίζει την γραμμή πώλησης showLineItem(sli); } public void showLineItem(SalesLineItem sli) { System.out.println(sli); //System.out.println(sli.getDescription() + " " + // sli.getPrice() + " " + sli.getQuantity() + " " + sli.getSubTotal()); } public double getTotal() { return total; }

13 public class SalesLineItem { private Item item; private int quantity; public SalesLineItem(Item item, int quantity) { this.item = item; this.quantity = quantity; } public double getSubTotal() { double subTotal = item.getPrice() * quantity; return(subTotal); } public String getDescription() { return item.getDescription(); } public double getPrice() { return item.getPrice(); } public int getQuantity() { return quantity; } public String toString() { return ("SalesLineItem: " + item.getltemlD() + " Description: " + item.getDescription() + " Price: " + item.getPrice() + " Quantity: " + quantity + " = Ποσό: " + getSubTotal()); }

14 public class Item { private String itemID; private String description; private double price; public Item(String itemID, String description, double price) { this.itemID = itemID; this.description = description; this.price = price; } public void setDescription(String description) { this.description = description; } public void setItemID(String itemID) { this.itemID = itemID; } public void setPrice(double price) { this.price = price; } public String getltemlD() { return itemID; } public double getPrice() { return price; } public String getDescription() { return description; }


Κατέβασμα ppt "Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google