2017-10-02 4 views
0

J'ai donc écrit une calculatrice de salaire à cette invite de laboratoire:Le salaire final n'augmente pas dans le compteur salarial?

Écrivez un programme qui affiche un calendrier de salaire pour les enseignants. Les entrées sont le salaire de départ, le pourcentage d'augmentation et le nombre d'années dans l'horaire. Chaque ligne de l'annexe produite doit contenir le numéro de l'année et le salaire pour cette année.

import java.util.Scanner; 

public class Lab2_10 
{ 

    public static void main (String[] args) 
    { 
    // Get values 
    Scanner scanner = new Scanner(System.in); 
    System.out.print("Enter the base first year salary: "); 
    int first = scanner.nextInt(); 
    System.out.println("Enter the percentage increase: "); 
    int percent = scanner.nextInt(); 
    System.out.println("Enter the number of years in the schedule: "); 
    int years = scanner.nextInt(); 

    // Calculate salary for each year 
    int total = first; 
    int i = 1; 
    int increment = percent/total * 100; 
    while (i <= years && years <= 25) 
    { 
     increment = percent/total * 100; 
     total += increment; 
     System.out.println(total + " " + i); 
     i++; 
    } 

    } 
} 

Alors c'est ce que j'ai jusqu'ici. Cependant, la ligne d'incrémentation ne semble pas fonctionner. Quand j'entre 40 000 comme salaire de base avec une augmentation de 5% sur 20 ans, cela me revient.

40000 1 
40000 2 
40000 3 
40000 4 
40000 5 
40000 6 
40000 7 
40000 8 
40000 9 
40000 10 
40000 11 
40000 12 
40000 13 
40000 14 
40000 15 
40000 16 
40000 17 
40000 18 
40000 19 
40000 20 

Je sais que l'année est en augmentation, mais le salaire reste le même. Je me demandais si c'est un problème avec la boucle ou avec des déclarations? Je ne sais pas vraiment comment le réparer.

+0

_Je sais l'année incrémente, mais le salaire reste le Talk same._ à votre gestionnaire :) –

Répondre

1

Votre logique de calcul est incorrect %

int increment = percent/total * 100; 

changement à

int increment = total * percent/100.0; // note 100.0 

2 choses ici.

  1. Simple math
  2. Integer division