Solved

Vb.net calculation problem.

Posted on 2009-03-31
4
261 Views
Last Modified: 2012-05-06
How am i supposed to set this up? I've tried using what I've got but it won't calculate what I need to properly. Breakdown:
I have a program were I'm supposed to calculate books read and award points
based on a certain amount of books read by the reader. In the place of some numbers I used constants.
1-3 books = 10pts ea.
next 3 books = 15pts ea.
6 or more = 20pts ea.
'Declared Constants

    Const BOOKS_READ1Integer As Integer = 10

    Const BOOKS_READ2Integer As Integer = 15

    Const BOOKS_READ3Integer As Integer = 20

    Const MAX_BOOKS_ALLOWED_READInteger As Integer = 10000

 

    'Declared Variables

    Dim totalPointsDecimal, booksReadInteger, bookPoints, _

    customerCountInteger, numberBooksReadInteger, totalBooksRead, _

    numbooksRead, average, booksRead As Integer

 

 

    Private Function calculatePointsDataType(ByVal bookValue As String) As Integer

        Dim bookPoints As Integer

 

        Try

            Dim numberBooksRead As Integer = Integer.Parse(numBooksReadTextBox.Text)

 

            If numberBooksRead <= 1 And 3 Then

                bookPoints = numberBooksRead * BOOKS_READ1Integer

            ElseIf numberBooksRead < 3 And = 6 Then

                bookPoints = 3 * BOOKS_READ1Integer + numberBooksRead - 3 * BOOKS_READ2Integer

            ElseIf numberBooksRead >= 6 And MAX_BOOKS_ALLOWED_READInteger Then

                bookPoints = (3 * BOOKS_READ2Integer) + (3 * BOOKS_READ2Integer) + (numberBooksRead - 6) * (BOOKS_READ3Integer)

 

            End If

        Catch ex As Exception

        End Try

 

        Return bookPoints

    End Function

Open in new window

0
Comment
Question by:shaunareno
4 Comments
 

Author Comment

by:shaunareno
ID: 24035832
Revised Question:
not the calculation but, the logic is what I'm having trouble with.

0
 
LVL 84

Expert Comment

by:ozo
ID: 24036112
what are you trying to do when you say
  And 3
?
what are you trying to do when you say
And = 6


 numberBooksRead - 3 * BOOKS_READ2Integer
would be interpreted under customary precedence rules as
 numberBooksRead - (3 * BOOKS_READ2Integer)
whereas you probably meant
(numberBooksRead - 3)  * BOOKS_READ2Integer
0
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
ID: 24036207
It seems like from your line here:

    bookPoints = (3 * BOOKS_READ2Integer) + (3 * BOOKS_READ2Integer) + (numberBooksRead - 6) * (BOOKS_READ3Integer)

That you could instead loop thru and just tally up the points as you go:

    Private Function CalculateBookPoints() As Integer
        Dim points As Integer = 0
        Dim numberBooksRead As Integer = Integer.Parse(numBooksReadTextBox.Text)
        For i As Integer = 1 To numberBooksRead
            If i <= 3 Then
                points = points + BOOKS_READ1Integer
            ElseIf i <= 6 Then
                points = points + BOOKS_READ2Integer
            Else
                points = points + BOOKS_READ3Integer
            End If
        Next
        Return points
    End Function
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
A short article about problems I had with the new location API and permissions in Marshmallow
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now