VB 变化计算器 [英] VB Change Calulator

查看:27
本文介绍了VB 变化计算器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个 VB 2008 更改计算器作为作业.该程序是使用支付的金额 - 计算总额的金额.(这工作正常).之后,将该金额分解为美元、四分之一、一角硬币、五分硬币和便士.我遇到的问题是,有时便士、五分硬币或一角硬币的数量是负数.例如,2.99 美元 = 3 美元和 -1 便士.

I am creating a VB 2008 change calculator as an assignment. The program is to use the amount paid - the amount due to calculate the total.(this is working fine). After that, it is to break that amount down into dollars, quarters, dimes, nickels, and pennies. The problem I am having is that sometimes the quantity of pennies, nickels or dimes will be a negative number. For example $2.99 = 3 Dollars and -1 Pennies.

已解决

感谢大家的回复,这就是我用我有限的知识能够完成的工作.

Thanks to the responses, here is what I was able to make work with my limited knowledge.

Option Explicit On
Option Strict Off
Option Infer Off

Public Class frmMain

    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
        'Clear boxes

        lblDollarsAmount.Text = String.Empty
        lblQuartersAmount.Text = String.Empty
        lblDimesAmount.Text = String.Empty
        lblNickelsAmount.Text = String.Empty
        lblPenniesAmount.Text = String.Empty
        txtOwed.Text = String.Empty
        txtPaid.Text = String.Empty
        lblAmountDue.Text = String.Empty
        txtOwed.Focus()

    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        'Close application' 
        Me.Close()
    End Sub

    Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
        ' Find Difference between Total Price and Total Received 
        lblAmountDue.Text = Val(txtPaid.Text) - Val(txtOwed.Text)
        Dim intChangeAmount As Integer = lblAmountDue.Text * 100

        'Declare Integers  
        Dim intDollarsBack As Integer
        Dim intQuartersBack As Integer
        Dim intDimesBack As Integer
        Dim intNickelsBack As Integer
        Dim intPenniesBack As Integer

        ' Change Values 
        Const intDollarValue As Integer = 100
        Const intQuarterValue As Integer = 25
        Const intDimeValue As Integer = 10
        Const intNickelValue As Integer = 5
        Const intPennyValue As Integer = 1

        'Dollars 
        intDollarsBack = CInt(Val(intChangeAmount \ intDollarValue))
        intChangeAmount = intChangeAmount - Val(Val(intDollarsBack) * intDollarValue)
        lblDollarsAmount.Text = intDollarsBack.ToString

        'Quarters 
        intQuartersBack = CInt(Val(intChangeAmount \ intQuarterValue))
        intChangeAmount = intChangeAmount - Val(Val(intQuartersBack) * intQuarterValue)
        lblQuartersAmount.Text = intQuartersBack.ToString

        'Dimes 
        intDimesBack = CInt(Val(intChangeAmount \ intDimeValue))
        intChangeAmount = intChangeAmount - Val(Val(intDimesBack) * intDimeValue)
        lblDimesAmount.Text = intDimesBack.ToString

        'Nickels 
        intNickelsBack = CInt(Val(intChangeAmount \ intNickelValue))
        intChangeAmount = intChangeAmount - Val(Val(intNickelsBack) * intNickelValue)
        lblNickelsAmount.Text = intNickelsBack.ToString

        'Pennies 
        intPenniesBack = CInt(Val(intChangeAmount \ intPennyValue))
        intChangeAmount = intChangeAmount - Val(Val(intPenniesBack) * intPennyValue)
        lblPenniesAmount.Text = intPenniesBack.ToString

    End Sub
End Class

推荐答案

Public Shared Function CalculateChange(ByVal dblDollarsPaid As Double, ByVal dblDollarsOwed As Double)
    Dim intChangeCents As Integer
    Dim change As New Change()

    intChangeCents = CInt((dblDollarsPaid - dblDollarsOwed) * 100)

    change.Dollars = intChangeCents \ 100
    intChangeCents = intChangeCents Mod 100

    change.Quarters = intChangeCents \ 25
    intChangeCents = intChangeCents Mod 25

    change.Dimes = intChangeCents \ 10
    intChangeCents = intChangeCents Mod 10

    change.Nickels = intChangeCents \ 5
    intChangeCents = intChangeCents Mod 5

    change.Pennies = intChangeCents

    Return change
End Function

用法:

Dim c As Change
c = CalculateChange(13.26, 2.99)
Console.WriteLine("{0} dollars, {1} quarters, {2} dimes, {3} nickels and {4} pennies", _
                   c.Dollars, c.Quarters, c.Dimes, c.Nickels, c.Pennies)

\ 是整数除法的运算符,例如5 \ 2 是 2,而不是 2.5.

\ is the operator for integer division, e.g. 5 \ 2 is 2, not 2.5.

Change 结构来自 Alex Essilfie 的回答.

这篇关于VB 变化计算器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆