edutecnica

Esercizio 2        

Realizza un programma che ricevuto in ingresso un numero del sistema numerico decimale lo trasformi in binario, rappresentandone la forma in complemento a uno e in complemento a due .


Possiamo creare la classe time che avrà come attributi il luogo, l'ora e i minuti di una data città. Poi possiamo creare un arraylist delle istanze della classe time: Una versione ampiamente migliorabile di questo programma è la seguente: .

import java.io.*;
import java.util.ArrayList;

class fusiorari {
public static void main (String[] args) throws IOException{

InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input); char ch;

ArrayList A=new ArrayList(2);
do{
System.out.println("X]EXIT");
System.out.println("A]Carica lista");
System.out.println("B]Stampa lista");
System.out.println("C]Modifica orario");
System.out.println("D]Inserisci orario");
ch=h.readLine().trim().charAt( 0 );
ch=Character.toUpperCase(ch);
switch(ch){
case 'A':carica(A);break;
case 'B':stampa(A);break;
case 'C':modifica(A);break;
case 'D':inserisci(A);break;
default:if(ch!='X')
      System.out.println("Opzione non valida");
} // fine switch
}while(ch!='X');
} //fine main

static void carica(ArrayList B)throws IOException{
String xl;
int xo,xm,i;
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input);
do{
System.out.print("ins.luogo:");
xl=h.readLine();
if(xl.length()==0)break;
System.out.print("ins.ora:"); xo=Integer.parseInt(h.readLine().trim());
System.out.print("ins.min:");
xm=Integer.parseInt(h.readLine().trim());
time t=new time(xl,xo,xm);
B.add(t);
}while(xl.length()!=0);
}//fine carica

static void stampa(ArrayList B){
for(int i=0;i < B.size();i++)
      System.out.println(i+"]"+B.get(i));
System.out.println("\nsize:"+B.size());
}//fine stampa
static void modifica(ArrayList B)throws IOException{

InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input);
String xl;
int xo,xm,i;
System.out.print("ins.indice:"); i=Integer.parseInt(h.readLine().trim());
System.out.print("ins.luogo:");
xl=h.readLine();
System.out.print("ins.ora:");
xo=Integer.parseInt(h.readLine().trim());
System.out.print("ins.min:");
xm=Integer.parseInt(h.readLine().trim());
if(xl.length()!=0) {
     time t=new time(xl,xo,xm); B.set(i,t);
}//fine if
}//fine modifica

static void inserisci(ArrayList B)throws IOException{

InputStreamReader input=new InputStreamReader(System.in); BufferedReader h= new BufferedReader(input);
String xl;
int xo,xm,i;
System.out.print("ins.indice:");
i=Integer.parseInt(h.readLine().trim());
System.out.print("ins.luogo:");
xl=h.readLine();
System.out.print("ins.ora:");
xo=Integer.parseInt(h.readLine().trim());
System.out.print("ins.min:");
xm=Integer.parseInt(h.readLine().trim());
if(xl.length()!=0) {
     time t=new time(xl,xo,xm);
     B.add(i,t);
}//fine if
}//fine modifica
} //fine classe fusiorari

class time {
String luogo;
private int ore;
private int min;

public time() {this("milano",0,0);}
public time(String l,int o, int m) {
if (isT(o,m)) {
    luogo=l;
    ore = o;
    min = m;
} else {
   System.out.println("Errore");
   luogo="milano";ore = 0; min = 0;
} //fine else
}//fine costruttore
public boolean isT(int o, int m) {
     return (o > =0 && o < =24 && m > =0 && m < =60 );
}


public void setT(String l,int o, int m) {
if (isT(o,m)) { luogo=l; ore = o; min = m; }
else System.out.println("Errore");
}//fine setT

public String getLuogo() {return luogo;}
public int getOre() {return ore;}
public int getMin() {return min;}
public String toString() {
return getLuogo()+":"+getOre()+":"+getMin(); }
}//fine classe time