Student Book (List проблем)

Напишете програма на C#, която поддържа следните данни за студенти:

  • Име;
  • Факултетен номер;
  • Списък от оценки (не повече от 40 оценки).

Програмата трябва да реализира посочените по-долу функционалности:

  1. Добавяне на студент (въвеждат се име, фак. номер и брой оценки на отделни редове и списък с оценките на един ред);
  2. Добавяне на оценки на съществуващ студент (търсене по фак. номер и добавяне на оценки в списъка с оценките);
  3. Отпечатване на списъка със студенти със следната информация за всеки студент: име, факултетен номер, среден успех;
  4. Запис на списъка със студенти във файл (в дефиниран от Вас текстов или двоичен формат);
  5. Прочитане на списъка със студенти от файл в същия формат;
  6. Сортиране на студентите по факултетен номер, използвайки алгоритъма на пряката селекция (selection sort);
  7. Сортиране на студентите по среден успех в низходящ ред, използвайки алгоритъма на прякото вмъкване (insertion sort);
  8. Извеждане на досието на студент, намерен по факултетен номер. Ако списъкът със студенти е сортиран по факултетен номер, да се използва двоично търсене за намиране на студента. Съхранявайте информацията как е сортиран списъка, а не проверявайте динамично дали е сортиран. Досието на студента съдържа името му, факултетен номер, среден успех и списък от оценките му.

Към програмата има и следните допълнителни изисквания:

  1. Организирайте въвеждането чрез меню с избор на номерирани възможности.
  2. Програмата трябва да обработва грешки и невалиден вход от потребителя по подходящ начин, като например дава възможност за повторно въвеждане, когато се въвежда число, ако потребителят е въвел невалиден текст. Не се допуска използването на изключения за обработването на невалиден вход от потребителя.
  3. Преди всяко въвеждане на потребителя трябва да се извежда пояснителен текст какво се очаква да въведе (напр. ако потребителят ще въвежда име на студент, програмата трябва да изпише „Име: “).
  4. Алгоритмичните елементи на задачата като търсене и сортиране трябва да бъдат реализирани от Вас, а не да се използват готови решения или библиотеки.
  5. Ако дадена функционалност се използва на повече от едно място, тя трябва да бъде отделена в собствена функция.

Коментар: създавам клас който съдържа характеристиките на студента(class Student)  след ,което имам друг клас в който инстанцирам лист и правя метод ,в който да добавям студените в листа със съответните му х-ки :List<Student> lst = new List<Student> ... проблема идва ,когато искам да изляза от метода и искам да ползва листа към който са се добавили съответните данни