ITAsimo456

Esercizio Tempo

Nov 11th, 2020 (edited)
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. /*
  2. CONSEGNA ESERCIZIO TEMPO:
  3.  
  4.  
  5. Scrivi una classe Tempo (in un file separato) che misura un intervallo di tempo.
  6.  
  7. Tempo contiene tre numeri interi ore, minuti e secondi.
  8. Ognuno è esposto tramite le proprietà Ore, Minuti, Secondi,
  9. che permettono di ottenere i valori degli attributi corrispondenti.
  10.  
  11. Ore permette di impostare ore a qualsiasi valore.
  12. Minuti e Secondi permettono di impostare i loro valori da 0 a 60:
  13. Se i nuovi valori invece sono maggiori di 60, avviene il "riporto", come quello della somma:
  14. ad esempio, se faccio tempo.Secondi = 75,
  15. 75 secondi sono 1 minuto e 15 secondi, perciò viene aggiunto 1 a Minuti e secondi viene impostato a 15.
  16.  
  17. analogamente per i minuti, se faccio tempo.Minuti = 125,
  18. 125 minuti sono 2 ore e 5 minuti, quindi viene aggiunto 2 a Ore e Minuti viene impostato a 5.
  19.  
  20. analogamente per i secondi, se faccio tempo.Secondi = 65,
  21. 65 secondi sono 1 minuto e 5 secondi.
  22. (posso anche fare tempo.Secondi = 3600 per indicare un'ora)
  23.  
  24. Ha un costruttore di default che inizializza Ore, Minuti, Secondi a 0,
  25. e un costruttore standard che inizializza Ore, Minuti, Secondi a valori passati per parametro.
  26.  
  27.  
  28. La classe ha anche un metodo Aggiungi, che permette di aggiungere un Tempo a quello su cui viene invocato.
  29. Ad esempio:
  30. A (2h 15m 20s)
  31. B (3h 45m 5s)
  32.  
  33. Dopo A.Aggiungi(B)
  34.  
  35. A (6h 0m 25s)
  36. B (3h 45m 5s)
  37.  
  38.  
  39. Ha anche un metodo LeggiDaTastiera(), che imposta il Tempo su cui viene invocato a valori letti da tastiera, ad esempio:
  40. Ore: 1
  41. Minuti: 50
  42. Secondi: 11
  43.  
  44. E un metodo FormattaInStringa(), che restituisce una stringa che rappresenta il Tempo su cui viene invocato nel formato h m s, ad esempio:
  45. 1h 50m 11s
  46.  
  47.  
  48.  
  49. Infine, scrivere la Main in modo che legga da tastiera un numero intero n, e n Tempi.
  50. La Main poi stampa il totale dei tempi inseriti.
  51.  
  52. Esempio di output:
  53. N: 3
  54.  
  55. Tempo 1:
  56. Ore: 5
  57. Minuti: 30
  58. Secondi: 5
  59.  
  60. Tempo 2:
  61. Ore: 24
  62. Minuti: 55
  63. Secondi: 12
  64.  
  65. Tempo 3:
  66. Ore: 1
  67. Minuti: 65
  68. Secondi: 3650
  69.  
  70.  
  71. Totale: 33h 31m 7s
  72. */
  73.  
  74.  
  75.  
  76.  
  77. /*
  78. === Tempo.cs ===
  79. */
  80.  
  81. using System;
  82.  
  83. namespace es {
  84. class Tempo {
  85. int h;
  86. public int Ore {
  87. get { return h; }
  88. set {
  89. h = value;
  90. }
  91. }
  92.  
  93. int m;
  94. public int Minuti {
  95. get { return m; }
  96. set {
  97. Ore += value / 60;
  98. m = value % 60;
  99. }
  100. }
  101.  
  102.  
  103. int s;
  104. public int Secondi {
  105. get { return s; }
  106. set {
  107. Minuti += value / 60;
  108. s = value % 60;
  109. }
  110. }
  111.  
  112. public Tempo(int h, int m, int s) {
  113. Ore = h;
  114. Minuti = m;
  115. Secondi = s;
  116. }
  117.  
  118. public Tempo() {
  119. Ore = 0;
  120. Minuti = 0;
  121. Secondi = 0;
  122. }
  123.  
  124. public void Aggiungi(Tempo b) {
  125. this.Ore += b.Ore;
  126. this.Minuti += b.Minuti;
  127. this.Secondi += b.Secondi;
  128. }
  129.  
  130. public void LeggiDaTastiera() {
  131. Console.Write("Ore: ");
  132. Ore = int.Parse(Console.ReadLine());
  133.  
  134. Console.Write("Minuti: ");
  135. Minuti = int.Parse(Console.ReadLine());
  136.  
  137. Console.Write("Secondi: ");
  138. Secondi = int.Parse(Console.ReadLine());
  139. }
  140.  
  141.  
  142. public string FormattaInStringa() {
  143. return Ore + "h " + Minuti + "m " + Secondi + "s ";
  144. }
  145. }
  146. }
  147.  
  148.  
  149.  
  150. /*
  151. === Program.cs ===
  152. */
  153. using System;
  154.  
  155. namespace es
  156. {
  157. class Program
  158. {
  159. static void Main(string[] args)
  160. {
  161. Console.Write("Inserisci n: ");
  162. int n = int.Parse(Console.ReadLine());
  163. Console.WriteLine(); // Linea vuota per fare spazio
  164.  
  165. Tempo totale = new Tempo();
  166.  
  167. for (int i = 0; i < n; i++) {
  168. Console.WriteLine("Tempo " + (i + 1) + ": ");
  169. Tempo t = new Tempo();
  170. t.LeggiDaTastiera();
  171.  
  172. totale.Aggiungi(t);
  173. Console.WriteLine(); // Linea vuota per fare spazio
  174. }
  175.  
  176.  
  177. Console.WriteLine("Totale: " + totale.FormattaInStringa());
  178. }
  179. }
  180. }
  181.  
Advertisement
Add Comment
Please, Sign In to add comment