Question

I am trying to figure out how to make it so that if a user has over 5000 points they will receive and extra 1000 points. As it is, it prints the same amount of points for everyone. User1 Values: 100, 1000, 1000, 5000. User2 Values: 1, 1, 1, 1.

Current Value:

User 1's total points are 7100 User 2,s total points are 7100 Expected Value:

User 1's total points are 7100 Bonus: 1000. User 2's total points are 4.

`public class AirlinePointsView extends FrameView {
    String[][] name = new String[10][2];
    Integer[][] points = new Integer[10][4];
    int rowNumber = 0;
    int userNumber = 0;
    public AirlinePointsView(SingleFrameApplication app) {
    }

    private void btnAddMouseClicked(java.awt.event.MouseEvent evt) {                                    
        name[rowNumber][0] = firstName.getText();
        name[rowNumber][1] = lastName.getText();

        points[rowNumber][0] = Integer.parseInt(week1.getText());
        points[rowNumber][1] = Integer.parseInt(week2.getText());
        points[rowNumber][2] = Integer.parseInt(week3.getText());
        points[rowNumber][3] = Integer.parseInt(week4.getText());
        rowNumber ++;
    }                                   

    private void btnListMouseClicked(java.awt.event.MouseEvent evt) {                                     
        String outputStr = "";
        for(int i=0; i < rowNumber; i++){
            outputStr += name[i][0] + " " + name[i][1] + " " +  points[i][0] + " " + points[i][1] + " " + points[i][2] + " " + points[i][3] + "" + "\n";
        }outPut.setText(outputStr);
    }`                                   

The Total Button

`private void btnTotalMouseClicked(java.awt.event.MouseEvent evt) {                                      
        String userTotal = "";
        String userBonus = "";
        int total = (points[0][0] + points[0][1] + points[0][2] + points[0][3]);
        int bonus = 1000;
        for(int i=0; i < rowNumber; i++){
            userTotal += name[i][0] + "'s Total Points are: " + total + "\n";
            userBonus += name[i][0] + "'s Total Points are: " + total + " Bonus: " + bonus + "\n";
            if(total > 5000){
                outPut.setText(userTotal);
            }else{
                outPut.setText(userBonus);
            }
        }
    }                                     


}`
Was it helpful?

Solution

You are just calculating the total for row 0.

Try this:

private void btnTotalMouseClicked(java.awt.event.MouseEvent evt) {                                      
        String userTotal = "";
        String userBonus = "";

        int bonus = 1000;
        for(int i=0; i < rowNumber; i++){
            int total = (points[i][0] + points[i][1] + points[i][2] + points[i][3]);
            userTotal += name[i][0] + "'s Total Points are: " + total + "\n";
            userBonus += name[i][0] + "'s Total Points are: " + total + " Bonus: " + bonus + "\n";
                if(total > 5000){
                    outPut.setText(userBonus);                        
                }else{
                    outPut.setText(userTotal);
                }
        }
    }                                     

}

OTHER TIPS

Put "total" inside for loop so it gets updated for each user:

total  = (points[i][0] + points[i][1] + points[i][2] + points[i][3]);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top