Проверьте с соответствием задания - C#
Формулировка задачи:
Вот есть программа, вроде бы работает
Хочу что бы проверили по требованию с заданием. Возможно что то не учтено, боюсь пока нести преподу. С шарпом пока еще не на "ты" .
using Kontrolnaya;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kontrolnaya
{
class CBookCard
{
private static int MAXRAITING = 100;
private string autor;
private string tittle;
private string publish;
private int year;
private int pages;
private string isbn;
private int raiting;
private string comment;
public CBookCard(string autor, string tittle, string publish, int year, int pages, string isbn, int raiting, string comment)
{
Autor = autor;
Tittle = tittle;
Publish = publish;
Year = year;
Pages = pages;
ISBN = isbn;
Raiting = raiting < 0 ? 0 : (raiting > MAXRAITING ? MAXRAITING : raiting);
Comment = comment;
}
public string Autor
{
get { return autor; }
set { autor = value; }
}
public string Tittle
{
get { return tittle; }
set { tittle = value; }
}
public string Publish
{
get { return publish; }
set { publish = value; }
}
public int Year
{
get { return year; }
set { year = value; }
}
public int Pages
{
get { return pages; }
set { pages = value; }
}
public string ISBN
{
get { return isbn; }
set { isbn = value; }
}
public int Raiting
{
get { return raiting; }
set { raiting = value < 0 ? 0 : (value > MAXRAITING ? MAXRAITING : value); }
}
public string Comment
{
get { return comment; }
set { comment = value; }
}
public override string ToString()
{
return Autor + ", " + Tittle + ": " + Publish + ", " + Year + " г., " + Pages + ", ISBN: " + ISBN + ", Комментарий:" + Comment + " ." + "\n";
}
}
}
class Program
{
static void Main(string[] args)
{
var bookArr = new CBookCard[] {
new CBookCard("Джон Скит", "C# для профессионалов", "Вильямс", 2017, 608, "978-5-8459-1909-0", 78, ""),
new CBookCard("Роберт Лафоре", "Структуры данных и алгоритмы в Java", "Питер", 2016, 704, "978-5-496-00740-5", 42, ""),
new CBookCard("Никита Культин", "Microsoft Visual C# в задачах и примерах", "БХВ-Петербург", 2015, 320, "978-5-9775-3323-2", 87, ""),
new CBookCard("Павел Агуров", "C#. Сборник рецептов", "БХВ-Петербург", 2007, 432, "5-94157-969-1", 74, ""),
new CBookCard("Джон Шарп", "Microsoft Visual C#. Подробное руководство", "Питер", 2017, 848, "978-5-496-02372-6", 95, "")
};
Console.WriteLine("Массив книг до сортировки: ");
foreach (var item in bookArr)
{
Console.WriteLine(item.ToString());
}
bookArr = bookArr.OrderBy(b => b.Pages).ToArray();
Console.WriteLine("\nМассив книг после сортировки: ");
foreach (var item in bookArr)
{
Console.WriteLine(item.ToString());
}
Console.ReadKey(true);
}
}
Создать класс библиографических описаний книг CBookCard. Класс должен содержать поля согласно таблицам 1 – 3, в соответствии с номером варианта.
1. Все поля должны быть закрытыми. Для всех их должны быть созданы методы доступа (или свойства).
2. В конструкторе за исключением рейтинга и комментария должна осуществляться инициализация всех полей.
3. Для всех вариантов необходимо создать метод, выводящий описание книги в строку (переопределение метода ToString()), в которой будут присутствовать все значения полей класса, кроме поля – «комментария». В данном методе значения полей ISBN, УДК, ББК выводятся через пробел без использования знаков препинания. Значения атрибутов рейтинг и тираж должны выводиться в следующей форме: Тираж: <значение тиража>. Рейтинг: <значение рейтинга>.
4. Создать два объекта библиографических описаний книг. Вызвать для них метод, осуществляющий вывод строки библиографического описания. Можно использовать как реально существующие книги, так и чисто гипотетические.
5. Создать массив (размерностью не более 5) объектов библиографических описаний книг. Создать статический метод для упорядочивания (по числу страниц) данного массива. Вывести на экран значения массива до сортировки и после сортировки.
Автор +
Заглавие +
Издательство +
Год издания +
Число страниц +
ISBN +
УДК
ББК
Тираж
Рейтинг. Изменяется в пределах от 0 до указанного в таблице значения (в методе доступа, устанавливающем значение данного атрибута, обеспечить проверку удовлетворения введенного значения данному требованию) 100
Комментарий +
Решение задачи: «Проверьте с соответствием задания»
textual
Листинг программы
namespace Kontrolnaya
{
class CBookCard
{
public CBookCard(string autor, string title, string publish, int year, int pages, string isbn)
{
Autor = autor;
Title = title;
Publish = publish;
Year = year;
Pages = pages;
ISBN = isbn;
}
private string _autor;
private string _title;
private string _publish;
private int _year;
private int _pages;
private string _isbn;
private int _raiting;
private string _comment;
public string Autor
{
get { return _autor; }
set { _autor = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Publish
{
get { return _publish; }
set { _publish = value; }
}
public int Year
{
get { return _year; }
set { _year = value; }
}
public int Pages
{
get { return _pages; }
set { _pages = value; }
}
public string ISBN
{
get { return _isbn; }
set { _isbn = value; }
}
public int Raiting
{
get { return _raiting; }
set { _raiting = value >= 0 && value <= 100 ? value : 0; } //если рейтинг не в нужном диапазоне, то он равен 0
}
public string Comment
{
get { return _comment; }
set { _comment = value; }
}
public override string ToString()
{
return $"{Autor}, {Title}: {Publish}, {Year} г.,{Pages} стр., Рейтинг:{Raiting} {ISBN}";
}
}
class Program
{
static void Main(string[] args)
{
var firstBook = new CBookCard("Джон Скит", "C# для профессионалов", "Вильямс", 2017, 608, "978-5-8459-1909-0");
var secondBook = new CBookCard("Роберт Лафоре", "Структуры данных и алгоритмы в Java", "Питер", 2016, 704, "978-5-496-00740-5");
Console.WriteLine(firstBook);
Console.WriteLine(secondBook);
var bookArr = new[]
{
new CBookCard("Джон Скит", "C# для профессионалов", "Вильямс", 2017, 608, "978-5-8459-1909-0")
{
Pages = 45,
Comment = "Amazing"
},
new CBookCard("Роберт Лафоре", "Структуры данных и алгоритмы в Java", "Питер", 2016, 704, "978-5-496-00740-5")
{
Pages = 98,
Raiting = 55
},
new CBookCard("Никита Культин", "Microsoft Visual C# в задачах и примерах", "БХВ-Петербург", 2015, 320, "978-5-9775-3323-2")
{
Pages = 355,
Raiting = -42
},
new CBookCard("Павел Агуров", "C#. Сборник рецептов", "БХВ-Петербург", 2007, 432, "5-94157-969-1")
{
Pages = 174
},
new CBookCard("Джон Шарп", "Microsoft Visual C#. Подробное руководство", "Питер", 2017, 848, "978-5-496-02372-6")
{
Pages = 432
}
};
Console.WriteLine("Массив книг до сортировки: ");
foreach (var item in bookArr)
{
Console.WriteLine(item);
}
bookArr = Sort(bookArr);
Console.WriteLine("Массив книг после сортировки: ");
foreach (var item in bookArr)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
static CBookCard[] Sort(CBookCard[] bookArr)
{
return bookArr.OrderByDescending(b => b.Pages).ToArray();
}
}
}