Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- CONSEGNA ESERCIZIO TEMPO:
- Scrivi una classe Tempo (in un file separato) che misura un intervallo di tempo.
- Tempo contiene tre numeri interi ore, minuti e secondi.
- Ognuno è esposto tramite le proprietà Ore, Minuti, Secondi,
- che permettono di ottenere i valori degli attributi corrispondenti.
- Ore permette di impostare ore a qualsiasi valore.
- Minuti e Secondi permettono di impostare i loro valori da 0 a 60:
- Se i nuovi valori invece sono maggiori di 60, avviene il "riporto", come quello della somma:
- ad esempio, se faccio tempo.Secondi = 75,
- 75 secondi sono 1 minuto e 15 secondi, perciò viene aggiunto 1 a Minuti e secondi viene impostato a 15.
- analogamente per i minuti, se faccio tempo.Minuti = 125,
- 125 minuti sono 2 ore e 5 minuti, quindi viene aggiunto 2 a Ore e Minuti viene impostato a 5.
- analogamente per i secondi, se faccio tempo.Secondi = 65,
- 65 secondi sono 1 minuto e 5 secondi.
- (posso anche fare tempo.Secondi = 3600 per indicare un'ora)
- Ha un costruttore di default che inizializza Ore, Minuti, Secondi a 0,
- e un costruttore standard che inizializza Ore, Minuti, Secondi a valori passati per parametro.
- La classe ha anche un metodo Aggiungi, che permette di aggiungere un Tempo a quello su cui viene invocato.
- Ad esempio:
- A (2h 15m 20s)
- B (3h 45m 5s)
- Dopo A.Aggiungi(B)
- A (6h 0m 25s)
- B (3h 45m 5s)
- Ha anche un metodo LeggiDaTastiera(), che imposta il Tempo su cui viene invocato a valori letti da tastiera, ad esempio:
- Ore: 1
- Minuti: 50
- Secondi: 11
- E un metodo FormattaInStringa(), che restituisce una stringa che rappresenta il Tempo su cui viene invocato nel formato h m s, ad esempio:
- 1h 50m 11s
- Infine, scrivere la Main in modo che legga da tastiera un numero intero n, e n Tempi.
- La Main poi stampa il totale dei tempi inseriti.
- Esempio di output:
- N: 3
- Tempo 1:
- Ore: 5
- Minuti: 30
- Secondi: 5
- Tempo 2:
- Ore: 24
- Minuti: 55
- Secondi: 12
- Tempo 3:
- Ore: 1
- Minuti: 65
- Secondi: 3650
- Totale: 33h 31m 7s
- */
- /*
- === Tempo.cs ===
- */
- using System;
- namespace es {
- class Tempo {
- int h;
- public int Ore {
- get { return h; }
- set {
- h = value;
- }
- }
- int m;
- public int Minuti {
- get { return m; }
- set {
- Ore += value / 60;
- m = value % 60;
- }
- }
- int s;
- public int Secondi {
- get { return s; }
- set {
- Minuti += value / 60;
- s = value % 60;
- }
- }
- public Tempo(int h, int m, int s) {
- Ore = h;
- Minuti = m;
- Secondi = s;
- }
- public Tempo() {
- Ore = 0;
- Minuti = 0;
- Secondi = 0;
- }
- public void Aggiungi(Tempo b) {
- this.Ore += b.Ore;
- this.Minuti += b.Minuti;
- this.Secondi += b.Secondi;
- }
- public void LeggiDaTastiera() {
- Console.Write("Ore: ");
- Ore = int.Parse(Console.ReadLine());
- Console.Write("Minuti: ");
- Minuti = int.Parse(Console.ReadLine());
- Console.Write("Secondi: ");
- Secondi = int.Parse(Console.ReadLine());
- }
- public string FormattaInStringa() {
- return Ore + "h " + Minuti + "m " + Secondi + "s ";
- }
- }
- }
- /*
- === Program.cs ===
- */
- using System;
- namespace es
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.Write("Inserisci n: ");
- int n = int.Parse(Console.ReadLine());
- Console.WriteLine(); // Linea vuota per fare spazio
- Tempo totale = new Tempo();
- for (int i = 0; i < n; i++) {
- Console.WriteLine("Tempo " + (i + 1) + ": ");
- Tempo t = new Tempo();
- t.LeggiDaTastiera();
- totale.Aggiungi(t);
- Console.WriteLine(); // Linea vuota per fare spazio
- }
- Console.WriteLine("Totale: " + totale.FormattaInStringa());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment