Java案例中的问题将继续提示进行有效选择
你好,我有一个很难让我的代码工作,我有它的大部分工作,但当谈到菜单它崩溃。我想做的就是: 实现printMenu()方法。printMenu()有一个ShoppingCart参数,并输出一个操作购物车的选项菜单。每个选项由单个字符表示。在方法中生成并输出菜单 如果输入了无效字符,请继续提示输入有效的选择。提示:在实现其他选项之前先实现退出。在main()方法中调用printMenu()。继续执行菜单,直到用户输入q退出 我已经完成了菜单部分,但它不断循环。菜单部分的代码如下所示: 项目采购 公共类ItemToPurchase{Java案例中的问题将继续提示进行有效选择,java,Java,你好,我有一个很难让我的代码工作,我有它的大部分工作,但当谈到菜单它崩溃。我想做的就是: 实现printMenu()方法。printMenu()有一个ShoppingCart参数,并输出一个操作购物车的选项菜单。每个选项由单个字符表示。在方法中生成并输出菜单 如果输入了无效字符,请继续提示输入有效的选择。提示:在实现其他选项之前先实现退出。在main()方法中调用printMenu()。继续执行菜单,直到用户输入q退出 我已经完成了菜单部分,但它不断循环。菜单部分的代码如下所示: 项目采购 公共
private String itemName;
private int itemPrice;
private int itemQuantity;
private String itemDescription;
public ItemToPurchase(){
this.itemName = "none";
this.itemPrice = 0;
this.itemQuantity = 0;
this.itemDescription = "none";
}
publicItemToPurchase(字符串itemName、int itemPrice、int itemQuantity、字符串
项目描述)
{
this.itemName=itemName;
this.itemPrice=itemPrice;
this.itemQuantity=itemQuantity;
this.itemsdescription=itemsdescription;
}
公共字符串getName(){
返回itemName;
}
public void setName(字符串itemName){
this.itemName=itemName;
}
public int getPrice(){
退货价格;
}
公共无效设置价格(int itemPrice){
this.itemPrice=itemPrice;
}
公共整数getQuantity(){
退货数量;
}
公共void setQuantity(int itemQuantity){
this.itemQuantity=itemQuantity;
}
公共字符串getDescription(){
退货项目描述;
}
public void setDescription(字符串itemsdescription){
this.itemsdescription=itemsdescription;
}
公共无效printItemCost(){
int小计=项目数量*项目价格;
System.out.print(itemName+“”+itemQuantity+“@$”+itemPrice+”=
$”+小计);
System.out.println(“”);
}
//打印项目名称
//及描述
public void printItemDescription(){
System.out.println(this.itemName+“:”+this.itemsdescription);
}
}
**购物车**
导入java.util.ArrayList;
公共类购物车{
私有字符串客户名称;
私有字符串currentDate;
私有ArrayList cartItems=新ArrayList();
公共购物车(){
customerName=“无”;
currentDate=“2016年1月1日”;
//cartItemToPurchases=新的ArrayList();
}
公共购物车(字符串customerName,字符串currentDate){
this.customerName=客户名称;
this.currentDate=currentDate;
//cartItemToPurchases=新的ArrayList();
}
公共字符串getCustomerName(){
返回客户名称;
}
公共字符串getDate(){
返回当前日期;
}
public void setCustomerName(字符串customerName){
this.customerName=客户名称;
}
公共无效设置日期(字符串currentDate){
this.currentDate=currentDate;
}
公共无效附加项(ItemToPurchase ItemToPurchaseToPurchaseToPurchase){
如果(cartItems!=null){
cartItems.add(itemToPurchaseToPurchase);
}
}
public void removietem(字符串itemName){
如果(cartItems!=null){
对于(ItemToPurchase ItemToPurchase:cartItems){
if(itemToPurchase.getName().equals(itemName)){
cartItems。删除(itemToPurchase);
回来
}
}
System.out.println(“购物车中找不到商品,未删除任何内容”);
}
}
公共作废修改项(ItemToPurchase ItemToPurchaseToPurchaseToPurchase){
布尔itemFound=false;
如果(cartItems!=null){
对于(项目采购项目:cartItems){
if(item.getName().equals(itemtopourchasetopurchase.getName())){
itemFound=true;
如果(!itemToPurchaseToPurchase.getDescription()等于(“无”)){
item.setDescription(itemToPurchaseToPurchase.getDescription());
}
如果(itemToPurchaseToPurchase.getQuantity()!=0){
item.setQuantity(itemToPurchaseToPurchase.getQuantity());
}
如果(itemToPurchaseToPurchase.getPrice()!=0){
item.setPrice(itemtopourchasetopurchase.getPrice());
}
}
}
if(itemFound!=true){
System.out.println(“购物车中找不到商品,未修改任何内容”);
}
}
}
public int getNumItemsInCart(){
int totalQuantity=0;
如果(cartItems!=null){
对于(ItemToPurchase ItemToPurchase:cartItems){
totalQuantity+=itemToPurchase.getQuantity();
}
}
返回总数量;
}
public int getCostOfCart(){
int totalCostOfCart=0;
如果(cartItems!=null){
对于(ItemToPurchase ItemToPurchase:cartItems){
零件总成本+=(itemToPurchase.getQuantity()*
itemToPurchase.getPrice());
}
}
退货总成本;
}
公共发票总额(){
if(cartItems==null | | cartItems.size()==0){
System.out.println(“购物车是空的”);
回来
}
System.out.println(customerName+“\”的“+”购物车-“+当前日期);
System.out.println(“项目数:+getNumItemsInCart());
System.out.println();
对于(ItemToPurchase ItemToPurchase:cartItems){
printItemCost();
}
System.out.println();
System.out.println(“总计:$”+getCostOfCart());
}
公共描述(){
if(cartItems==null | | cartItems.size()==0){
System.out.println(“购物车是空的”);
回来
}
System.out.println(customerName+“\”的“+”购物车-“+当前日期);
System.out.println(“\n项目说明”);
对于(ItemToPurchase ItemToPurchase:cartItems){
itemToPurchase.printItemDescription();
}
}
}
**购物车经理**
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
公共类购物车经理{
私有静态BufferedReader br=新BufferedReader(新
InputStreamReader(System.in));
//打印选项菜单
公共静态无效打印菜单(ShoppingCart ShoppingCart)
T
public ItemToPurchase(String itemName, int itemPrice, int itemQuantity, String
itemDescription)
{
this.itemName = itemName;
this.itemPrice = itemPrice;
this.itemQuantity = itemQuantity;
this.itemDescription = itemDescription;
}
public String getName(){
return itemName;
}
public void setName(String itemName){
this.itemName = itemName;
}
public int getPrice(){
return itemPrice;
}
public void setPrice(int itemPrice){
this.itemPrice = itemPrice;
}
public int getQuantity(){
return itemQuantity;
}
public void setQuantity(int itemQuantity){
this.itemQuantity = itemQuantity;
}
public String getDescription(){
return itemDescription;
}
public void setDescription( String itemDescription){
this.itemDescription = itemDescription;
}
public void printItemCost(){
int subtotal = itemQuantity * itemPrice;
System.out.print(itemName+" "+itemQuantity+" @ $"+itemPrice+" =
$"+subtotal);
System.out.println("");
}
// Prints the item name
// and description
public void printItemDescription(){
System.out.println(this.itemName + ": "+ this.itemDescription);
}
}
**ShoppingCart**
import java.util.ArrayList;
public class ShoppingCart {
private String customerName;
private String currentDate;
private ArrayList<ItemToPurchase> cartItems = new ArrayList<>();
public ShoppingCart(){
customerName = "none";
currentDate = "1 January, 2016";
//cartItemToPurchases = new ArrayList<ItemToPurchase>();
}
public ShoppingCart(String customerName, String currentDate){
this.customerName = customerName;
this.currentDate = currentDate;
//cartItemToPurchases = new ArrayList<ItemToPurchase>();
}
public String getCustomerName(){
return customerName;
}
public String getDate(){
return currentDate;
}
public void setCustomerName(String customerName){
this.customerName = customerName;
}
public void setDate(String currentDate){
this.currentDate = currentDate;
}
public void addItem(ItemToPurchase itemToPurchaseToPurchase){
if(cartItems != null){
cartItems.add(itemToPurchaseToPurchase);
}
}
public void removeItem(String itemName){
if(cartItems != null){
for(ItemToPurchase itemToPurchase : cartItems){
if(itemToPurchase.getName().equals(itemName)){
cartItems.remove(itemToPurchase);
return;
}
}
System.out.println("Item not found in cart. Nothing removed.");
}
}
public void modifyItem(ItemToPurchase itemToPurchaseToPurchase){
boolean itemFound = false;
if(cartItems != null){
for(ItemToPurchase item : cartItems){
if(item.getName().equals(itemToPurchaseToPurchase.getName())){
itemFound = true;
if(!itemToPurchaseToPurchase.getDescription().equals("none")){
item.setDescription(itemToPurchaseToPurchase.getDescription());
}
if(itemToPurchaseToPurchase.getQuantity() != 0){
item.setQuantity(itemToPurchaseToPurchase.getQuantity());
}
if(itemToPurchaseToPurchase.getPrice() != 0){
item.setPrice(itemToPurchaseToPurchase.getPrice());
}
}
}
if(itemFound != true){
System.out.println("Item not found in cart. Nothing modified.");
}
}
}
public int getNumItemsInCart(){
int totalQuantity = 0;
if(cartItems != null){
for(ItemToPurchase itemToPurchase : cartItems){
totalQuantity += itemToPurchase.getQuantity();
}
}
return totalQuantity;
}
public int getCostOfCart(){
int totalCostOfCart = 0;
if(cartItems != null){
for(ItemToPurchase itemToPurchase : cartItems){
totalCostOfCart += (itemToPurchase.getQuantity()*
itemToPurchase.getPrice());
}
}
return totalCostOfCart;
}
public void printTotal(){
if(cartItems == null || cartItems.size() == 0){
System.out.println("SHOPPING CART IS EMPTY.");
return;
}
System.out.println(customerName+"\'s"+" Shopping Cart - "+currentDate);
System.out.println("Number of Items: "+getNumItemsInCart());
System.out.println();
for(ItemToPurchase itemToPurchase : cartItems){
itemToPurchase.printItemCost();
}
System.out.println();
System.out.println("Total: $"+getCostOfCart());
}
public void printDescriptions(){
if(cartItems == null || cartItems.size() == 0){
System.out.println("SHOPPING CART IS EMPTY.");
return;
}
System.out.println(customerName+"\'s"+" Shopping Cart - "+currentDate);
System.out.println("\nItem Descriptions");
for(ItemToPurchase itemToPurchase : cartItems){
itemToPurchase.printItemDescription();
}
}
}
**ShoppingCartManager**
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShoppingCartManager{
private static BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
// Prints a menu of options
public static void printMenu(ShoppingCart shoppingCart)
throws IOException
{
char choice = ' ';
while (true)
{
System.out.println("\nMENU");
System.out.println("a - Add item to cart");
System.out.println("d - Remove item from cart");
System.out.println("c - Change item quantity");
System.out.println("i - Output items' descriptions");
System.out.println("o - Output shopping cart");
System.out.println("q - Quit");
System.out.println("");
System.out.println("Choose an option:");
choice = br.readLine().charAt(0);
if (!((choice == 'a') || (choice == 'd') ||
(choice == 'c') || (choice == 'i')
|| (choice == 'o')|| (choice == 'q')))
{
System.out.println("Choose an option:");
choice = br.readLine().charAt(0);
continue;
}
else
{
switch (choice)
{
case 'a':
System.out.println("ADD ITEM TO CART");
System.out.println("Enter the item name:");
String itemName = br.readLine();
System.out.println("Enter the item description:");
String itemDesc = br.readLine();
System.out.println("Enter the item price:");
int itemPrice = Integer.parseInt(br.readLine());
System.out.println("Enter the item quantity:");
int itemQty = Integer.parseInt(br.readLine());
ItemToPurchase it = new ItemToPurchase(itemName,
itemPrice, itemQty, itemDesc);
shoppingCart.addItem(it);
break;
// Remove item
case 'd':
System.out.println("REMOVE ITEM FROM CART");
System.out.println("Enter name of item to remove:");
itemName = br.readLine();
shoppingCart.removeItem(itemName);
break;
// Change item quantity
case 'c':
System.out.println("CHANGE ITEM QUANTITY");
System.out.println("Enter item name:");
itemName = br.readLine();
System.out.println("Enter the new quantity:");
itemQty = Integer.parseInt(br.readLine());
ItemToPurchase item = new ItemToPurchase(itemName, 0, itemQty,
"none");
item.setName(itemName);
item.setQuantity(itemQty);
shoppingCart.modifyItem(item);
break;
// Output items' descriptions
case 'i':
System.out.println("OUTPUT ITEMS' DESCRIPTIONS");
shoppingCart.printDescriptions();
break;
// Output shopping cart
case 'o':
System.out.println("OUTPUT SHOPPING CART");
shoppingCart.printTotal();
break;
// Quit
case 'q':
br.close();
System.exit(0);
}
}
}
}
public static void main(String args[]){
try
{
System.out.println("Enter Customer's Name:");
String customerName = br.readLine();
System.out.println("Enter Today's Date:");
String currentDate = br.readLine();
System.out.println();
ShoppingCart shoppingCart = new ShoppingCart(customerName,
currentDate);
System.out.println("Customer Name: " + shoppingCart.getCustomerName());
System.out.println("Today's Date: " + shoppingCart.getDate());
printMenu(shoppingCart);
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
System.out.println("\nMENU");
System.out.println("a - Add item to cart");
System.out.println("d - Remove item from cart");
System.out.println("c - Change item quantity");
System.out.println("i - Output items' descriptions");
System.out.println("o - Output shopping cart");
System.out.println("q - Quit");
System.out.println("");
System.out.println("Choose an option:");
boolean shouldPrintMenu = true;
while (true) {
if (shouldPrintMenu) {
// ...
} else {
shouldPrintMenu = true;
}
System.out.println("Choose an option:");
choice = br.readLine().charAt(0);
if (!( (choice == 'a') || (choice == 'd')
|| (choice == 'c') || (choice == 'i')
|| (choice == 'o') || (choice == 'q')))
{
shouldPrintMenu = false;
continue;
}
// ...
}