Создать абстрактный класс "Программное обеспечение" с методами - C#

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

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

ПОМОГИТЕ ПОЖАЛУЙСТА ИСПРАВИТЬ ОШИБКИ!!!!!! Задание: 1) Создать абстрактный класс Программное_обеспечение с методами, позволяющими вывести на экран информацию о программном обеспечении, а также определить соответствие возможности использования (на момент текущей даты). 2) Создать производные классы: Свободное (название, производитель), Условно-бесплатное (название, производитель, дата установки, срок бесплатного использования), Коммерческое (название, производитель, цена, дата установки, срок использования) со своими методами вывода информации на экран, и определения возможности использования на текущую дату. 3) Создать базу (массив) из n видов программного обеспечения, вывести полную информацию из базы на экран, а также организовать поиск программного обеспечения, которое допустимо использовать на текущую дату. Исходник:

Решение задачи: «Создать абстрактный класс "Программное обеспечение" с методами»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. //1) Создать абстрактный класс Программное_обеспечение с методами, позволяющими вывести на экран
  7. //информацию о программном обеспечении, а также определить соответствие возможности использования (на момент текущей даты).
  8. //2) Создать производные классы: Свободное (название, производитель), Условно-бесплатное (название, производитель, дата установки, срок бесплатного использования),
  9. //(название, производитель, цена, дата установки, срок использования) со своими методами вывода информации на экран, и определения возможности использования на текущую дату.
  10. //3) Создать базу (массив) из n видов программного обеспечения, вывести полную информацию из базы на экран, а также организовать поиск программного обеспечения,
  11. //которое допустимо использовать на текущую дату.
  12.  
  13. class Program
  14. {
  15.    static void Main(string[] args)
  16.     {
  17.         PO[] soft = new PO[]{new Free ("word", "tba"),
  18.                             new Shareware("excel", "microsoft", "12.03.1989", 50, 100),
  19.                             new Shareware("notepad", "net", "05.05.1990", 30, 20),
  20.                             new Commercial("NFS most wonted", "EArts", "27.09.2008", 50, 200, 3650),
  21.                             new Free("paint", "microsoft")};
  22.  
  23.         Console.WriteLine("~~~~ Весь список ПО:");
  24.         foreach (PO p in soft)
  25.             p.Info();
  26.  
  27.         Console.WriteLine("~~~~ Список ПО, которое можно использовать на сегодняшний день: ");
  28.         foreach (PO p in soft)
  29.             if (p.ItIsAWorks())Console.WriteLine(p.ProgramName);
  30.  
  31.         Console.ReadLine();
  32.     }
  33. }
  34.  
  35. abstract class PO
  36. {
  37.     protected string name;
  38.     protected string company;
  39.     protected DateTime dateOfInstall;
  40.     protected byte demo_preiod;
  41.     protected int cost;
  42.  
  43.     public PO(string name, string company, string date, byte demo_period, int cost)
  44.     {
  45.         this.name = name;
  46.         this.company = company;
  47.         this.dateOfInstall = DateTime.Parse(date);
  48.         this.demo_preiod = demo_period;
  49.         this.cost = cost;
  50.     }
  51.     public virtual void Info()
  52.     {
  53.         Console.WriteLine("\nИмя продукта: " + name + " Производитель: "
  54.                              + company + " дата установки ПО: " + dateOfInstall
  55.                              + "Период бесплатного использования: " + demo_preiod
  56.                              + " стоимость продукта: " + cost+"\n");
  57.     }
  58.     public virtual bool ItIsAWorks()
  59.     {
  60.         if (dateOfInstall.AddDays(demo_preiod) >= DateTime.Now) return true;
  61.         return false;
  62.     }
  63.     public string ProgramName
  64.     {
  65.         get { return name; }
  66.     }
  67. }
  68. class Free : PO
  69. {
  70.     public Free(string name, string company): base(name, company, "01.01.2000", 0, 0)
  71.     { }
  72.  
  73.     public override void Info()
  74.     {
  75.         Console.WriteLine("Имя продукта: " + name + "\nПроизводитель: "
  76.                              + company+"\n");
  77.     }
  78.     public override bool ItIsAWorks()
  79.     {
  80.         return true;
  81.     }
  82. }
  83. class Shareware : PO
  84. {
  85.     public Shareware(string name, string company, string date, byte demo_period, int cost)
  86.         : base(name, company, date, demo_period, cost)
  87.     { }
  88.  
  89.     public override void Info()
  90.     {
  91.         Console.WriteLine("Имя продукта: " + name + "\nПроизводитель: "
  92.                              + company + "\nДата установки ПО: " + dateOfInstall.ToShortDateString()
  93.                              + "\nПериод бесплатного использования: " + demo_preiod
  94.                              + "\nCтоимость продукта: "+cost+"euro\n");
  95.     }
  96.     public override bool ItIsAWorks()
  97.     {
  98.         if (dateOfInstall.AddDays(demo_preiod) >= DateTime.Now) return true;
  99.         return false;
  100.     }
  101. }
  102. class Commercial : PO
  103. {
  104.     int period;
  105.     public Commercial(string name, string company, string date, byte demo_period, int cost, int period)
  106.         : base(name, company, date, 0, cost)
  107.     { this.period = period; }
  108.  
  109.     public override void Info()
  110.     {
  111.         Console.WriteLine("Имя продукта: " + name + "\nПроизводитель: "
  112.                              + company + "\nДата установки ПО: " + dateOfInstall.ToShortDateString()
  113.                              + "\nСтоимость продукта: " + cost + "euro \nПериод использования: " + period + "\n");
  114.     }
  115.     public override bool ItIsAWorks()
  116.     {
  117.         if (dateOfInstall.AddDays(period) >= DateTime.Now) return true;
  118.         return false;
  119.     }
  120. }

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


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

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

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

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

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

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