Sitisom

Прога

Feb 12th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.39 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Лабы_по_проге
  8. {
  9.     enum Frequency
  10.     {
  11.         Weekly,
  12.         Monthly,
  13.         Yearly
  14.     }
  15.  
  16.     class Article
  17.     {
  18.         public Person Person { get; set; }
  19.         public string ArticleName { get; set; }
  20.         public double Rating { get; set; }
  21.  
  22.         public Article()
  23.         {
  24.             this.Person = new Person();
  25.             this.ArticleName = "Beep";
  26.             this.Rating = 10d;
  27.         }
  28.  
  29.         public Article(Person person, string articleName, double rating)
  30.         {
  31.             this.Person = person;
  32.             this.ArticleName = articleName;
  33.             this.Rating = rating;
  34.         }
  35.  
  36.         public override string ToString()
  37.         {
  38.             return "Made by: " + Person + "\n" +
  39.                    "Article Name: " + ArticleName + "\n" +
  40.                    "Rating: " + Rating;
  41.         }
  42.     }
  43.  
  44.     class Magazine
  45.     {
  46.         private string magazineName;
  47.         private Frequency frequency;
  48.         private DateTime releaseDate;
  49.         private int quantity;
  50.         private Article[] setOfArticles;
  51.  
  52.         public string MagazineName {
  53.             get { return magazineName; }
  54.             set { magazineName = value; }
  55.         }
  56.         public Frequency Frequency
  57.         {
  58.             get { return frequency; }
  59.             set { frequency = value; }
  60.         }
  61.         public DateTime ReleaseDate
  62.         {
  63.             get { return releaseDate; }
  64.             set { releaseDate = value; }
  65.         }
  66.         public int Quantity
  67.         {
  68.             get { return quantity; }
  69.             set { quantity = value; }
  70.         }
  71.         public Article[] SetOfArticles
  72.         {
  73.             get { return setOfArticles; }
  74.             set { setOfArticles = value; }
  75.         }
  76.  
  77.         public double AverageRating
  78.         {
  79.             get
  80.             {
  81.                 double rating = 0;
  82.                 for(int i = 0; i < setOfArticles.Length; i++)
  83.                 {
  84.                     rating += setOfArticles[i].Rating;
  85.                 }
  86.                 return rating / setOfArticles.Length;
  87.             }
  88.         }
  89.  
  90.         public bool this [Frequency frequency]
  91.         {
  92.             get { return this.frequency == frequency; }
  93.         }
  94.  
  95.         public Magazine()
  96.         {
  97.             this.magazineName = "New magazin";
  98.             this.frequency = Frequency.Monthly;
  99.             this.releaseDate = new DateTime(01, 01, 1970);
  100.             this.quantity = 1000;
  101.             this.setOfArticles = new Article[] { };
  102.         }
  103.         public Magazine(string name, Frequency frequency, DateTime date,
  104.             int quantity, Article[] setOfArticles)
  105.         {
  106.             this.magazineName = name;
  107.             this.frequency = frequency;
  108.             this.releaseDate = date;
  109.             this.quantity = quantity;
  110.             this.setOfArticles = setOfArticles;
  111.         }
  112.  
  113.         public void AddArticles(params Article[] articles)
  114.         {
  115.             foreach(var i in articles)
  116.             {
  117.                 setOfArticles.Append(i);
  118.             }
  119.         }
  120.  
  121.         public override string ToString()
  122.         {
  123.             string articles = "";
  124.             foreach(var article in setOfArticles)
  125.             {
  126.                 articles += article.ArticleName + ", ";
  127.             }
  128.             return "Magazin name: " + magazineName + "\n"+
  129.                    "Frequency: " + frequency + "\n" +
  130.                    "Release date: " + releaseDate + "\n" +
  131.                    "Quantity: " + quantity + "\n"+
  132.                    "Articles: " + articles;
  133.         }
  134.  
  135.         public virtual string ToShortSrting()
  136.         {
  137.             return "Magazin name: " + magazineName + "\n" +
  138.                    "Frequency: " + frequency + "\n" +
  139.                    "Release date: " + releaseDate + "\n" +
  140.                    "Quantity: " + quantity + "\n" +
  141.                    "Average rating: " + AverageRating;
  142.         }
  143.     }
  144.  
  145.     class Person
  146.     {
  147.         private string firstName;
  148.         private string lastName;
  149.         private DateTime birthDate;
  150.  
  151.         public string FirstName {
  152.             get
  153.             {
  154.                 return firstName;
  155.             }
  156.             set
  157.             {
  158.                 firstName = value;
  159.             }
  160.         }
  161.         public string LastName
  162.         {
  163.             get
  164.             {
  165.                 return lastName;
  166.             }
  167.             set
  168.             {
  169.                 lastName = value;
  170.             }
  171.         }
  172.         public DateTime BirthDate
  173.         {
  174.             get
  175.             {
  176.                 return birthDate;
  177.             }
  178.             set
  179.             {
  180.                 birthDate = value;
  181.             }
  182.         }
  183.  
  184.         public int GetBirthYear
  185.         {
  186.             get
  187.             {
  188.                 return birthDate.Year;
  189.             }
  190.             set
  191.             {
  192.                 birthDate = new DateTime(birthDate.Day, birthDate.Month, value);
  193.             }
  194.         }
  195.  
  196.         public Person()
  197.         {
  198.             this.firstName = "Ivan";
  199.             this.lastName = "Ivanov";
  200.             this.birthDate = new DateTime(01,01,1970);
  201.         }
  202.  
  203.         public Person(string firstName, string lastName, DateTime birthDate)
  204.         {
  205.             this.firstName = firstName;
  206.             this.lastName = lastName;
  207.             this.birthDate = birthDate;
  208.         }
  209.  
  210.         public override string ToString()
  211.         {
  212.             return "First Name: " + firstName + "\n" +
  213.                    "Second Name: " + lastName + "\n" +
  214.                    "Birth Date: " + birthDate;
  215.         }
  216.         public virtual string ToShortString()
  217.         {
  218.             return "First Name: " + firstName + "\n" +
  219.                    "Second Name: " + lastName;
  220.         }
  221.     }
  222.     class Program
  223.     {
  224.         static void Main(string[] args)
  225.         {
  226.             Magazine magazine = new Magazine();
  227.  
  228.             Console.WriteLine(magazine.ToShortSrting());
  229.  
  230.             Console.WriteLine(magazine[Frequency.Monthly]);
  231.  
  232.             magazine.MagazineName = "New";
  233.             magazine.Frequency = Frequency.Yearly;
  234.             magazine.ReleaseDate = new DateTime(02, 01, 2000);
  235.             magazine.Quantity = 10;
  236.             magazine.SetOfArticles = new Article[] { new Article() };
  237.         }
  238.     }
  239. }
Add Comment
Please, Sign In to add comment