Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- using System.Linq;
- namespace Лабы_по_проге
- {
- //Класс перечисления
- enum Frequency
- {
- Weekly,
- Monthly,
- Yearly
- }
- class Article
- {
- //Самостоятельные свойства
- public Person Person { get; set; }
- public string ArticleName { get; set; }
- public double Rating { get; set; }
- //Конструкторы класса
- public Article(Person person, string articleName, double rating)
- {
- this.Person = person;
- this.ArticleName = articleName;
- this.Rating = rating;
- }
- public Article() : this(new Person(), "Bbeppep", 10d) { }
- public override string ToString()
- {
- return "Made by: " + Person + "\n" +
- "Article Name: " + ArticleName + "\n" +
- "Rating: " + Rating;
- }
- }
- //Класс журнал
- class Magazine
- {
- //Поля класса
- private string magazineName;
- private Frequency frequency;
- private DateTime releaseDate;
- private int quantity;
- private Article[] setOfArticles;
- //Свойства класса
- public string MagazineName {
- get { return magazineName; }
- set { magazineName = value; }
- }
- public Frequency Frequency
- {
- get { return frequency; }
- set { frequency = value; }
- }
- public DateTime ReleaseDate
- {
- get { return releaseDate; }
- set { releaseDate = value; }
- }
- public int Quantity
- {
- get { return quantity; }
- set { quantity = value; }
- }
- public Article[] SetOfArticles
- {
- get { return setOfArticles; }
- set { setOfArticles = value; }
- }
- //Среднее значение рейтинга
- public double AverageRating
- {
- get
- {
- double rating = 0;
- for(int i = 0; i < setOfArticles.Length; i++)
- {
- rating += setOfArticles[i].Rating;
- }
- return rating / setOfArticles.Length;
- }
- }
- //Индексатор
- public bool this [Frequency frequency]
- {
- get { return this.frequency == frequency; }
- }
- //Конструкторы класса
- public Magazine(string name, Frequency frequency, DateTime date,
- int quantity, Article[] setOfArticles)
- {
- this.magazineName = name;
- this.frequency = frequency;
- this.releaseDate = date;
- this.quantity = quantity;
- this.setOfArticles = setOfArticles;
- }
- public Magazine() : this("new", Frequency.Monthly, new DateTime(1970, 1, 1), 10, new Article[] { }) { }
- //Добавление статей
- public void AddArticles(params Article[] articles)
- {
- foreach(var i in articles)
- {
- setOfArticles.Append(i);
- }
- }
- public override string ToString()
- {
- string articles = "";
- foreach(var article in setOfArticles)
- {
- articles += article.ArticleName + ", ";
- }
- return "Magazin name: " + magazineName + "\n"+
- "Frequency: " + frequency + "\n" +
- "Release date: " + releaseDate + "\n" +
- "Quantity: " + quantity + "\n"+
- "Articles: " + articles;
- }
- public virtual string ToShortString()
- {
- return "Magazin name: " + magazineName + "\n" +
- "Frequency: " + frequency + "\n" +
- "Release date: " + releaseDate + "\n" +
- "Quantity: " + quantity + "\n" +
- "Average rating: " + AverageRating;
- }
- }
- class Person
- {
- private string firstName;
- private string lastName;
- private DateTime birthDate;
- public string FirstName {
- get { return firstName; }
- set { firstName = value; }
- }
- public string LastName
- {
- get { return lastName; }
- set { lastName = value; }
- }
- public DateTime BirthDate
- {
- get { return birthDate; }
- set { birthDate = value; }
- }
- public int GetBirthYear
- {
- get { return birthDate.Year; }
- set { birthDate = new DateTime(value, birthDate.Day, birthDate.Month); }
- }
- public Person() : this("Ivan", "Ivanov", new DateTime(1970, 1, 1)) { }
- public Person(string firstName, string lastName, DateTime birthDate)
- {
- this.firstName = firstName;
- this.lastName = lastName;
- this.birthDate = birthDate;
- }
- public override string ToString()
- {
- return "First Name: " + firstName + "\n" +
- "Second Name: " + lastName + "\n" +
- "Birth Date: " + birthDate;
- }
- public virtual string ToShortString()
- {
- return "First Name: " + firstName + "\n" +
- "Second Name: " + lastName;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Magazine magazine = new Magazine();
- magazine.MagazineName = "New";
- magazine.Frequency = Frequency.Yearly;
- magazine.ReleaseDate = new DateTime(2000, 2, 1);
- magazine.Quantity = 10;
- magazine.SetOfArticles = new Article[] { new Article(), new Article() };
- Console.WriteLine(magazine.ToShortString());
- magazine.AddArticles(new Article[]
- {
- new Article(new Person("Adel", "AA", new DateTime(2000, 1, 1)),"Hello", 1),
- new Article()
- });
- Console.WriteLine("__________________");
- Console.WriteLine(magazine.ToString());
- Console.WriteLine("__________________");
- Console.WriteLine(magazine[Frequency.Monthly]);
- Console.WriteLine("__________________");
- //Тестирование массивов Article
- var linearArray = new Article[1000000];
- var rectArray = new Article[1000, 1000];
- var jaggedArray = new Article[1000][];
- for (int i = 0; i < jaggedArray.Length; i++)
- jaggedArray[i] = new Article[1000];
- //test1
- var sw = Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- linearArray[i] = null;
- sw.Stop();
- Console.WriteLine(sw.Elapsed);
- //test2
- sw = Stopwatch.StartNew();
- for (int i = 0; i < 1000; i++)
- for (int j = 0; j < 1000; j++)
- rectArray[i, j] = null;
- sw.Stop();
- Console.WriteLine(sw.Elapsed);
- //test3
- sw = Stopwatch.StartNew();
- for (int i = 0; i < 1000; i++)
- for (int j = 0; j < 1000; j++)
- jaggedArray[i][j] = null;
- sw.Stop();
- Console.WriteLine(sw.Elapsed);
- }
- }
- }
Add Comment
Please, Sign In to add comment