java-每位顾客付款后给出找零钱的最佳组合

此页面是否是列表页或首页?未找到合适正文内容。

java-每位顾客付款后给出找零钱的最佳组合

标签:ackdemogeneratedstringvoid历史检测lse消费

  假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。

  下面为程序的代码:

/************************************************************
Copyright(C),1988-1999,HuaweiTech.Co.,Ltd.
FileName:test.cpp

Author:Light
Version:1.0
Date:2018/4/17
Description:
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,
现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种
//模块描述
Version:
仅用于软件测试,完成作业
//版本信息

FunctionList://主要函数及其功能
1.
History:
//历史修改记录

<author><time><version><desc>
Light18/4/171.0 建立函数

***********************************************************/
package demo;

import java.util.Scanner;

public class main {

/**
* 主函数
* @param args
*/
public static void main (String[] args) {
// TODO Auto-generated method stub

int pay = 0;//付款金额
int cost = 0;//商品花费
int change = 0;//找钱

@SuppressWarnings(\”resource\”)
Scanner scanner = new Scanner(System.in);
System.out.println(\”请输入顾客付款金额:\”);
//对输入的内容进行检测,是否符合规则
try
{
pay = scanner.nextInt();
if (pay > 100 || pay < 0)
{
System.out.println(\”请输入正确的金额\”);
return;
}

}catch (Exception e)
{
System.out.println(\”请输入合法数字\”);
return;
}

System.out.println(\”请输入商店货品价格:\”);
//对输入的内容进行检测,是否符合规则
try
{
cost = scanner.nextInt();
if (cost > 100 || cost < 0)
{
System.out.println(\”请输入正确的金额\”);
return;
}
else if (cost > pay)
{
System.out.println(\”您的消费金额超出支付金额\”);
return;
}
}catch (Exception e)
{
System.out.println(\”请输入合法数字\”);
return;
}

change = pay-cost;

//输出此时的付款金额,商品价格,应找金额
System.out.println(\”付款金额\” + pay +\” 货品价格\” + cost + \” 应找总金额:\” + change);

//获得结果,进行输出
String end = giveChange(change);
System.out.println(\”此次消费应找金额 \” + change + \” 元,其中应找 \” + end);

}

/**
* 以找钱规则找钱
* @param change
* @return String//返回最终的找钱结果
*/
public static String giveChange(int change)
{
String str=\”\”;
int qianshu;//应该找钱的张数
int leftmoney = change;//还剩下多少钱,初始值为change

if (leftmoney / 50 != 0)
{
qianshu = leftmoney / 50;
str = str + qianshu + \”张50元 \”;
leftmoney = leftmoney – qianshu * 50;
}
if (leftmoney / 10 != 0)
{
qianshu = leftmoney / 10;
str = str + qianshu + \”张10元 \”;
leftmoney = leftmoney – qianshu * 10;
}
if (leftmoney / 5 != 0)
{
qianshu = leftmoney / 5;
str = str + qianshu + \”张5元 \”;
leftmoney = leftmoney – qianshu * 5;
}
if (leftmoney / 1 != 0)
{
qianshu = leftmoney / 1;
str = str + qianshu + \”张1元 \”;
leftmoney = leftmoney – qianshu * 1;
}

//检验是否完全找完
System.out.println(\”剩余没有找完的钱数为:\”+leftmoney);
return str;
}
}

作者: 电脑大师

为您推荐

返回顶部