用java编写收银_JAVA编程题-用java编写收银柜台收款程序

本文介绍了如何使用Java编写一个简单的收银柜台程序,该程序根据商品单价、数量和收款金额计算应收总额,并根据总价提供相应的折扣。当总价分别达到不同阈值时,提供9折、8折和6折优惠。同时,程序还处理了异常输入情况,确保计算准确。
摘要由CSDN通过智能技术生成

0fc76ba99563b548129ae15608b866e6.png

题目:编写一个收银柜台收款程序,根据商品单价、购买数量以及收款金额计算并输出应收金额和找零;当总价小于200元时,不享受折扣;当总价大于或等于200元且小于500元时,享受9折优惠,当总价大于或等于500且小于1000元时,享受8折优惠。当总价大于或等于1000元时,享受6折优惠。需要考虑程序的异常情况!

分析:制作简易流程图,如下:

3647f9eba2aaa2ebaa122c4df8a8b76d.png流程图

解析:

步骤一:定义类及 main方法

首先,使用自己的编程软件定于一个类,类名随意。并添加main()方法。

步骤二:读取控制台输入

在main()方法中,实例化Scanner类,并调用Scanner类的nextDouble()方法(因为金额会有小数,所以使用此方法)接收用户从控制台输入的商品单价、购买数量、收款金额,使用完毕后将scanner对象关闭,以释放资源(注意导入所需的包)。

8d416a4cfce7e8a568daff9009d53abc.png读取控制台输入

代码如下:

public class Cashier {public static void main(String[] args) { //在控制台输入数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入单价(RMB): "); double unitPrice = scanner.nextDouble(); System.out.println("请输入数量或公斤:"); double amount = scanner.nextDouble(); System.out.println("请输入金额(RMB):"); double money = scanner.nextDouble();

步骤三:计算所购商品总价并判断是否打折

(一) 计算商品的总价;

(二)使用if语句判断商品总价时候属于打折范畴。并进行打折分类计算;

a3e1769a44d09496ecacaf44db53eceb.png计算所购商品总价并判断是否打折

代码如下:

//计算商品的价格(并进行舍入计算)double totalPrice = Math.round(unitPrice * amount); //总价格double discount = 0; //折扣价格double surplus = 0; //余额//使用if-else语句计算折扣价格if (totalPrice < 200) {surplus = money - totalPrice;} else if (totalPrice < 500 && totalPrice >= 200) { discount = totalPrice * 0.9;} else if (totalPrice < 1000 && totalPrice >= 500) { discount = totalPrice * 0.8;} else if (totalPrice >= 1000) { discount = totalPrice * 0.6;}

步骤四:计算找零并输出结果

(二) 计算打折后的应收金额;

(三) 将收款金额减去应收金额,即为找零;

(四) 输出应收金额和找零金额,若错误,直接输出错误信息

67f76afc3238b3065bc0fd2f7d4c7a3f.png计算找零并输出结果

代码如下:

// 计算找零surplus = money - discount;if (surplus >= 0) {System.out.println("应收金额为:RMB " + Math.round(totalPrice) + "折扣金额为:RMB " + discount + ",找零为:RMB " + surplus);} else { System.out.println("输入有误,请重新输入!");

整个程序完整代码如下:

ab01458199bfb9ebb20e99d3675cef32.png完整程序代码

文字版:

import java.util.Scanner;/*** 描述: * 编写一个收银柜台收款程序 * * @author 十三 * @create 2018-12-13 21:09 */public class Cashier { public static void main(String[] args) { //在控制台输入数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入单价(RMB): "); double unitPrice = scanner.nextDouble(); System.out.println("请输入数量或公斤:"); double amount = scanner.nextDouble(); System.out.println("请输入金额(RMB):"); double money = scanner.nextDouble(); //计算商品的价格(并进行舍入计算) double totalPrice = Math.round(unitPrice * amount); //总价格 double discount = 0; //折扣价格 double surplus = 0; //余额 //使用if-else语句计算折扣价格 if (totalPrice < 200) { surplus = money - totalPrice; } else if (totalPrice < 500 && totalPrice >= 200) { discount = totalPrice * 0.9; } else if (totalPrice < 1000 && totalPrice >= 500) { discount = totalPrice * 0.8; } else if (totalPrice >= 1000) { discount = totalPrice * 0.6; } // 计算找零 surplus = money - discount; if (surplus >= 0) { System.out.println("应收金额为:RMB " + Math.round(totalPrice) + "折扣金额为:RMB " + discount + ",找零为:RMB " + surplus); } else { System.out.println("输入有误,请重新输入!"); } }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值