Дневник Ученика

Всем Привет написал такую программу для дневника, но почему-то не получаться сделать валидацию имени чтобы нельзя было цифры или буквы с цифрами, а также при выборе оценки программа принимает число больше от 1 до 5. Например, нажимаю 6 он принимает, можете помочь с решением данного задания.

using System;
using System.Collections;
using System.Collections.Generic;

namespace Дом3
{
    class Program
    {
        static void Main(string[] args)
        {
            Menu menu = new Menu();

            Static diary = new Static();

            diary.Name = menu.AskName();

            bool check = false;
            diary.Name = diary.Name.Trim(); //Исключаем пробелы.

            if (diary.Name.Length == 0) //Исключаем пустые строки.
            {
                check = false;
                Console.WriteLine("Ой, ошибка, имя не внесено в базу");
            }
            else
            {
                check = true;
                Console.WriteLine("Имя ученика введено в базу");
            }

            while (true)
            {
                string menuPoint = menu.AskMainMenuPoint();
                switch (menuPoint)
                {
                    case "1":

                        diary.ChooseLesson();

                        break;

                   case "2":

                        diary.ShowMath();
                        diary.ShowRead();
                        diary.ShowEnvir();
                        diary.ShowPhysic();
                        diary.ShowLetter();

                        break;

                    case "3":

                        return;

                    default:

                        menu.ShowInvalidMenuPointText();

                        break;
                }
            }
        }
    }
}
using System;
using System.Collections;
using System.Collections.Generic;

namespace Дом3
{
    public class Menu
    {
        public string AskName() 
        {
            Console.WriteLine("Доброго дня! Введите, пожалуйста, имя ученика");
            return Console.ReadLine();
        }

        public string AskMainMenuPoint() 
        {
            Console.WriteLine("Выберите команду, которая вас интересует: " +
                "1 - добавить оценку в дневник; 2 - вывести статистику; 3 - выход");
            return Console.ReadLine();
        }

        public int Lesson() 
        {
            Console.WriteLine("Выберите пожалуйста, предмет: " +
                "1 - математика; 2 - чтение; 3 - природоведение; 4 - физкультура; 5 - письмо; 6 - выход");
            return int.Parse(Console.ReadLine());
        }

        public int ReadScore() //Запрашиваем оценку.
        {
            Console.WriteLine("Введите, пожалуйста, оценку: 2 - Неудовлетворительно; 3 - Удовлетворительно; 4 - Хорошо; 5 - Отлично");
            return Convert.ToInt32(Console.ReadLine());
        }

        public void ShowInvalidMenuPointText() 
        {
        Console.WriteLine("Вы ввели недопустимое значение");
        }
        
    }
}
using System;
using System.Collections;
using System.Collections.Generic;
namespace Дом3
{
    public class Static
    {
        Menu menu = new Menu();

        private List<int> _score;
        public string Name;
        public List<int> Math;
        public List<int> Read;
        public List<int> Envir;
        public List<int> Physic;
        public List<int> Letter;

        public Static()
        {
            Math = new List<int>();
            Read = new List<int>();
            Envir = new List<int>();
            Physic = new List<int>();
            Letter = new List<int>();
        }

        public void MathStatic (int math)
        {
            Math.Add(math);
        }

        public void ReadStatic(int read)
        {
            Read.Add(read);
        }

        public void EnvirStatic(int envir)
        {
            Envir.Add(envir);
        }

        public void PhysicStatic(int physic)
        {
            Physic.Add(physic);
        }

        public void LetterStatic(int letter)
        {
            Letter.Add(letter);
        }

        public void ChooseLesson()
        {
            int lesson = menu.Lesson();
            if (lesson == 1)
            {
                MathStatic(menu.ReadScore());
            }

            else if (lesson == 2)
            {
                ReadStatic(menu.ReadScore());
            }

            else if (lesson == 3)
            {
                EnvirStatic(menu.ReadScore());
            }

            else if (lesson == 4)
            {
                PhysicStatic(menu.ReadScore());
            }

            else if (lesson == 5)
            {
                LetterStatic(menu.ReadScore());
            }

            else if (lesson == 6)
            {
                return;
            }

            else
            {
                menu.ShowInvalidMenuPointText();
            }
        }

        public void ShowMath()
        {
            double sumTmp = 0.0;

            foreach (var mathElement in Math)
            {
                sumTmp += mathElement;
            }

            Math.Sort();
            Console.WriteLine($"По мамематике минимальной оценкой является {Math[0]}, максимальной оценкой является {Math[Math.Count - 1]}, средней оценкой является {sumTmp / Math.Count}");
        }

        public void ShowRead()
        {
            double sumTmp = 0.0;

            foreach (var readElement in Read)
            {
                sumTmp += readElement;
            }

            Read.Sort();
            Console.WriteLine($"По чтению минимальной оценкой является {Read[0]}, максимальной оценкой является {Read[Read.Count - 1]}, средней оценкой является {sumTmp / Read.Count}");
        }

        public void ShowEnvir()
        {
            double sumTmp = 0.0;

            foreach (var envirElement in Envir)
            {
                sumTmp += envirElement;
            }

            Envir.Sort();
            Console.WriteLine($"По природоведению минимальной оценкой является {Envir[0]}, максимальной оценкой является {Envir[Envir.Count - 1]}, средней оценкой является {sumTmp / Envir.Count}");
        }

        public void ShowPhysic()
        {
            double sumTmp = 0.0;

            foreach (var physicElement in Physic)
            {
                sumTmp += physicElement;
            }

            Physic.Sort();
            Console.WriteLine($"По физической культуре минимальной оценкой является {Physic[0]}, максимальной оценкой является {Physic[Physic.Count - 1]}, средней оценкой является {sumTmp / Physic.Count}");
        }

        public void ShowLetter()
        {
            double sumTmp = 0.0;

            foreach (var letterElement in Letter)
            {
                sumTmp += letterElement;
            }

            Letter.Sort();
            Console.WriteLine($"По письму минимальной оценкой является {Letter[0]}, максимальной оценкой является {Letter[Letter.Count - 1]}, средней оценкой является {sumTmp / Letter.Count}");
        }

        public void ShowStatic()
        { 
            double sumTmp = 0.0;

            foreach (var scoreElement in _score)
            {
                sumTmp += scoreElement;
            }

            _score.Sort();
            Console.WriteLine($"Минимальной оценкой является {_score[0]}, максимальной оценкой является {_score[_score.Count - 1]}, средней оценкой является {sumTmp / _score.Count}");

        }
    }
}

Ответы (1 шт):

Автор решения: OXYGEN

Проверка на на цифры

//Допускаются только буквы , должна быть минимум одна бувка

Regex nonDigit = new Regex("^[a-zA-Z]{1,}$");

        string a1 = "asdASDSAFASD";
        string a2 = "asdASD2SAFASD3";


        bool z1 = nonDigit.IsMatch(a1);// прошла проверку 
        bool z2 = nonDigit.IsMatch(a2);// не прошла проверку

по поводу проверки на оценку получаете значение оценки

 int result =  Console.ReadLine();
            if (result > 5)
            {
                Console.WriteLine("result must be less then 6");
                //тут вызываете метод вводе для оценки есчо раз
            }
→ Ссылка