Ich versuche printMenu(cart, scnr).
Java Arraylist und Klassen
Aber zum Beispiel ‚a‘> Die Code druckt
Geben Sie den Namen des Elements zu übergeben: die Artikelbeschreibung eingeben:
Vor Artikelnamen unter !!!!
Vielen Dank im Voraus.
Dies ist die Hauptklasse:
import java.util.Scanner;
public class ShoppingCartManager {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String customerName = "none";
String currentDate = "January 1, 2016";
System.out.println("Enter Customer's Name: ");
customerName = scnr.nextLine();
System.out.println("Enter Today's Date: ");
currentDate = scnr.nextLine();
ShoppingCart cart = new ShoppingCart(customerName, currentDate);
System.out.println("Customer Name: " + cart.getCustomerName());
System.out.println("Today's Date: " + cart.getDate());
printMenu(cart, scnr);
}
public static void printMenu(ShoppingCart cart, Scanner scnr) {
ItemToPurchase cartItems = new ItemToPurchase();
char userChoice = '?';
System.out.println("");
System.out.print("MENU" + "\na - Add item to cart" + "\nd - Remove item from cart"
+ "\nc - Change item quantity" + "\ni - Output items' descriptions"
+ "\no - Output shopping cart" + "\nq - Quit");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("Choose an option: ");
userChoice = scnr.next().charAt(0);
boolean rePrintMenu = true;
do {
switch (userChoice) {
// Add item to cart.
case 'a':
System.out.println("ADD ITEM TO CART");
System.out.println("Enter the item name: ");
cartItems.setName(scnr.nextLine());
System.out.println("\n\nEnter the item description: ");
cartItems.setDescription(scnr.nextLine());
System.out.println("\n\nEnter the item price: ");
cartItems.setPrice(scnr.nextInt());
System.out.println("Enter the item quantity: ");
cartItems.setQuantity(scnr.nextInt());
break;
// Remove item from cart
case 'd':
System.out.println("REMOVE ITEM FROM CART");
System.out.println("Enter name of item to remove: ");
cart.removeItem(scnr.nextLine());
break;
// Change item quantity
case 'c':
//ItemToPurchase newQuantity = new ItemToPurchase();
System.out.println("CHANGE ITEM QUANTITY");
System.out.println("Enter the item name: ");
// cart.modifyItem(scnr.nextLine());
break;
// Output items' descriptions
case 'i':
System.out.println("OUTPUT ITEMS' DESCRIPTIONS");
System.out.println(cart.getCustomerName() + "'s Shopping Cart - " + cart.getDate());
System.out.println("");
System.out.println("");
System.out.println("Item Descriptions");
System.out.println(cart.printDescriptions());
System.out.println();
break;
case 'o':
System.out.println("OUTPUT SHOPPING CART");
System.out.println(cart.getCustomerName() + "'s Shopping Cart - " + cart.getDate());
System.out.println(cart.getNumItemsInCart());
System.out.println("");
System.out.println("");
System.out.println(cart.printTotal());
break;
case 'q':
rePrintMenu = false;
System.exit(0);
break;
}
} while (rePrintMenu);
return;
}
}
enter code here
Das ist mein ShoppingCart!
Aber ich weiß nicht, warum es nicht mit Haupt funktioniert. Wie entferne ich den Gegenstand mit seinem Namen?
habe ich versucht, diese Logik aber nicht funktioniert:
Für() { if()
else { }
Soll ich boolean Flag haben? oder zählen? Ich bin verloren.
import java.util.ArrayList;
public class ShoppingCart {
private String customerName = "none";
private String currentDate = "January 1, 2016";
private ArrayList<ItemToPurchase> cartItems = new ArrayList<ItemToPurchase>();
public ShoppingCart() {
}
public ShoppingCart(String userName, String userDate) {
customerName = userName;
currentDate = userDate;
return;
}
public String getCustomerName() {
return customerName;
}
public String getDate() {
return currentDate;
}
public void addItem(ItemToPurchase item) {
cartItems.add(item);
return;
}
//fixMe
public void removeItem(String itemName) {
return;
}
// fixMe
public void modifyItem(ItemToPurchase item) {
return;
}
public int getNumItemsInCart() {
int totalNumOfItem = 0;
for (int i = 0; i < cartItems.size(); ++i) {
totalNumOfItem += cartItems.get(i).getQuantity();
}
return totalNumOfItem;
}
public int getCostOfCart() {
int cartCost = 0;
for (int i = 0; i < cartItems.size(); ++i) {
cartCost += cartItems.get(i).getQuantity();
cartCost *= cartItems.get(i).getPrice();
}
return cartCost;
}
public int printTotal() {
int total= 0;
for (int i = 0; i < cartItems.size(); ++i) {
if (cartItems.size()> 0) {
cartItems.get(i).printItemCost();
total = (cartItems.get(i).getQuantity()) * (cartItems.get(i).getPrice());
System.out.println("Total: $" + total);
}
else {
System.out.println("SHOPPING CART IS EMPTY");
}}
return total;
}
public String printDescriptions() {
String descriptions = "";
for (int i = 0; i < cartItems.size(); ++i) {
descriptions = cartItems.get(i).printItemDescription();
}
return descriptions;
}
}
Dies ist die ItemToPurchase-Klasse.
public class ItemToPurchase {
private String itemName = "none";
private String itemDescription = "none";
private int itemPrice=0;
private int itemQuantity=0;
public ItemToPurchase() {
}
public void setName(String userItemName) {
itemName = userItemName;
return;
}
public void setDescription(String userItemDescription) {
itemDescription = userItemDescription;
return;
}
public void setPrice(int userItemPrice) {
itemPrice = userItemPrice;
return;
}
public void setQuantity(int userItemQuantity) {
itemQuantity = userItemQuantity;
return;
}
public String getName() {
return itemName;
}
public String getDescription() {
return itemDescription;
}
public int getPrice() {
return itemPrice;
}
public int getQuantity() {
return itemQuantity;
}
public void printItemCost() {
System.out.print(itemName);
System.out.print(" " + itemQuantity + " @ $" + itemPrice);
System.out.println(" = $" + (itemQuantity * itemPrice));
return ;
}
public String printItemDescription() {
String descriptionForItem = itemName + ": " + itemDescription;
System.out.println(descriptionForItem);
return descriptionForItem;
}
}
versuchen, scanner.nextLine() nach der ersten Eingabe zu geben ... –
Gleiches Problem. next dann nextLine. Ich habe jedoch versucht, zwei Scanner zu verwenden und es funktioniert, aber wie verhalten sich die beiden Scanner? – 12uedhdksh24
überprüfen Sie diesen Link .. Sie werden verstehen: http://StackOverflow.com/Questions/23450524/java-scanner-doesnt-wait-for-user-input –