用java编写找零钱程序

用java编写找零钱程序,第1张

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.KeyEvent

import java.awt.event.KeyListener

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JOptionPane

import javax.swing.JTextField

public class Test implements KeyListener {

JFrame jf = new JFrame("找零系统")

JLabel author = new JLabel("作者名:XXX")

JLabel priceLabel = new JLabel("价格:")

JLabel pmoneyLabel = new JLabel("付款:")

JTextField priceField = new JTextField()

JTextField pmoneyField = new JTextField()

JLabel gmoney = new JLabel()

public void init() {

jf.setLayout(null)

jf.setSize(170, 170)

jf.setResizable(false)

jf.setLocationRelativeTo(null)

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

jf.setVisible(true)

author.setBounds(50, 10, 100, 30)

priceLabel.setBounds(10, 50, 30, 20)

pmoneyLabel.setBounds(10, 80, 30, 20)

priceField.setBounds(50, 50, 100, 20)

pmoneyField.setBounds(50, 80, 100, 20)

gmoney.setBounds(40, 110, 100, 20)

jf.add(author)

jf.add(priceLabel)

jf.add(pmoneyLabel)

jf.add(priceField)

jf.add(pmoneyField)

jf.add(gmoney)

priceField.addKeyListener(this)

pmoneyField.addKeyListener(this)

}

public static void main(String[] args) {

new Test().init()

}

public void keyPressed(KeyEvent e) {

}

public void keyReleased(KeyEvent e) {

if (!priceField.getText().equals("")

&& !pmoneyField.getText().equals("")) {

try {

float price = Float.parseFloat(priceField.getText())

float pmoney = Float.parseFloat(pmoneyField.getText())

gmoney.setText("找零:" + (pmoney - price) + "元")

} catch (NumberFormatException e1) {

JOptionPane.showMessageDialog(jf, "输入错误!", "出错了",

JOptionPane.ERROR_MESSAGE)

priceField.setText("")

pmoneyField.setText("")

gmoney.setText("")

}

} else {

gmoney.setText("")

}

}

public void keyTyped(KeyEvent e) {

}

}

public static void main(String[] args) {

//这种方法效率应该不是很好,你可以从面额最大的下手。然后依次递减

Scanner scanner=new Scanner(System.in)

Double d=scanner.nextDouble()//输入的商品价格

Double d1=5.00//用户支付

Double d2=d1-d//应该找零

if (d2!=0) {

int x= (int) (d2/2)//两元

d2=d2%2

int y= (int) (d2/1)//一元

d2=d2%1

int z=(int) (d2/0.5)//五角

d2=d2%0.5

int w=(int)(d2/0.2)//两角

d2=d2%0.2

int j=(int)(d2/0.1)//一角

d2=d2%0.1

int i=(int)(d2/0.02)//两分

d2=d2%0.02

int k=(int)(d2/0.01)//两分

d2=d2%0.01

System.out.println("两元"+x+"张")

System.out.println("一元"+y+"张")

System.out.println("五角"+z+"张")

System.out.println("两角"+w+"张")

System.out.println("一角"+j+"张")

System.out.println("两分"+i+"张")

System.out.println("两分"+k+"张")

}

}

帮你改了下,自己琢磨琢磨吧

重点看输入流,这个应该经常用到的

import java.io.BufferedReader

import java.io.IOException

import java.io.InputStreamReader

public class fcy{

public static void main(String[] args){

BufferedReader br=null

try{

br=new BufferedReader(new InputStreamReader(System.in))

int a=0

int b=0

System.out.print("请输入消费金额:")

a=Integer.parseInt(br.readLine())

System.out.print("请输入支付金额:")

b=Integer.parseInt(br.readLine())

int c=b-a

System.out.print("余额:"+c)

int d=5000

int e=1000

int f=500

int g=100

int h=50

int i=10

int y=1

int j=c/d

int k=(c-d*j)/e

int m=(c-d*j-e*k)/f

int n=(c-d*j-e*k-f*m)/g

int o=(c-d*j-e*k-f*m-g*n)/h

int p=(c-d*j-e*k-f*m-g*n-o*h)/i

int z=(c-d*j-e*k-f*m-g*n-o*h-p*i)/y

System.out.println("五千元:"+j)

System.out.println("千元:"+k)

System.out.println("五百元:"+m)

System.out.println("百元:"+n)

System.out.println("五十元:"+o)

System.out.println("十元:"+p)

System.out.println("一元:"+z)

}

catch(IOException e){

System.out.println("错误")

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8159338.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存