С# Выполнить практические задание
С помощью с# Visual Studio 2022 и Access и вииндоус форм ( C# net.Framework)
1. Разработать класс «Полином», в котором информация о коэффициентах хранится в виде списка. Реализовать для класса методы ввода-вывода, сложения и умножения полиномов, умножения полинома на число, интегрирования и дифференцирования полинома.
2. Описать класс «Предметный указатель». Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Предусмотреть возможность формирования указателя с клавиатуры и из файла, печати предметного указателя, сохранения в файл, вывода номеров страниц для заданного слова, добавления и удаления элемента из указателя.
3. Описать класс «Каталог библиотеки». Каждая запись каталога содержит информацию о книге – название, автор, количество экземпляров, количество экземпляров «на руках». Предусмотреть возможность формирования каталога с клавиатуры и из файла, печати каталога, сохранения в файл, поиска книги по какому-либо признаку (например, автору или названию), добавления книг в библиотеку, удаления книг из нее, операции получения или возврата книги читателем.
4. Описать класс «Расписание занятий». Каждая запись содержит день недели, время, название учебной дисциплины, аудиторию. Предусмотреть возможность формирования расписания с клавиатуры и из файла, печати всего расписания и расписания на конкретный день (печать должна быть осуществлена в хронологическом порядке), добавления и удаления записей, сохранения в файл.
5. Описать класс «Расписание приема пациентов». Каждая запись содержит дату, время, фамилию пациента. Время приема одного пациента должно быть равно одному часу. Предусмотреть возможность формирования расписания с клавиатуры и из файла, печати всего расписания, или расписания в конкретный день, добавления и удаления записей, сохранения в файл. При добавлении записи следует учитывать, что время записи должно быть свободно (не существует уже созданной записи с этим же временем).
Это достаточно серьезные задания. Либо ты сделаешь их самостоятельно, либо к хренам засыпешься на сдаче на первом же вопросе. Я тебе подарю первое - разберись, как там и что работает, и сделай остальные сам по данному образцу:
public class Polinome
{
private List<double> Coefficients;
public Polinome(IEnumerable<double> _Coefficients, bool _DoNotReduce = false)
{
Coefficients = _Coefficients.Reverse().ToList();
if (!_DoNotReduce)
ReducePower();
}
public override string ToString()
{
string Result = string.Empty;
for (int i = Coefficients.Count - 1; i >= 0; i--)
{
if (Coefficients[i] == 0d && i > 0)
continue;
if (i != Coefficients.Count - 1 && Coefficients[i] >= 0d)
Result += "+";
Result += Coefficients[i].ToString();
if (i != 0)
Result += "x";
if (i > 1)
Result += $"^{i}";
}
return Result;
}
public int Power { get => Coefficients.Count - 1; }
private void ReducePower()
{
while (Coefficients.Count > 0 && Coefficients[Coefficients.Count-1]==0d)
Coefficients.RemoveAt(Coefficients.Count-1);
}
public static Polinome operator +(Polinome a, Polinome b)
{
int NewSize = Math.Max(a.Power, b.Power) + 1;
Polinome Result = new Polinome(Enumerable.Range(0, NewSize).Select(x => 0d), true);
for (int i = 0; i < NewSize; i++)
{
if (i <= a.Power)
Result.Coefficients[i] += a.Coefficients[i];
if (i <= b.Power)
Result.Coefficients[i] += b.Coefficients[i];
}
Result.ReducePower();
return Result;
}
public static Polinome operator *(double a, Polinome b)
{
Polinome Result = new Polinome(Enumerable.Range(0, b.Power + 1).Select(i => b.Coefficients[i] * a).Reverse());
Result.ReducePower();
return Result;
}
public static Polinome operator *(Polinome a, Polinome b)
{
int NewSize = (a.Power + 1) * (b.Power + 1);
Polinome Result = new Polinome(Enumerable.Range(0, NewSize).Select(x => 0d), true);
for (int i = 0; i <= a.Power; i++)
for (int j = 0; j <= b.Power; j++)
Result.Coefficients[i * j] += a.Coefficients[i] * b.Coefficients[j];
Result.ReducePower();
return Result;
}
public void Differenciate()
{
for (int i = 0; i < Coefficients.Count; i++)
Coefficients[i] *= i;
Coefficients = Coefficients.Skip(1).ToList();
}
public void Integrate(double _C)
{
Coefficients.Insert(0, _C);
for (int i = 1; i < Coefficients.Count; i++)
Coefficients[i] /= i;
}
}