Na stronie: http://www.pimr.poznan.pl/bup/gethd2003.php?pf=2
Znajduje się wykaz danych pogodowych.
Napisz program konsolowy, który pozwala na wczytanie roku i miesiąca i wypisuje średnią temperaturę dla danego miesiąca.
Stwórz klasę pomiar.cs zawierająca pola…
Stwórz klasę managerPogody.cs , która posiada:
- pole url w którym konfigurujemy adres źródłowy strony,
- metodę prywatną void wczytajDaneZMiesiaca(int miesiac, int rok), metoda ta ustawia pole Lista<Pomiar> na aktualne wartości
- metodę publiczną podajSrednia , która wykorzystuje prywatne metody do pobrania danych z internetu i policzenia średniej temperatury
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace P07Pogoda { class ManagerPogody { private string url= "http://www.pimr.poznan.pl/bup/write/data{0}-{1}.csv"; private List<Pomiar> pomiary; public ManagerPogody(int rok, int miesiac) { wczytajDaneZMiesiaca(rok, miesiac); } private void wczytajDaneZMiesiaca(int rok, int miesiac) { string miesiacDwuCyfrowo; if (miesiac < 10) miesiacDwuCyfrowo = "0" + miesiac.ToString(); else miesiacDwuCyfrowo = miesiac.ToString(); string pelnyUrl = string.Format(url, miesiacDwuCyfrowo, rok); WebClient wc = new WebClient(); string dane = wc.DownloadString(pelnyUrl); string[] wiersze = dane.Split('\n'); pomiary = new List<Pomiar>(); for (int i = 2; i < wiersze.Length; i++) { string[] komorki = wiersze[i].Split(';'); if (komorki.Length < 6) continue; Pomiar p = new Pomiar(); try { p.Temperatura = Convert.ToDouble(komorki[5].Replace(".",",")); pomiary.Add(p); } catch (Exception) { continue; } } } public double PodajSreniaTemperature() { //double suma = 0; //for (int i = 0; i < pomiary.Count; i++) // suma += pomiary[i].Temperatura; //return suma / pomiary.Count; return Math.Round(pomiary.Average(x => x.Temperatura),2); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace P07Pogoda { class Program { static void Main(string[] args) { Console.WriteLine("Podaj rok"); int rok = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Podaj miesiac"); int miesiac = Convert.ToInt32(Console.ReadLine()); ManagerPogody mp = new ManagerPogody(rok, miesiac); double temp = mp.PodajSreniaTemperature(); Console.WriteLine(string.Format("Średnia temperatura w roku {0} w miesiacu {1} wynosi {2} C", rok,miesiac,temp)); Console.ReadKey(); } } }