Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.69 KB | None | 0 0
  1. package fr.smeshed.calculateurfractions;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class CalculateurFraction {
  6.     private static Scanner sc = new Scanner(System.in);
  7.  
  8.     public CalculateurFraction() {
  9.         affNotice();
  10.         affichageSaisieCalcul();
  11.     }
  12.  
  13.     private void affNotice() {
  14.         System.out.println("Ce programme est un calculateur de fractions.");
  15.         System.out.println("Il peut additionner, soustraire, multiplier et diviser des fractions.");
  16.         System.out.println("Il peut aussi tester l'égalité entre deux fractions.");
  17.         System.out.println("Entrez les fractions sous la forme a/b (a et b sont des entiers).");
  18.         System.out.println("Tapez Q pour quitter.");
  19.         afficherSeparateur();
  20.     }
  21.  
  22.     private static void affichageSaisieCalcul() {
  23.         Fraction f1 = demanderFractionOuEntier();
  24.         Fraction f2 = demanderFractionOuEntier();
  25.         char operateur= demanderOperation();
  26.         System.out.print(f1.toString() +" "+ operateur + " "+ f2.toString() + " = ");
  27.         calculer(f1, f2, operateur);
  28.         System.out.println();
  29.         afficherSeparateur();
  30.     }
  31.  
  32.     private static void calculer(Fraction f1, Fraction f2, char operateur) {
  33.        
  34.     }
  35.  
  36.  
  37.     private static void afficherSeparateur(){
  38.         System.out.println("----------------------------------------------------------------------");
  39.     }
  40.  
  41.     private static char demanderOperation(){
  42.         char operateur=' ';
  43.         while(operateur != '+' && operateur !='-' && operateur !='*' && operateur !='/' && operateur !='=' && operateur !='Q' && operateur !='q')        {
  44.             System.out.print("Entrez une opération (+, -, *, /, =, ou Q pour quitter) : ");
  45.             try{
  46.             operateur = sc.nextLine().charAt(0);
  47.             } catch (Exception e){
  48.                 operateur=' ';
  49.             }
  50.             System.out.println();
  51.         }
  52.         return operateur;
  53.     }
  54.    
  55.     private static Fraction demanderFractionOuEntier(){
  56.         String n="";
  57.         while(!estAccepte(n)){
  58.             System.out.print("Entrez une fraction (a/b) ou un entier : ");
  59.             n = sc.nextLine();
  60.             System.out.println();
  61.  
  62.         }
  63.         if(estUneFraction(n)){
  64.             int m=0;
  65.             int num;
  66.             int denum;
  67.             n=n.trim();
  68.             while(m<n.length()-1){
  69.                 m++;
  70.                 if(n.charAt(m)=='/'){
  71.                     String[] tab=n.split("/");
  72.                     num=Integer.parseInt(tab[0]);
  73.                     denum=Integer.parseInt(tab[1]);
  74.                     return new Fraction(num,denum);
  75.                 }
  76.             }
  77.         }
  78.         return new Fraction(Integer.parseInt(n));
  79.     }
  80.  
  81.     private static boolean estUneFraction(String s){
  82.         for(int i = 0 ; i<s.length(); i++)
  83.             if(s.charAt(i) == '/')
  84.                 return true;
  85.         return false;
  86.     }
  87.  
  88.     private static boolean estAccepte(String n) {
  89.         if (n.split(n, '/').length > 1)
  90.             for(int i=0; i<n.length(); i++) {
  91.                 if(!existe(n.charAt(i)) && n.length()>0){
  92.                     return false;
  93.                 }
  94.             }
  95.         else
  96.             return false;
  97.         return true;
  98.     }
  99.  
  100.     private static boolean existe(char c){
  101.         char[] carAcceptes= {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '/', ' '};
  102.         for(int i = 0 ; i<carAcceptes.length;i++)
  103.             if(c==carAcceptes[i])
  104.                 return true;
  105.         return false;
  106.     }
  107.  
  108.     private static boolean estUneOperation(String f1, String f2, char opp){
  109.         if(opp=='/' && f2.equals("0/1"))
  110.             return false;
  111.  
  112.         return false;
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement