简易超市收款系统 <三>

:lol:
新增功能
可以允许用户客户支付欧元或人民币 系统将自动转兑换为美元


以下是代码

本代码包含两个文件

一个文件是
CashRegister.java


/**

* ***********CopyRight**************

*-------Powered by QianXunNet-----

*-----Version 1.3 2009-01-23-----

*----- Design BY NiChao -----

*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*/
package chap04;

public class CopyOfCashRegister {
//申明常量
public static final double quarter_value=0.25; //25美分的货币折合成美元的价值
public static final double half_value=0.5; //50美分
public static final double min_value=0.01; //1美分
//汇率
public static final double rmb_to_dor=0.21; //人民币换美元
public static final double eur_to_dor=1.13; //欧元换美元

private double purchase; //应收金额
private double payment; //实际收取
private double change; //找零
//分类找零
private int change_dollors;
private int change_quarter;
private int change_half;
private int change_min;
private int times=0; //用来计数 货物输入次数


//类的方法
public int getTimes() {
return times;
}
//逐次结算总金额
public void recordParchase(double money){
this.purchase=this.purchase+money;
this.times++;
}
//将其他花币兑换成美元 initmoney 原始钱数 kind 兑换种类
public double exchange(double initMoney, int kind){

if(1 == kind) //人民币兑换美元
{
return initMoney*rmb_to_dor;
}
else if(2 == kind)
{
return initMoney*eur_to_dor;
}
else return initMoney; //美元换自己

}
//接受客户付款 有两种付款方式
//直接付出全部金额 ( 方法重载)
public void recordPayment(double payMent){
this.payment=payMent;

}
public void recordPayment(double dollers,double quarter ,double half ,double min ){
//分别输入客户给的各种货币 美元 四分之美元 半美元 以及1美分的个数

//计算客户支付的总的钱数 payment
this.payment=this.payment+dollers+quarter*quarter_value+half*half_value+min*min_value;
}
//找零方法
public void giveChange(){
this.change=this.payment-this.purchase;
//现将找零乘上100
int change_temp =(int) Math.round(this.change*100);
//美元数
this.change_dollors=change_temp/100;
//1/2美元数
this.change_half=(change_temp-this.change_dollors*100)/50;
//1/4美元数
this.change_quarter = (change_temp-this.change_dollors*100-this.change_half*50)/25;
//没分数
this.change_min = (change_temp-this.change_dollors*100-this.change_half*50-this.change_quarter*25);
}
public int getChange_dollors() {
return change_dollors;
}
public void setChange_dollors(int change_dollors) {
this.change_dollors = change_dollors;
}
public int getChange_quarter() {
return change_quarter;
}
public void setChange_quarter(int change_quarter) {
this.change_quarter = change_quarter;
}
public int getChange_half() {
return change_half;
}
public void setChange_half(int change_half) {
this.change_half = change_half;
}
public int getChange_min() {
return change_min;
}
public void setChange_min(int change_min) {
this.change_min = change_min;
}
public double getChange() {
return change;
}
public void setChange(double change) {
this.change = change;
}


}




还有一个文件是
CashRegisterTester.java


/**

* ***********CopyRight**************

*-------Powered by QianXunNet-----

*-----Version 1.3 2009-01-23-----

*----- Design BY NiChao -----

*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*/
package chap04;
import java.io.*;
import java.util.*;

import chap04.CopyOfCashRegister;
public class CopyOfCashRegisterTester {


public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("----------------简易超市收款系统----------------");
System.out.println("-------------感谢您的使用 祝您工作顺利------------");
System.out.println("输入0开始工作");
Scanner cin=new Scanner(System.in);
while(cin.nextInt()==0){
System.out.print("请输入客户购物的总金额……");
CopyOfCashRegister case1 = new CopyOfCashRegister();
int input =1;
while(input == 1)
{
double p =cin.nextDouble(); //输入客户支付的金额
case1.recordParchase(p);

System.out.print("input continue? 0:结束 1:继续");
input=cin.nextInt();
}

//做出选择 纯美元支付还是美元美分共同支付
System.out.println("总计输入"+case1.getTimes()+"次");
System.out.println("1.多种货币支付 2.单一货币支付");

int a=cin.nextInt();
while(a!=1&&a!=2 )
{System.out.print("选择有误请重新选择……");System.out.println("1.多种货币支付 2.单一货币支付");a=cin.nextInt();}

if(1 == a){
System.out.println("请输入各种货币的数量");
System.out.println("美元数: ");
double d=cin.nextDouble();
System.out.println("25美分数量: ");
double q=cin.nextDouble();
System.out.println("50美分数量: ");
double h=cin.nextDouble();
System.out.println("1美分数量: ");
double m=cin.nextDouble();
case1.recordPayment(d,q,h,m);
}
else if( 2== a){
System.out.println("客户选择了单一一种美元: ");
System.out.println("请选择你支付的货币种类 1.人民币 2.欧元 3.美元 ");
int kind1=cin.nextInt();
System.out.println("请输入客户支付的钱数");
double d1=cin.nextDouble();
double d2=case1.exchange(d1, kind1);
case1.recordPayment(d2);
System.out.printf("客户支付的钱折合成美元是 %5.2f 美元",d2);
}



// 找零模块

case1.giveChange();

System.out.println("找零如下:");
System.out.printf("总计找零 %5.2f",case1.getChange());
System.out.println("支付如下 ");
System.out.println(case1.getChange_dollors()+"个美元");
System.out.println(case1.getChange_half()+"个1/2美元");
System.out.println(case1.getChange_quarter()+"个1/4美元");
System.out.println(case1.getChange_min()+"个美分");


}

}
}




运行实例如下


----------------简易超市收款系统----------------
-------------感谢您的使用 祝您工作顺利------------
输入0开始工作
0
请输入客户购物的总金额……45
input continue? 0:结束 1:继续1
23.34
input continue? 0:结束 1:继续0
总计输入2次
1.多种货币支付 2.单一货币支付
2
客户选择了单一一种美元:
请选择你支付的货币种类 1.人民币 2.欧元 3.美元
2
请输入客户支付的钱数
64.88
客户支付的钱折合成美元是 73.31 美元找零如下:
总计找零 4.97支付如下
4个美元
1个1/2美元
1个1/4美元
22个美分
--------------------------------------------------------------
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在delphi7中,如何用TXMLDocument这个类访问下面这个xml中的"商品名称"这个节点的值:<?xml version="1.0" encoding="gb2312"?> <inv> <fpzl>s</fpzl> <成品油>0</成品油> <getmw/> <CheckEWM/> <PriceKind>1</PriceKind> <autoxxb>0</autoxxb> <购方名称>重庆缙嘉嘉商贸有限公司</购方名称> <购方税号>91500117MA7KPJXP0Y</购方税号> <购方银行帐号>中国银行重庆合川支行113078682068</购方银行帐号> <购方地址电话>重庆市合川区草街拓展园区15723038760</购方地址电话> <税率>0</税率> <备注/> <开票人>张</开票人> <复核人>周雯燕</复核人> <收款人>陈溢倩</收款人> <销方银行帐号>中国银行鄯善县新城东路支行107670942234</销方银行帐号> <销方地址电话>广州市番禺区456315896</销方地址电话> <合计金额>995575.22</合计金额> <合计税额>129424.78</合计税额> <销售单据编号>HS.GY.DBHS20230526-0025121</销售单据编号> <销方名称>航信培训企业</销方名称> <销方税号>440001999999179</销方税号> <原发票代码/> <原发票号码/> <通知单编号/> <电子邮箱/> <手机号/> <开票日期/> <红冲原因></红冲原因> <details> <detail> <商品编号/> <商品名称>金属硅鿃</商品名称> <规格型号/> <计量单位>吨</计量单位> <税收分类编码>1080208</税收分类编码> <数量>75</数量> <单价>15000</单价> <金额>1125000</金额> <税额>129424.78</税额> <优惠政策名称/> <税率>13</税率> <零税率标志/> </detail> </details> <清单标志>0</清单标志> </inv>
05-28

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值