Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C]Convertire un listato in C partendo da Java

    Come da titolo...
    ...Ho rimediato un programma in java che effettua la conversione di un numero nel suo corrispondente in cifre, come avviene nei programmi per gestire gli assegni in modo automatizzato.
    Il programma che devo fare in poche parole deve ricevere in input un numero e trasformarlo in una stringa con il valore in lettere di quella cifra.
    Esempio
    2005 -> diventa -> duemilacinque
    1 -> diventa -> uno
    1996 -> diventa -> millenovecentonovantasei
    Ora io ho il listato in Java fatto da una persona che lo metteva a disposizione nel suo sito, ora mi dovreste fare un piacere, e cioè convertire questo programma in linguaggio C, visto che io non conosco nè C++ ne java, quindi per me la programmazione ad oggetti è totalmente sconosciuta.
    Non chiedo che me lo convertiate tutto ma solo che mi aiutate nelle parti più difficili e complesse.
    Listato Java
    codice:
    /** Author : Flavio Rocchi 
    * Mail : blueeice(at)inwind(dot)it 
    * Date : 11.01.2005 
    * Copyright ® Flavio Rocchi. All rights are reserved. 
    */ 
    
    class translateNumberToLetter 
    { 
    public static void main(String args[]) { 
    
    if(args.length == 2) 
    System.out.println(getTranslateNumber(args[0], args[1])); 
    else 
    System.out.println("La classe deve essere lanciata con due parametri.\nIl primo rappresenta gli interi, l'altro, i decimali.\n"); 
    } 
    
    protected static String getTranslateNumber(String number, String decimal) { 
    
    int size = number.length(); 
    String letter = new String(""); 
    
    int resto = size % 3; 
    int i = 0, count = 0; 
    
    if(resto > 0) { 
    letter += getDecimals(number.substring(0, resto)); 
    letter += getDefinition(number, size); 
    } 
    
    for(i=resto;i<size;i+=3) { 
    letter += getHundredValue(number.substring(i, (i+3 > size)?size:i+3), (size - count*3 -resto)); 
    count++; 
    } 
    
    return letter + "/" + decimal + " euro"; 
    } 
    
    private static String getSingleNumber(char number) { 
    
    switch(number) { 
    case C1: 
    return S1; 
    case C2: 
    return S2; 
    case C3: 
    return S3; 
    case C4: 
    return S4; 
    case C5: 
    return S5; 
    case C6: 
    return S6; 
    case C7: 
    return S7; 
    case C8: 
    return S8; 
    case C9: 
    return S9; 
    default: 
    return SD; 
    } 
    } 
    
    private static String getDecimals(String number) { 
    String definition = new String(""); 
    String stringvalue = new String(""); 
    
    int value = new Integer(number).parseInt(number); 
    boolean flag = false; 
    
    if(value > 0 && value < 10){ 
    if(number.length() == 1) 
    if(number.equals("1")) return SD; 
    else definition = getSingleNumber(number.charAt(0)); 
    else 
    definition = getSingleNumber(number.charAt(1)); 
    flag = true; 
    } 
    
    if(value >= 10 && value < 20) { 
    switch(value) { 
    case 10: 
    definition = S10; break; 
    case 11: 
    definition = S11; break; 
    case 12: 
    definition = S12; break; 
    case 13: 
    definition = S13; break; 
    case 14: 
    definition = S14; break; 
    case 15: 
    definition = S15; break; 
    case 16: 
    definition = S16; break; 
    case 17: 
    definition = S17; break; 
    case 18: 
    definition = S18; break; 
    case 19: 
    definition = S19; break; 
    } 
    
    flag = true; 
    } 
    
    if(value >= 20 && value < 30) 
    definition = S20; 
    
    if(value >= 30 && value < 40) 
    definition = S30; 
    
    if(value >= 40 && value < 50) 
    definition = S40; 
    
    if(value >= 50 && value < 60) 
    definition = S50; 
    
    if(value >= 60 && value < 70) 
    definition = S60; 
    
    if(value >= 70 && value < 80) 
    definition = S70; 
    
    if(value >= 80 && value < 90) 
    definition = S80; 
    
    if(value >= 90 && value < 100) 
    definition = S90; 
    
    if(flag) return definition; 
    
    stringvalue = number.substring(1); 
    
    if(stringvalue.equals("1")) 
    definition = definition.substring(0, (definition.length()-1)); 
    
    definition += getSingleNumber(number.charAt(1)); 
    
    return definition; 
    } 
    
    private static String getDefinition(int size) { 
    String definition = new String(""); 
    
    if(size >= 4 && size < 7) definition = SMILA; 
    if(size >=7 && size < 8) definition = SMILIONI; 
    
    return definition; 
    } 
    
    private static String getDefinition(String number, int size) { 
    String definition = new String(""); 
    
    if(number.substring(0, 1).equals("1") && size == 1) 
    return S1; 
    if(number.substring(0, 1).equals("1") && size == 4) 
    return SMILLE; 
    
    if(size >= 4 && size < 7) 
    definition = SMILA; 
    if(size >=7 && size < 8) 
    definition = (number.substring(0, 1).equals("1"))?SMILIONE:SMILIONI; 
    
    return definition; 
    } 
    
    private static String getHundredValue(String number, int size) { 
    String definition = new String(""); 
    
    if(!number.substring(0,1).equals("1")) 
    definition = getSingleNumber(number.charAt(0)); 
    
    if(!number.substring(0,1).equals("0")) 
    definition += SCENTO; 
    
    definition += getDecimals(number.substring(1)); 
    definition += getDefinition(size); 
    
    return definition; 
    } 
    
    /** 
    * Dichiarazioni delle variabili utilizzate all'interno del programma. 
    */ 
    
    private static final char C1 = '1'; 
    private static final char C2 = '2'; 
    private static final char C3 = '3'; 
    private static final char C4 = '4'; 
    private static final char C5 = '5'; 
    private static final char C6 = '6'; 
    private static final char C7 = '7'; 
    private static final char C8 = '8'; 
    private static final char C9 = '9'; 
    
    private static final String S1 = "uno"; 
    private static final String S2 = "due"; 
    private static final String S3 = "tre"; 
    private static final String S4 = "quattro"; 
    private static final String S5 = "cinque"; 
    private static final String S6 = "sei"; 
    private static final String S7 = "sette"; 
    private static final String S8 = "otto"; 
    private static final String S9 = "nove"; 
    private static final String S10 = "dieci"; 
    private static final String S11 = "undici"; 
    private static final String S12 = "dodici"; 
    private static final String S13 = "tredici"; 
    private static final String S14 = "quattordici"; 
    private static final String S15 = "quindici"; 
    private static final String S16 = "sedici"; 
    private static final String S17 = "diciasette"; 
    private static final String S18 = "diciotto"; 
    private static final String S19 = "diciannove"; 
    private static final String S20 = "venti"; 
    private static final String S30 = "trenta"; 
    private static final String S40 = "quaranta"; 
    private static final String S50 = "cinquanta"; 
    private static final String S60 = "sessanta"; 
    private static final String S70 = "settanta"; 
    private static final String S80 = "ottanta"; 
    private static final String S90 = "novanta"; 
    private static final String SD = ""; 
    
    private static final String SCENTO = "cento"; 
    private static final String SMILA = "mila"; 
    private static final String SMILLE = "mille"; 
    private static final String SMILIONE = "unmilione"; 
    private static final String SMILIONI = "milioni"; 
    
    }
    Regà grazie mille in anticipo!!!

  2. #2
    In effetti questo e' un programma C scritto usando la sintassi del Java, ma non ha proprio niente della programmazione ad oggetti.

    Credo che cmq questa cosa sia gia' stata richiesta e postata. Prova a fare una ricerca...
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    Ehi Topic Stammi Up!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.