Работа со структурами - C# (182695)

Узнай цену своей работы

Формулировка задачи:

Есть задание следующего типа:

Описать тип TDate — структура с полями целого типа Day (день), Month (месяц) и Year (год). Протестировать является ли дата правильной. Создать массив структур (не более чем для пяти дат). Вывести на экран те даты, у которых месяца являются зимними, в противном случае вывести сообщение «Нет дат, у которых месяца являются зимними».

Создал структуру TDate для проверки
Листинг программы
  1. namespace Одномерные_массивы_и_структуры
  2. {
  3. struct TDate
  4. {
  5. public int day, mes, god;
  6. public void Show()
  7. {
  8. Console.WriteLine(day + ", " + mes + ", " + god);
  9. }
  10. public bool Wisokosh()
  11. {
  12. return (god % 4 == 0) && !(god % 100 == 0 && god % 400 != 0);
  13. }
  14. public bool Prawilnia()
  15. {
  16. bool rez = true;
  17. if (mes < 0 || mes > 12)
  18. rez = false;
  19. else
  20. {
  21. switch (mes)
  22. {
  23. case 1: { rez = (day >= 1 && day <= 31); break; }
  24. case 2:
  25. {
  26. if (Wisokosh() == true)
  27. {
  28. rez = (day >= 1 && day <= 29); break;
  29. }
  30. else
  31. {
  32. rez = (day >= 1 && day <= 28);
  33. break;
  34. }
  35. }
  36. case 3: { rez = (day >= 1 && day <= 31); break; }
  37. case 4: { rez = (day >= 1 && day <= 30); break; }
  38. case 5: { rez = (day >= 1 && day <= 31); break; }
  39. case 6: { rez = (day >= 1 && day <= 30); break; }
  40. case 7: { rez = (day >= 1 && day <= 31); break; }
  41. case 8: { rez = (day >= 1 && day <= 31); break; }
  42. case 9: { rez = (day >= 1 && day <= 30); break; }
  43. case 10: { rez = (day >= 1 && day <= 31); break; }
  44. case 11: { rez = (day >= 1 && day <= 30); break; }
  45. case 12: { rez = (day >= 1 && day <= 31); break; }
  46. }
  47. }
  48. return rez;
  49.  
  50. }
  51. }
  52. }
И часть кода в основном файле
Листинг программы
  1. TDate data = new TDate();
  2. int i;
  3. data.day = 0;
  4. data.mes = 0;
  5. data.god = 0;
  6. data.Show();
  7. Console.WriteLine("Введите 5 дат");
  8. TDate[] mas = new TDate[5];
  9.  
  10. for (i = 0; i < 5; i++)
  11. {
  12. Console.WriteLine("День");
  13. mas[i].day = Int32.Parse(Console.ReadLine());
  14. Console.WriteLine("Месяц");
  15. mas[i].mes = Int32.Parse(Console.ReadLine());
  16. Console.WriteLine("Год");
  17. mas[i].god = Int32.Parse(Console.ReadLine());
  18. }
  19. for (i = 0; i < 5; i++)
  20. {
  21. mas[i].Show();
  22. }
Но всё не могу понять, как в основном файле выполнить проверку введённых дат на условие из TDate ? Как правильно оформлять if ?
Листинг программы
  1. if (data.Prawilnia())
  2. {
  3. Console.WriteLine("ДА!!!!!!");
  4. }
  5. else
  6. {
  7. Console.WriteLine("ddd");
  8.  
  9. }

Решение задачи: «Работа со структурами»

textual
Листинг программы
  1. TDate data = new TDate();
  2.             int i;
  3.             data.day = 0;
  4.             data.mes = 0;
  5.             data.god = 0;
  6.             data.Show();
  7.             Console.WriteLine("Введите 5 дат");
  8.             TDate[] mas = new TDate[5];
  9.            
  10.            
  11.                 for (i = 0; i < 5; i++)
  12.                 {
  13.                     Console.WriteLine("День");
  14.                     mas[i].day = Int32.Parse(Console.ReadLine());
  15.                     Console.WriteLine("Месяц");
  16.                     mas[i].mes = Int32.Parse(Console.ReadLine());
  17.                     Console.WriteLine("Год");
  18.                     mas[i].god = Int32.Parse(Console.ReadLine());
  19.                 }
  20.  
  21.             for (i = 0; i < 5; i++)
  22.             {
  23.                 mas[i].Show();
  24.                 if (mas[i].Prawilnia())
  25.                 Console.WriteLine("ДА!!!!!!");
  26.                 else
  27.                     Console.WriteLine("нет");
  28.  
  29.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут