azure011328

导航

 

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QMessageBox

class ChangeCalculatorApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
self.setWindowTitle('找零钱最佳组合')

layout = QVBoxLayout()

# 货品价格输入
self.label_price = QLabel('请输入货品价格 (R):')
layout.addWidget(self.label_price)

self.entry_price = QLineEdit()
layout.addWidget(self.entry_price)

# 顾客付款输入
self.label_payment = QLabel('请输入顾客付款 (P):')
layout.addWidget(self.label_payment)

self.entry_payment = QLineEdit()
layout.addWidget(self.entry_payment)

# 提交按钮
self.submit_button = QPushButton('计算找零')
self.submit_button.clicked.connect(self.calculate_change)
layout.addWidget(self.submit_button)

# 结果显示
self.result_label = QLabel('结果: ')
layout.addWidget(self.result_label)

self.setLayout(layout)

def calculate_change(self):
try:
# 获取输入
price = int(self.entry_price.text())
payment = int(self.entry_payment.text())

# 检查输入有效性
if price <= 0 or price > 100:
self.result_label.setText("结果: 货品价格无效(0 < R ≤ 100)")
return
if payment < price or payment > 100:
self.result_label.setText("结果: 顾客付款无效(R ≤ P ≤ 100)")
return

# 计算找零金额
change = payment - price

# 计算最佳找零组合
n50 = change // 50
change %= 50
n10 = change // 10
change %= 10
n5 = change // 5
n1 = change % 5

# 显示结果
self.result_label.setText(f"结果: 50元={n50}张, 10元={n10}张, 5元={n5}张, 1元={n1}张")
except ValueError:
self.result_label.setText("结果: 输入无效(请输入整数)")

if __name__ == '__main__':
app = QApplication([])
window = ChangeCalculatorApp()
window.show()
app.exec_()

posted on 2025-06-11 08:51  淮竹i  阅读(7)  评论(0)    收藏  举报