1.一个控制台的收银柜台收款程序。根据商品单价、购买数量以及收款金额计算并输出应收金额和找零的小程序第一版本CashierV1.
完整代码如下:
package cashier;
import java.util.Scanner;
public class CashierV1 {
/**
* 一个收银柜台收款程序。根据商品单价、购买数量以及收款金额计算并输出应收金额和找零。
*/
public static void main(String[] args) {
/*
* 第一步:根据需求,为这些变量定义一个名字 1.商品单价 price 2.购买数量 number 3.应收金额 totalNumber
* 4.实收金额 actualAmounts 5.找零钱 change
*
* 第二步:分析逻辑结构
*
* totalNumber=price*number; change=actualAmounts-totalNumber;
*
* 第三步:开始编码
*/
System.out.println("请输入商品的单价:");
Scanner scan = new Scanner(System.in);
double price = scan.nextDouble();
System.out.println("请输入商品的数量:");
int number = scan.nextInt();
double totalNumber = price * number;
System.out.println("收您的现金:");
double actualAmounts = scan.nextDouble();
double change = actualAmounts - totalNumber;
System.out.println("找回您:" + change + "元");
scan.close();
}
}
2.根据v1版本,改进了需求,当总价大于500的时候,可以享受8折的优惠。CashierV2版本。
完整代码如下:
package cashier;
import java.util.Scanner;
public class CashierV2 {
/**
* 根据v1版本,改进了需求,当总价大于500的时候,可以享受8折的优惠。
*/
public static void main(String[] args) {
/*
* totalNumber>500元 ,那么就可以享受8折
*/
System.out.println("请输入商品的单价:");
Scanner scan = new Scanner(System.in);
double price = scan.nextDouble();
System.out.println("请输入商品的数量:");
int number = scan.nextInt();
double totalNumber = price * number;
// 进行判断,当金额大于500元的时候,就可以打折
if (totalNumber > 500) {
totalNumber = totalNumber * 0.8;
}
System.out.println("收您的现金:");
double actualAmounts = scan.nextDouble();
double change = actualAmounts - totalNumber;
System.out.println("找回您:" + change + "元");
scan.close();
}
}
3. 在CashierV2版本上面改进需求,考虑到程序的异常情况:收款金额小于应收金额,给出提示。CashierV3版本。
完整代码如下:
package cashier;
import java.util.Scanner;
public class CashierV3 {
/**
* 在CashierV2版本上面改进需求,考虑到程序的异常情况:收款金额小于应收金额,给出提示。
*/
public static void main(String[] args) {
System.out.println("请输入商品的单价:");
Scanner scan = new Scanner(System.in);
double price = scan.nextDouble();
System.out.println("请输入商品的数量:");
int number = scan.nextInt();
double totalNumber = price * number;
// 进行判断,当金额大于500元的时候,就可以打折
if (totalNumber > 500) {
totalNumber = totalNumber * 0.8;
}
System.out.println("收您的现金:");
double actualAmounts = scan.nextDouble();
//如果收款金额小于应收金额,那么给出提示
if(actualAmounts<totalNumber){
System.out.println("您输入的信息有误!");
}
else{
double change = actualAmounts - totalNumber;
System.out.println("找回您:" + change + "元");
}
scan.close();
}
}