Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.smeshed.calculateurfractions;
- import java.util.Scanner;
- public class CalculateurFraction {
- private static Scanner sc = new Scanner(System.in);
- public CalculateurFraction() {
- affNotice();
- affichageSaisieCalcul();
- }
- private void affNotice() {
- System.out.println("Ce programme est un calculateur de fractions.");
- System.out.println("Il peut additionner, soustraire, multiplier et diviser des fractions.");
- System.out.println("Il peut aussi tester l'égalité entre deux fractions.");
- System.out.println("Entrez les fractions sous la forme a/b (a et b sont des entiers).");
- System.out.println("Tapez Q pour quitter.");
- afficherSeparateur();
- }
- private static void affichageSaisieCalcul() {
- Fraction f1 = demanderFractionOuEntier();
- Fraction f2 = demanderFractionOuEntier();
- char operateur= demanderOperation();
- System.out.print(f1.toString() +" "+ operateur + " "+ f2.toString() + " = ");
- calculer(f1, f2, operateur);
- System.out.println();
- afficherSeparateur();
- }
- private static void calculer(Fraction f1, Fraction f2, char operateur) {
- }
- private static void afficherSeparateur(){
- System.out.println("----------------------------------------------------------------------");
- }
- private static char demanderOperation(){
- char operateur=' ';
- while(operateur != '+' && operateur !='-' && operateur !='*' && operateur !='/' && operateur !='=' && operateur !='Q' && operateur !='q') {
- System.out.print("Entrez une opération (+, -, *, /, =, ou Q pour quitter) : ");
- try{
- operateur = sc.nextLine().charAt(0);
- } catch (Exception e){
- operateur=' ';
- }
- System.out.println();
- }
- return operateur;
- }
- private static Fraction demanderFractionOuEntier(){
- String n="";
- while(!estAccepte(n)){
- System.out.print("Entrez une fraction (a/b) ou un entier : ");
- n = sc.nextLine();
- System.out.println();
- }
- if(estUneFraction(n)){
- int m=0;
- int num;
- int denum;
- n=n.trim();
- while(m<n.length()-1){
- m++;
- if(n.charAt(m)=='/'){
- String[] tab=n.split("/");
- num=Integer.parseInt(tab[0]);
- denum=Integer.parseInt(tab[1]);
- return new Fraction(num,denum);
- }
- }
- }
- return new Fraction(Integer.parseInt(n));
- }
- private static boolean estUneFraction(String s){
- for(int i = 0 ; i<s.length(); i++)
- if(s.charAt(i) == '/')
- return true;
- return false;
- }
- private static boolean estAccepte(String n) {
- if (n.split(n, '/').length > 1)
- for(int i=0; i<n.length(); i++) {
- if(!existe(n.charAt(i)) && n.length()>0){
- return false;
- }
- }
- else
- return false;
- return true;
- }
- private static boolean existe(char c){
- char[] carAcceptes= {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '/', ' '};
- for(int i = 0 ; i<carAcceptes.length;i++)
- if(c==carAcceptes[i])
- return true;
- return false;
- }
- private static boolean estUneOperation(String f1, String f2, char opp){
- if(opp=='/' && f2.equals("0/1"))
- return false;
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement