Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.16 KB | None | 0 0
  1. package CurrencyConverter;
  2. import java.util.Scanner;
  3. import java.awt.List;
  4. import java.io.BufferedReader;
  5. import java.io.Console;
  6. import java.io.FileReader;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10.  
  11. public class CC {
  12.  
  13.     static ArrayList<String> allCurrencies = new ArrayList<String>();
  14.     static String currencyName0;
  15.     static String currencyName1;
  16.     static double currencyAmount0 = 0;
  17.     static double currencyAmount1 = 0;
  18.  
  19.         public static void main (String [] args) throws Exception  {
  20.             String cTB="not set";       //currencyName0 ?
  21.             String cTS="not set";   //currencyName1 ?
  22.             double iCTB =0.0;
  23.             double iCTS =0.0;
  24.            
  25.             zeichne (cTB,cTS);
  26.             currency();
  27.             menue (cTB, cTS, iCTS, iCTB);
  28.         }
  29.        
  30.         /*wird genutzt um das Menü mit aktuellen Inhalten zu zeichnen
  31.          */
  32.         static void zeichne (String a, String b){
  33.             clearScreen();      //Screeninhalt wird gelöscht
  34.             System.out.println(" Currency to buy: "+ a);
  35.             System.out.println("Currency to sell: "+ b);
  36.             System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
  37.         }
  38.        
  39.         /* Methode, mit der die Textdatei mit den Währungsinfos eingelesen wird
  40.          *
  41.          */
  42.         static void currency()throws Exception{
  43.              try{
  44.                 FileReader file = new FileReader("/Users/Ich/Documents/Studium/SE1/Bonusprojekt/currencies.txt"); //Pfad zur Datei wird eingelesen
  45.                 BufferedReader reader = new BufferedReader(file); //
  46.              
  47.            
  48.                 String tempLine;
  49.                     while((tempLine = reader.readLine()) != null){
  50.                         allCurrencies.add(tempLine);
  51.                     }
  52.              }
  53.              
  54.              catch (IOException e){
  55.                 e.printStackTrace();
  56.              }         
  57.          }
  58.  
  59.        
  60.          static void menue (String cTB, String cTS, double iCTS, double iCTB){
  61.              final Scanner scan = new Scanner(System.in); // Read user input
  62.               System.out.println(" 0: Select currecy to buy\n 1: Select currency to sell\n 2: Choose amount to be converted\n");
  63.               System.out.println("Please choose an option (x to exit):");
  64.               final String menu = scan.nextLine(); //Wahl Nummer 1
  65.              
  66.               String platzhalter = "";
  67.              
  68.              switch (menu) {
  69.                 case "0":                   //currecy to buy
  70.                     setCurrency();
  71.                     currencyName0 = scan.nextLine();    // Name der Currency0 wird eingelesen
  72.                     exit(currencyName0);
  73.                     platzhalter = search(currencyName0);
  74.                     String[] x = platzhalter.split(":");   
  75.                     cTB =x[0];  // Rückgabe der gewählten Währung
  76.                     iCTB = Double.parseDouble(x[1]);
  77.                     zeichne (cTB,cTS);
  78.                     menue (cTB, cTS, iCTS, iCTB);
  79.                    
  80.                 case "1":                   //currency to sell
  81.                     setCurrency();
  82.                     currencyName1 = scan.nextLine();
  83.                     exit(currencyName1);
  84.                     platzhalter = search(currencyName1);
  85.                     String[] x1 = platzhalter.split(":");  
  86.                     cTS =x1[0]; // Rückgabe der gewählten Währung
  87.                     iCTS = Double.parseDouble(x1[1]);
  88.                     zeichne (cTB,cTS);
  89.                     menue (cTB, cTS, iCTS, iCTB);
  90.                  
  91.                 case "2":
  92.                     System.out.println("Enter an amount:");
  93.                     currencyAmount0 = scan.nextDouble();
  94.                     currencyAmount1 = iCTB * currencyAmount0/iCTS ; //c ist der Ausgelesene Faktor aus der Tabelle
  95.                     //System.out.println(iCTB);
  96.                     //System.out.println(iCTS);
  97.                     System.out.println(currencyAmount1);
  98.                     break;
  99.                    
  100.                 case "x":
  101.                     System.out.println("Bye");
  102.                     System.exit( 0 );
  103.                    
  104.              default: System.out.println("Please choose between 0, 1 & 2 or x to exit");
  105.                         break;
  106.               }
  107.          }
  108.          
  109.          void buyCurrency(){
  110.              System.out.println("Enter a currency's name or part of it: (xxx to exit)");
  111.     //       String currencyName1 = scan.nextLine();
  112.              
  113.          }
  114.         //void Currency
  115.         static void exit(String a){
  116.              if (a=="xxx"){
  117.                  //TODO menue (cTB, cTS, iCTS, iCTB); zurück ins Menü springen
  118.              }
  119.          }
  120.         static String search(String b){
  121.             final Scanner scan2 = new Scanner(System.in); // Read user input
  122.             ArrayList<String> currencyOptions = new ArrayList<String>();
  123.            
  124.             for(int i= 0; i<allCurrencies.size(); i++){
  125.                 if(allCurrencies.get(i).toLowerCase().contains(b.toLowerCase())){
  126.                     currencyOptions.add(allCurrencies.get(i));  //alle Währungen in denen das Eingegebene vorkommt, wird als Option ausgegeben
  127.  
  128.                     }
  129.                 }
  130.             if (1<currencyOptions.size()){                      // wenn mehr als eine Option, dann muss gewählt werden
  131.                 for (int i=0; i<currencyOptions.size(); i++){
  132.                     String[] a= currencyOptions.get(i).split(":");
  133.                     System.out.println(i +" "+ a[0]);   //Optionen werden mit Index ausgegeben
  134.                 }
  135.                
  136.                 System.out.println("\nSelect Currency per Index:");// Wahl über Eingabe des Index 
  137.                 return  currencyOptions.get(scan2.nextInt());   // Rückgabe der gewählten Währung
  138.             }
  139.             else{
  140.             return currencyOptions.get(0) ;}            // Rückgabe der Währung
  141.             }
  142.        
  143.         public static void clearScreen() {
  144.             System.out.print("\033[H\033[2J");  //TODO funktioniert noch nicht richtig
  145.             System.out.flush();    
  146.         }
  147.  
  148.         public static void setCurrency (){
  149.             System.out.println("Enter a currency's name or part of it:  (xxx to exit)");
  150.         }
  151.        
  152. //TODO fehlermeldungen errorhandling GANZ AM SCHLUSS -Anweisung Alex
  153.         //TODO methoden zum auslagern aus den...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement