import java.util.*;
public class CopyOfPay
{
public static void main(String[] args)
{
String name = ""; //商品名称
double price = 0; //商品价格
int count = 0; //购入数量
int goodNo; //商品编号
double total = 0; //购物总金额
double finalPay = 0; //打折后需付款
double payment; //实际交费金额
double discount = 0.8; //会员折扣
double returnMoney; //找钱
/*打印产品清单*/
System.out.println("我行我素购物管理系统 > 购物结算\n\n");
System.out.println("****************************************");
System.out.println("请选择购买的商品编号; \n");
System.out.println("1.T恤 2.网球鞋 3.网球拍");
System.out.println("****************************************\n");
Scanner input = new Scanner(System.in);
String answer = "y"; //标识是否继续
while(answer.equals("y")) //answer的值为"y"时执行循环
{
System.out.print("请输入商品编号:"); //提示输入商品编号
goodNo = input.nextInt(); //从键盘获取商品编号
System.out.print("请输入购买数量:"); //提示输入购买数量
count = input.nextInt(); //从键盘获取购买数量
switch(goodNo)
{
case 1: //输入"1"时获得T恤的价格
name = "T恤";
price = 245;
break;
case 2: //输入"2"时获得网球鞋的价格
name = "网球鞋";
price = 570;
break;
case 3: //输入"3"时获得网球拍的价格
name = "网球拍";
price = 320;
break;
default: //输入其他无效编号时
System.out.println("输入错误!");
break;
}
System.out.println(name + "\t" + "¥" + price + "\t\t" + "¥" + price * count); //输出商品名称和价格
System.out.print("\n是否继续(y/n)");
answer = input.next(); //用户再次输入是否继续的信息
}
total=price * count;
//实际购物的总金额
total = total + price * count;
//打折后的金额
finalPay = total * discount;
System.out.println("折扣: " + discount);
System.out.println("金额总计¥" + finalPay);
System.out.print("实际付费金额:");
payment = input.nextInt();
returnMoney = payment - finalPay;
System.out.println("实际交费¥" + payment);
System.out.println("找钱 ¥" + returnMoney);
}
}哪位大虾能帮偶看下啊,为什么我每次算出来的总金额都会比实际的多出80呢?看了N遍也没看出来是哪里出了问题
public class CopyOfPay
{
public static void main(String[] args)
{
String name = ""; //商品名称
double price = 0; //商品价格
int count = 0; //购入数量
int goodNo; //商品编号
double total = 0; //购物总金额
double finalPay = 0; //打折后需付款
double payment; //实际交费金额
double discount = 0.8; //会员折扣
double returnMoney; //找钱
/*打印产品清单*/
System.out.println("我行我素购物管理系统 > 购物结算\n\n");
System.out.println("****************************************");
System.out.println("请选择购买的商品编号; \n");
System.out.println("1.T恤 2.网球鞋 3.网球拍");
System.out.println("****************************************\n");
Scanner input = new Scanner(System.in);
String answer = "y"; //标识是否继续
while(answer.equals("y")) //answer的值为"y"时执行循环
{
System.out.print("请输入商品编号:"); //提示输入商品编号
goodNo = input.nextInt(); //从键盘获取商品编号
System.out.print("请输入购买数量:"); //提示输入购买数量
count = input.nextInt(); //从键盘获取购买数量
switch(goodNo)
{
case 1: //输入"1"时获得T恤的价格
name = "T恤";
price = 245;
break;
case 2: //输入"2"时获得网球鞋的价格
name = "网球鞋";
price = 570;
break;
case 3: //输入"3"时获得网球拍的价格
name = "网球拍";
price = 320;
break;
default: //输入其他无效编号时
System.out.println("输入错误!");
break;
}
System.out.println(name + "\t" + "¥" + price + "\t\t" + "¥" + price * count); //输出商品名称和价格
System.out.print("\n是否继续(y/n)");
answer = input.next(); //用户再次输入是否继续的信息
}
total=price * count;
//实际购物的总金额
total = total + price * count;
//打折后的金额
finalPay = total * discount;
System.out.println("折扣: " + discount);
System.out.println("金额总计¥" + finalPay);
System.out.print("实际付费金额:");
payment = input.nextInt();
returnMoney = payment - finalPay;
System.out.println("实际交费¥" + payment);
System.out.println("找钱 ¥" + returnMoney);
}
}哪位大虾能帮偶看下啊,为什么我每次算出来的总金额都会比实际的多出80呢?看了N遍也没看出来是哪里出了问题
//实际购物的总金额
total = total + price * count;
应该把第一个total注释
public class CopyOfPay
{
public static void main(String[] args)
{
String name = ""; //商品名称
double price = 0; //商品价格
int count = 0; //购入数量
int goodNo; //商品编号
double total = 0; //购物总金额
double finalPay = 0; //打折后需付款
double payment; //实际交费金额
double discount = 0.8; //会员折扣
double returnMoney; //找钱
/*打印产品清单*/
System.out.println("我行我素购物管理系统 > 购物结算\n\n");
System.out.println("****************************************");
System.out.println("请选择购买的商品编号; \n");
System.out.println("1.T恤 2.网球鞋 3.网球拍");
System.out.println("****************************************\n"); Scanner input = new Scanner(System.in);
String answer = "y"; //标识是否继续
while(answer.equals("y")) //answer的值为"y"时执行循环
{
System.out.print("请输入商品编号:"); //提示输入商品编号
goodNo = input.nextInt(); //从键盘获取商品编号
System.out.print("请输入购买数量:"); //提示输入购买数量
count = input.nextInt(); //从键盘获取购买数量
switch(goodNo)
{
case 1: //输入"1"时获得T恤的价格
name = "T恤";
price = 245;
total+=price * count;
break;
case 2: //输入"2"时获得网球鞋的价格
name = "网球鞋";
price = 570;
total+=price * count;
break;
case 3: //输入"3"时获得网球拍的价格
name = "网球拍";
price = 320;
total+=price * count;
break;
default: //输入其他无效编号时
System.out.println("输入错误!");
break;
}
System.out.println(name + "\t" + "¥" + price + "\t\t" + "¥" + total); //输出商品名称和价格
System.out.print("\n是否继续(y/n)");
answer = input.next(); //用户再次输入是否继续的信息
}
finalPay = total * discount;
System.out.println("折扣: " + discount);
System.out.println("金额总计¥" + finalPay);
System.out.print("实际付费金额:");
payment = input.nextInt();
if(payment<finalPay)
{
System.out.print("错误,请重新输入:(必须多于"+finalPay+")");
payment=input.nextInt();
}
returnMoney = payment - finalPay;
System.out.println("实际交费¥" + payment);
System.out.println("找钱 ¥" + returnMoney);
}
}
帮你改了一下,你原来的程序,只能计算最后一次所购的商品