Как правильно составить класс Weather? - C#
Формулировка задачи:
Здравствуйте. Нужна ваша помощь помогите добить класс погода.Задание такое:
Создайте класс Weather, который содержит поля, методы get/set (свойства), конструкторы, метод ToString и методы, реализующие следующие задачи:
> Распечатайте, какая погода в указанном городе и по указанной дате
> Распечатайте, какая погода Сегодня (текущая дата)
> Определите среднюю температуру в указанном месяце
Заранее спасибо)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ulesanne_1_Weather
{
enum AtmosphericPhenomena
{
}
class Weather
{
#region Fields and Properties
private int airTemperature;
public int AirTemperature
{
get { return airTemperature; }
set
{
if (value<=90 && value>=90 )
{
airTemperature = value;
}
else
{
airTemperature=Int32.MaxValue;
}
}
}
public string City {get; set;}
public DateTime Date {get; set;}
public AtmosphericPhenomena Atmospheric {get; set;}
//Pressure Humidity Wind
#endregion
#region Constructors
public Weather()
{
Random rnd = new Random();
Date = DateTime.Today;
City = "Kohtla-Jarve";
AirTemperature = rnd.Next(-50, 50);
}
#endregion
#region Methods
public void PrintWeather()
{
Console.WriteLine("Weather in {0} is {1}C°",
City, AirTemperature);
}
#endregion
}
}Решение задачи: «Как правильно составить класс Weather?»
textual
Листинг программы
public class Weather
{
List<Situation> items;
List<string> monthes = new List<string>{ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };
public Weather()
{
items = new List<Situation>();
}
public void Add(string city, double temparature, DateTime date)
{
items.Add(new Situation(date, city, temparature));
}
public void Add(string city, double temparature)
{
items.Add(new Situation(DateTime.Now, city, temparature));
}
public void GetWeather(string city, DateTime date)
{
var item = items.FirstOrDefault(i => i.City == city && i.Date.Date.Equals(date.Date));
Console.WriteLine("Погода для населенного пункта {0} на {1}:", item.City, item.Date.ToShortDateString());
Console.WriteLine("Температура: {0} градусов по Цельсию", item.Temperature);
}
public void GetCurrentWeather(string city)
{
var situation = items.FirstOrDefault(s => s.City == city && s.Date.Date.Equals(DateTime.Now.Date));
Console.WriteLine("Погода для населенного пункта {0} сегодня:", situation.City);
Console.WriteLine("Температура: {0} градусов по Цельсию", situation.Temperature);
}
public void GetAverageTemperature(string monthName)
{
var averageTemperature = items.Where(s => s.Date.Month == monthes.IndexOf(monthName)).Sum(s => s.Temperature);
Console.WriteLine("Средняя температура за {0}: {1}", monthName, averageTemperature);
}
public override string ToString()
{
return items.Aggregate(String.Empty, (current, item) => current + String.Format("Дата:{0}; Город:{1}; Температура:{2}", item.Date.ToShortDateString(), item.City, item.Temperature));
}
}
public class Situation
{
public double Temperature { get; set; }
public string City { get; set; }
public DateTime Date { get; set; }
public Situation (DateTime date, string city, double temperature)
{
Date = date;
City = city;
Temperature = temperature;
}
}