Beispiel #1
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(91);
     book.AddGrade(89.5f);
     book.AddGrade(75);
     book.AddGrade(20);
 }
 private static void SaveGrades(IGradeTracker book)
 {
     using (StreamWriter outputFile = File.CreateText("grades.txt"))
     {
         book.WriteGrades(outputFile);
     }
 }
 private static void SaveGrades(IGradeTracker book)
 {
     using (StreamWriter outputFile = File.CreateText("grades.txt"))
     {
         // since WriteGrades expects a TextWriter, you can pass in Console.Out (TextWriter)
         // or a StreamWriter instance like outputFile, since its compatible with TextWriter
         book.WriteGrades(outputFile);
     }
 }
Beispiel #4
0
        private static void WriteResults(IGradeTracker book)
        {
            var stats = book.ComputeStatistics();

            WriteResult("Average", stats.AverageGrade);
            WriteResult("Highest", stats.HighestGrade);
            WriteResult("Lowest", stats.LowestGrade);
            WriteResult(stats.Description, stats.LetterGrade);
        }
 private static void AddEventListeners(IGradeTracker book)
 {
     book.NameChanged += new NameChangedDelegate(OnNameChangedReportChange);
     book.NameChanged += new NameChangedDelegate(OnNameChangedDrawStars);
     // equivalent to the above (shorthand)
     book.NameChanged += OnNameChangedReportChange;
     book.NameChanged += OnNameChangedDrawStars;
     // can also remove
     book.NameChanged -= OnNameChangedReportChange;
     // Below is valid for Delegates but invalid for Events
     //book.NameChanged = OnNameChanged2;
 }
 private static void GetBookName(IGradeTracker book)
 {
     try
     {
         Console.WriteLine("Enter a name");
         book.Name = Console.ReadLine();
     }
     catch (ArgumentException ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
        private static void WriteResults(IGradeTracker book)
        {
            GradeStatistics stats = book.ComputeStatistics();

            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }

            WriteResult("Average", stats.AverageGrade);
            WriteResult("Highest", stats.HighestGrade);
            WriteResult("Lowest", stats.LowestGrade);
            WriteResult(stats.Description, stats.LetterGrade);
        }
Beispiel #8
0
 private static void GetBookName(IGradeTracker book)
 {
     try
     {
         Console.WriteLine("Please enter a name: ");
         book.Name = Console.ReadLine();
     }
     catch (ArgumentException ex)
     {
         Console.WriteLine(ex.Message);
     }
     catch (NullReferenceException)
     {
         Console.WriteLine("Something went wrong!");
     }
 }
Beispiel #9
0
 private static void GetBookName(IGradeTracker book)
 {
     try
     {
         Console.WriteLine("Enter a name:");
         book.Name = Console.ReadLine();
     }
     catch (InvalidDataException ex)
     {
         Console.WriteLine(ex.Message);
         Console.WriteLine(ex.StackTrace);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Something went wrong...");
     }
     finally
     {
         // ....
     }
 }
Beispiel #10
0
        private static void WriteResults(IGradeTracker book)
        {
            GradeStatistics stats = book.ComputeStatistics();

            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }

            //synth.Speak(nameof(stats.AverageGrade ) + " " + stats.AverageGrade);
            //synth.Speak(nameof(stats.HighestGrade) + " " + stats.HighestGrade);
            //synth.Speak(nameof(stats.LowestGrade) + " " + stats.LowestGrade);

            //Console.WriteLine(nameof(stats.AverageGrade) + " " + stats.AverageGrade);
            //Console.WriteLine(nameof(stats.HighestGrade) + " " + stats.HighestGrade);
            //Console.WriteLine(nameof(stats.LowestGrade) + " " + stats.LowestGrade);
            Console.WriteLine(book.Name);
            WriteResult("Average", stats.AverageGrade);
            WriteResult("HighestGrade", (int)stats.HighestGrade);
            WriteResult("LowestGrade", stats.LowestGrade);
            WriteResult(stats.Description, stats.LetterGrade);
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            //SpeechSynthesizer synth = new SpeechSynthesizer();
            //synth.Speak("Hello, this is the grade book program");

            // delegates can reference multiple methods.  "multi-cast delegates"
            //book.NameChanged += new NameChangedDelegate(OnNamedChanged);
            //book.NameChanged += new NameChangedDelegate(OnNamedChanged2);
            // equivalent.  easier on eyes
            // book.NameChanged += OnNamedChanged;

            //book.Name = "Ben's grade book";
            //book.Name = null;  will cause ArgumentException to be thrown
            //book.Name = "Ben's grade book";

            IGradeTracker book = CreateGradeBook();

            GetBookName(book);
            AddGrades(book);
            SaveGrades(book);
            WriteResults(book);
        }
        private static void GetBookName(IGradeTracker book)
        {
            //event subscribers
            //  book.NameChanged += OnNameChanged;

            try
            {
                //         Console.WriteLine("Enter a name");
                //    book.Name = Console.ReadLine();
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (NullReferenceException)
            {
                Console.WriteLine("Somthing went wrong lol");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Beispiel #13
0
        private static void GetBookName(IGradeTracker book)
        {
            //do
            //{
            //    Console.WriteLine("Please enter a name:");
            //    book.Name = Console.ReadLine();
            //}
            //while (String.IsNullOrEmpty(book.Name));

            try
            {
                Console.WriteLine("Please enter a name:");
                book.Name = Console.ReadLine();
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (NullReferenceException)
            {
                Console.WriteLine("Something went wrong");
            }
        }
Beispiel #14
0
        static void Main()

        {
            // i am profi guys
            //from Visual Studio to Github
            //GradeBook book = CreateGradeBook();
            //  GradesTracker book = CreateGradeBook();
            IGradeTracker book = CreateGradeBook();

            //foreach (int values in ages) {

            //    Console.WriteLine(values);
            //}
            // GradeBook book = new GradeBook();
            //GetNameOfBook(book);
            AddGrades(book);
            SaveGrades(book);
            OutputGrades(book);
            //book.NameChanged += OnNameChanged;

            //book.Name = "Scott's Grade Book";

            //Console.WriteLine(book.Name);
        }
Beispiel #15
0
        private static void Main(string[] args)
        {
            IGradeTracker book = CreateGradeBook();

            //book.NameChanged += OnNameChanged;

            Console.WriteLine("Enter a name:");
            try {
                //book.Name = Console.ReadLine();
            } catch (ArgumentException ex) {
                Console.WriteLine(ex.Message);
                //book.Name = "Empty";
            } finally {
            }
            AddGrades(book);

            GradeStatistics stats = book.ComputeStatistics();

            Console.WriteLine(book.Name);
            WriteResult("Average", stats.AverageGrade);
            WriteResult("Highest", (int)stats.AverageGrade);
            WriteResult("Lowest", stats.LowestGrade);
            WriteResult(stats.Description, stats.LetterGrade);
        }
Beispiel #16
0
        private static void SaveGrades(IGradeTracker book)
        {
            //File.CreateText() returns something
            //of type StreamWriter. Note that StreamWriter
            //is a type of TextWriter. This action will create
            //a file Grades.txt in the bin folder where the
            //assembly lives.
            //Something happened here that we are writing something
            //to the stream. Be careful on streams, weather File or
            //Network stream. Streams has the tendency to buffer any
            //information you write into them. IF YOU DONT flush, close
            //or dispose of that stream, there is a chance the program
            //can exit without the information arriving in the intended destination.
            //that is what outputFile.Close() is for.

            /*
             * this approach works, but for streams, using keyword can be used too!
             * StreamWriter outputFile = null;
             * try
             * {
             *  outputFile = File.CreateText("Grades.txt");
             *  book.WriteGrades(outputFile);
             * }
             * finally
             * {
             *  outputFile.Close();
             * }
             */

            //this stuff does not even need the close method
            //it will take care on its own because using handles streams.
            using (StreamWriter outputFile = File.CreateText("Grades.txt"))
            {
                book.WriteGrades(outputFile);
            }
        }
Beispiel #17
0
        static void Main(string[] args)
        {
            // SpeechSynthesizer synth = new SpeechSynthesizer();
            //synth.Speak("Hello, World");


            //Arrays();
            //Immutable();
            //PassByValueAndRef();

            IGradeTracker book = CreateGradebook();

            try
            {
                using (FileStream fs = File.Open("grades.txt", FileMode.Open))
                    using (StreamReader sr = new StreamReader(fs))
                    {
                        string line = sr.ReadLine();

                        while (line != null)
                        {
                            float grade = float.Parse(line);
                            book.AddGrade(grade);
                            line = sr.ReadLine();
                        }
                    }
                //string[] lines = File.ReadAllLines("grades.txt");

                //foreach (string line in lines)
                //{
                //    float grade = float.Parse(line);
                //    book.AddGrade(grade);
                //}
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("File not found");
                return;
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("No access");
                return;
            }
            //finally
            //{
            //    if (sr != null)
            //    {
            //        sr.Close();
            //    }

            //    if (fs != null)
            //    {
            //        fs.Close();
            //    }

            //}


            //book.AddGrade(91f);
            //book.AddGrade(89.1f);
            //book.AddGrade(75f);


            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }



            book.DoSomething();


            book.WriteGrades(Console.Out);

            //Console.WriteLine(book.Name);

            // Method 1 for delegate
            //book.NameChanged = new NamedChangeDelegate(OnNameChanged);

            // Method 2 for delegate
            //book.NameChanged += OnNameChanged;

            //book.NameChanged += OnNameChanged;
            //book.NameChanged += OnNameChanged2;
            //book.Name = "Dick";

            //Console.WriteLine(book.Name);

            //WriteNames("hello", "Jack", "bob", "Dick");

            GradeStatistics stats = book.ComputeStatistics();


            Console.WriteLine(stats.LetterGrade);

            Console.WriteLine(stats.Description);

            //int number = 20;

            //WriteBytes(number);
            //WriteBytes(stats.AverageGrade);


            Console.WriteLine(stats.AverageGrade);
            Console.WriteLine(stats.LowestGrade);
            Console.WriteLine(stats.HighestGrade);

            Console.ReadKey();
        }
Beispiel #18
0
 private static void AddGrades(IGradeTracker gb1)
 {
     gb1.AddGrade(91);
     gb1.AddGrade(85.2f);
     gb1.AddGrade(75);
 }
Beispiel #19
0
        private static void WriteResults(IGradeTracker gb1)
        {
            Statistics s = gb1.GetStatistics();

            Console.WriteLine("Highest Grade = {0}, Lowest Grade = {1}, and your average grade is {2}", s.Max, s.Min, s.Average);
        }
Beispiel #20
0
 private static void AddGrades(IGradeTracker gradeBook)
 {
     gradeBook.AddGrade(90.25f);
     gradeBook.AddGrade(56.2F);
     gradeBook.AddGrade(89.50f);
 }
Beispiel #21
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(88);
     book.AddGrade(99);
     book.AddGrade(93);
 }
Beispiel #22
0
        //static void GiveBookAName(GradeBook book)
        //{
        //    book = new GradeBook();
        //    book.Name = "The New gradebook";
        //}

        //static void IncrementNumber(int number)
        //{
        //    number += 1;
        //}

        static void Main(string[] args)
        {
            //SpeechSynthesizer speech = new SpeechSynthesizer();
            //speech.Speak("Hello world");

            //Arrays();
            //Immutable();
            //PassByValueAndRef();

            IGradeTracker book = CreateGradeBook();

            try
            {
                using (FileStream stream = File.Open("grades.txt", FileMode.Open))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string line = reader.ReadLine();
                        while (line != null)
                        {
                            float grade = float.Parse(line);
                            book.AddGrade(grade);
                            line = reader.ReadLine();
                        }
                    }
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("Could not locate the file grades.txt");
                return;
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("No access");
                return;
            }

            //book.DoSomething();
            //book.WriteGrades(Console.Out);

            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }

            try
            {
                //Console.WriteLine("Please enter a name for the book");
                //string priv = Console.ReadLine();
                //while (priv=="")
                //{
                //    Console.WriteLine("Please insert correct value");
                //    priv = Console.ReadLine();
                //}
                //book.Name = priv;
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Invalid name");
            }

            GradeStatistics stats = book.ComputeStatistics();

            //book.NameChanged += OnNameChanged;
            //book.NameChanged += OnNameChanged;
            //book.NameChanged += OnNameChanged2;
            //book.NameChanged -= OnNameChanged;

            //book.Name = "Allen's book";

            //WriteNames(book.Name);

            Console.WriteLine(book.Name);

            Console.WriteLine(stats.AverageGrade);
            Console.WriteLine(stats.LowestGrade);
            Console.WriteLine(stats.HighestGrade);
            Console.WriteLine("{0} {1}", stats.LetterGrade, stats.Description);
        }
Beispiel #23
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(90);
     book.AddGrade(85);
     book.AddGrade(70);
 }
Beispiel #24
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(92);
     book.AddGrade(67.3f);
     book.AddGrade(58);
 }
Beispiel #25
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddBook(91);
     book.AddBook(7.2f);
     book.AddBook(75);
 }
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(20);   /* Add 20 into grades field using AddGrade Member*/
     book.AddGrade(8.5f); /*8.5 is considered as precision of double so an f has to used to tell it is a float number*/
     book.AddGrade(75);
 }
Beispiel #27
0
 private static void SaveGrades(IGradeTracker book)
 {
     using (StreamWriter outputFile = File.CreateText("grades.txt")) {
         book.WriteGrades(outputFile);
     }
 }
Beispiel #28
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrades(85);
     book.AddGrades(95.4f);
     book.AddGrades(73);
 }
Beispiel #29
0
 private static void WriteResult(IGradeTracker book)
 {
     using (StreamWriter outputFile = File.CreateText("grades.txt"))
     {
         book.WriteGrades(outputFile);
         //outputFile.Close();
     }
 }
Beispiel #30
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(91);
     book.AddGrade(45.5f);
     book.WriteGrade(Console.Out);
 }
Beispiel #31
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(85);
     book.AddGrade(76.4f);
     book.AddGrade(59);
 }
Beispiel #32
0
 static void AddGradesToGradebook(IGradeTracker book)
 {
     book.AddGrade(91);
     book.AddGrade(89.5f);
     book.AddGrade(75);
 }
Beispiel #33
0
        static void Main(string[] args)
        {
            IGradeTracker book = CreateGradeBook();

            book.AddGrade(95);
            book.AddGrade(93);
            book.AddGrade(99.9f);
            book.AddGrade(76.7f);
            book.AddGrade(76.7f);



            try
            {
                //string[] lines = File.ReadAllLines(@"C:\Users\aidas\OneDrive\Documents\Visual Studio 2015\Projects\C# Fundamentals with C# 5.0 3rd time\Grades\Grades\bin\Debug\grades.txt");
                //foreach (string line in lines)
                //{
                //    book.AddGrade(float.Parse(line));
                //}

                using (FileStream stream = File.Open("grades.txt", FileMode.Open))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string line = reader.ReadLine();
                        while (line != null)
                        {
                            book.AddGrade(float.Parse(line));
                            line = reader.ReadLine();
                        }
                    }
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("Tokio failo neradome, todel programa baigiasi" + ex.Message);
                return;
            }
            //finally
            //{
            //    if (reader!=null)
            //    {
            //        reader.Close();
            //    }

            //    if (stream != null)
            //    {
            //        stream.Close();
            //    }
            //}

            book.DoSomething();
            book.WriteGrades(Console.Out);



            GradeStatistics stats = book.ComputeStatistics();

            book.NameChanged += OnNameChanged;
            book.NameChanged += OnNameChanged2;
            book.NameChanged += OnNameChanged;
            book.NameChanged += OnNameChanged;

            book.NameChanged -= OnNameChanged;

            try
            {
                //Console.WriteLine("iveskite varda");
                //book.Name = Console.ReadLine();
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine($"pagavaom exceptiona {ex.Message}");
            }


            WriteNames(book.Name);

            Console.WriteLine($"Vidurkis {stats.average}");
            Console.WriteLine($"Zemiausias {stats.LowestGrade}");
            Console.WriteLine($"Didziausias {stats.BiggestGrade}");
            Console.WriteLine($"Letter grades is {Char.ToUpper(stats.LetterGrade)} whick is {stats.Description.First().ToString().ToUpper() + stats.Description.Substring(1)}");

            book.Name = "Vanagas";

            //book.Name = Console.ReadLine();
        }
Beispiel #34
0
        //Can I set this main to public?
        public static void Main(string[] args)
        {
            SpeechSpeaker.Speaker();

            IGradeTracker book = CreateGradeBook();

            try
            {
                using (FileStream stream = File.Open("grades.txt", FileMode.Open))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string line = reader.ReadLine();
                        while (line != null)
                        {
                            float grade = float.Parse(line);
                            book.AddGrade(grade);
                            line = reader.ReadLine();
                        }
                    }

                //book.AddGrade(91f);
                //book.AddGrade(89.1f);
                //book.AddGrade(75f);
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("Could not locate the file grades.txt");
                return;
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("No access");
                return;
            }

            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }

            try
            {
                Console.WriteLine("Please enter a name for the book");
                book.Name = Console.ReadLine();
                //Delegate playground.
                //Book call deledgate Namgechanged. If namechanged is not null, then
                book.NameChanged += OnNameChanged;
                book.NameChanged += OnNameChanged;
                book.NameChanged += OnNameChanged2;
                book.NameChanged -= OnNameChanged;
            }
            catch (ArgumentException)
            {
                Console.WriteLine("Invalid name");
            }


            book.Name = "Allen's Book";
            WriteNames(book.Name);
            GradeStatistics stats = book.ComputeStatistics();

            Console.WriteLine(stats.AverageGrade);
            Console.WriteLine(stats.LowestGrade);
            Console.WriteLine(stats.HighestGrade);
            Console.WriteLine("{0} {1}", stats.LetterGrade, stats.Description);

            Console.WriteLine("Press any key to exist");
            Console.ReadLine();
        }
Beispiel #35
0
 private static void AddGrades(IGradeTracker caderno)
 {
     caderno.AddNota(91);
     caderno.AddNota(89.5f);
     caderno.AddNota(75);
 }
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(91);
     book.AddGrade(89.5f); //Since we declared it as a float, we need to append it with an f
     book.AddGrade(75);
 }
Beispiel #37
0
 private static void AddGrades(IGradeTracker book) // Changed from GradeBook to GradeTracker to explain abstracts
 {
     book.AddGrade(91);
     book.AddGrade(89.5f);
     book.AddGrade(75);
 }
Beispiel #38
0
        static void Main(string[] args)
        {
            IGradeTracker book = CreateGradeBook();

            //book.Add(78.1f);
            //book.Add(94.6f);
            //book.Add(82.3f);
            try
            {
                using (FileStream stream = File.Open("Grades.txt", FileMode.Open))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string line = reader.ReadLine();
                        while (line != null)
                        {
                            float grade = float.Parse(line);
                            book.Add(grade);
                            line = reader.ReadLine();
                        }
                    }
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine("Could Not Locate Grades.txt File");
                return;
            }
            catch (UnauthorizedAccessException)
            {
                Console.WriteLine("No Access");
                return;
            }
            finally
            {
            }

            //string[] lines = File.ReadAllLines("Grades.txt");
            //foreach (string line in lines)
            //{
            //    float grade = float.Parse(line);
            //    book.Add(grade);
            //}

            //foreach (var grade in book)
            //{
            //    Console.Write(grade + " ");
            //}

            book.NameChanged += book.OnNameChanged;


            book.Name = "KishorKira Book";
            //book.Name = "KishorKira Book";
            book.Name = "Ks Book";
            WriteName(book.Name);
            book.WriteGrades(Console.Out);
            GradeStatistics statistics = book.ComputeStatistics();

            Console.WriteLine($"Avarage Grade : {statistics.AvarageGrade}");
            Console.WriteLine($"Lowest Grade : {statistics.LowestGrade}");
            Console.WriteLine($"Highest Grade : {statistics.HighestGrade}");
            Console.WriteLine($"Letter Grade : {statistics.LetterGrade}");
            Console.WriteLine($"Description : {statistics.Description}");
        }
Beispiel #39
0
 private static Student CreateStudent(string name, IGradeTracker gradeBook)
 {
     return(new Student(name, gradeBook));
 }
Beispiel #40
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(95);
     book.AddGrade(71);
     book.AddGrade(83.3f);
 }
Beispiel #41
0
 private static void AddGrades(IGradeTracker book)
 {
     book.AddGrade(91);
     book.AddGrade(89.5f);
     book.AddGrade(75);
 }
Beispiel #42
0
        static void Main(string[] args)
        {
            //GradeBook book = new GradeBook("Aido knygos");

            //GradeBook book = new ThrowAwayGradeBook("Aido knyga"); //cia jau OOP
            IGradeTracker book = CraeteGradeBook();


            //book.AddGrade(91f);
            //book.AddGrade(89.1f);
            //book.AddGrade(75f);


            //FileStream stream = null;
            //StreamReader reader = null;

            try
            {
                using (FileStream stream = File.Open("grades.txt", FileMode.Open)) //sitaip galima panaudoti uzsing kuris turi magic closing ir tada nereikia finally
                    using (StreamReader reader = new StreamReader(stream))         //tokiu atveju net ir pagaunant exceptiona bus uzdaromas filas cia lower level dirbant su filu
                    {
                        string line = reader.ReadLine();

                        //string[] lines = File.ReadAllLines("grades.txt"); //read all line nevisada tinka nes gali but filas per didelis ir poan
                        //foreach (string line in lines)

                        while (line != null)
                        {
                            book.AddGrade(float.Parse(line));
                            line = reader.ReadLine();
                        }
                        //reader.Close();  //butinai reikiauzdaryt bet cia negerai nes jei exceptionas pasitaikys tada numes koda kitur ir neuzdarys
                        //stream.Close();
                    }
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("File not valid grade.txt");
                return;
            }
            catch (UnauthorizedAccessException ex)   //gali gaudyti kiek nori exceptionu
            {
                Console.WriteLine("you dont have access to grade.txt");
                return;
            }
            //finally
            //{
            //    if (reader != null)
            //    {
            //        reader.Close();  //cia vienas is budu kad viska uzdarytufinally kodas visada suveiks nesvarbu ar exceptionas ar kitka
            //    }

            //    if (stream != null)
            //    {
            //        stream.Close();  //bet tada reader ir stream deklaruoti outside try
            //    }
            // }

            //book.DoSomething();
            //book.WriteGrades(Console.Out);

            foreach (float grade in book)
            {
                Console.WriteLine(grade);
            }

            int j;

            do
            {
                try
                {
                    //Console.WriteLine("Please enter the name for the book");
                    //book.Name = Console.ReadLine();
                    j = 1;
                }
                catch (ArgumentException ex)  //ex jei nenaudojamas jo nebutina rasyti
                {
                    Console.WriteLine("Invalid name");
                    j = 2;
                }
            } while (j != 1);

            GradeStatistics stats = book.ComputeStatistics();

            Console.WriteLine(stats.AverageGrade);
            Console.WriteLine(stats.HighestGrade);
            Console.WriteLine(stats.LowestGrade);

            //Console.WriteLine(stats.AvarageLetterGrade);
            //Console.WriteLine(stats.GradeDescription);

            Console.WriteLine("Your grade is {0} {1}", stats.AvarageLetterGrade, stats.GradeDescription);
        }