[JAVA] Version simplifiée du calcul des nombres en collectant des informations dans une instance

Créez une instance contenant le nom de l'étudiant et les scores des trois matières, produisez et calculez le score total

Dessin structurel.

スクリーンショット 2017-10-28 23.59.40.png

UserDataBean

package mapScore_plus_easy;

import java.util.List;

public class UserDataBean {

    private String userName;
    private List<String> scoresList;

    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }


    public List<String> getScoresList() {
        return scoresList;
    }
    public void setScoresList(List<String> scoresList) {
        this.scoresList = scoresList;
    }

}

Main

package mapScore_plus_easy;

public class Main {
	public static void main(String[] args) {

		//Instancier la classe de calcul du point total
		CalculateSum calculatesum = new CalculateSum();
		//Instancier une classe qui rassemble des informations dans une instance userDataBean et la renvoie
		ScoreReturn sr = new ScoreReturn();

		UserDataBean inputResult = sr.inputReturn("Tanaka");
		System.out.println(inputResult.getUserName() + inputResult.getScoresList());
		//Appelez la méthode de calcul du point total en utilisant la valeur de retour de la méthode ci-dessus comme argument réel
		calculatesum.calculate(inputResult);

		UserDataBean inputResult2 = sr.inputReturn("Sato");
		System.out.println(inputResult2.getUserName() + inputResult2.getScoresList());
		//Appelez la méthode de calcul du point total en utilisant la valeur de retour de la méthode ci-dessus comme argument réel
		calculatesum.calculate(inputResult2);
	}
}

Personnellement, j'étais un peu inquiet et j'ai eu du mal à utiliser le listeur. Créez une sampleList en tant que nouvelle liste, ajoutez-y des valeurs et utilisez-la enfin comme argument de définition. (Si vous ne créez pas de nouvelle liste et que vous n'utilisez pas la valeur comme argument de setter plusieurs fois, le setter sera mis à jour au lieu d'être ajouté, il sera donc réécrit à chaque fois.)

package mapScore_plus_easy;

import java.util.ArrayList;
import java.util.List;

public class ScoreReturn {

	//Une méthode qui définit les valeurs dans userName et scoresList de userDataBean et renvoie son instance
	public UserDataBean inputReturn (String person_Name){
		UserDataBean userDataBean = new UserDataBean();
		userDataBean.setUserName(person_Name);

		//Créez un exemple de liste.
		List<String> sampleList = new ArrayList<String>();

		//Si vous initialisez ces variables aléatoires en tant que champs,
		//M. Tanaka et M. Sato ont obtenu exactement le même score, ce qui n'est pas naturel.
		int randomScore_Japanese = new java.util.Random().nextInt(101);
		int randomScore_Math     = new java.util.Random().nextInt(101);
		int randomScore_English  = new java.util.Random().nextInt(101);

		//Liste des cours
		String score_japanese = Integer.toString(randomScore_Japanese);
		sampleList.add(("langue nationale" + ":" + score_japanese ));

		String score_math = Integer.toString(randomScore_Math);
		sampleList.add("Math" + ":" + score_math );

		String score_eng = Integer.toString(randomScore_English);
		sampleList.add(("Anglais" + ":" + score_eng ));

		userDataBean.setScoresList(sampleList);

		//Renvoie une instance contenant les informations.
		return userDataBean;
	}
}

CalculateSum

package mapScore_plus_easy;

import java.util.List;


public class CalculateSum {
	UserDataBean userdatabean = new UserDataBean();

	public void calculate(UserDataBean userDataBean){

		 List<String> scoresList = userDataBean.getScoresList();

		int sumScore = 0;

		for(String element : scoresList){
//			String deletedElement =  element.replaceAll("[^0-9]","");
			//Split est plus polyvalent dans ce cas que de remplacer.
			String[] splitedElement = element.split(":");

			String t = splitedElement[1];
			int integerElement = Integer.parseInt(t);
			sumScore += integerElement;
		}

		System.out.println(userDataBean.getUserName() + "Le score total de" + sumScore + "Est un point");
	}
}

Résultat d'exécution


Tanaka[langue nationale:20,Math:8,Anglais:19]
Le score total de M. Tanaka est de 47 points
Sato[langue nationale:37,Math:78,Anglais:89]
La note totale de M. Sato est de 204 points

Il est plus facile de comprendre les variables de liste si la convention de dénomination est "○○ Liste".

Recommended Posts

Version simplifiée du calcul des nombres en collectant des informations dans une instance
Obtenir des informations dans une instance et calculer des nombres Version standard
Installer en spécifiant la version de Django dans l'environnement Docker
Collecte des informations client lorsqu'une erreur se produit dans une application Web
Informations sur la version openssl dans ruby OPENSSL_VERSION
Trier par nombre de likes et par nation de page
Nombre de chiffres de l'élément de type numérique