Перечисления в С++, Java и C# (Лабораторная работа № 8), страница 4

          }

      }

    for(int i = 0; i<st.length; i++)

      if (st[i].sr_ball() == min)

         st[i].output(); 

    int pr = 0;

    for (int i = 0; i < st.length; i++)

     if (st[i].gettypeob() == Type.ZAOCH)

         { pr = 1; break; }

    if (pr == 1)

      { System.out.println("\nСписок студентов заочников: ");

        System.out.printf("%-10s%-10s%-10s%-12s%-12s\n","Фамилия","Имя",

                      "Рейтинг","Форма обуч.","Дата рождения");

        for (int i = 0; i < st.length; i++)

          if (st[i].gettypeob() == Type.ZAOCH)

              st[i].output();

       }

    else System.out.println("Нет студентов заочников");

   }

  } 

Рисунок 4 – Результат выполнения программы

Пример 3

В листинге 3 представлена программа на С#, в которой  определен класс Student. Класс Student содержит следующую информацию о студенте: фамилия, имя и оценки за экзамены по пяти предметах, форма обучения, дата рождения. Для описания даты рождения студента используется класс DateTime из пространства имен System. Форма обучения описывается переменной перечислимого типа данных. Метод sr_ball() рассчитывает рейтинг студента (средний балл по оценкам). Метод output() выводит информацию о студенте на экран. В классе также имеются: конструктор с параметрами, метод доступа к полю fam (фамилия), метод доступа к полю date (дата рождения) и метод доступа к полю typeob (форма обучения).

В методе main() создается массив объектов класса Student и выполняется его обработка: сортировка студентов по дате рождения, поиск студентов с минимальным рейтингом, поиск рейтинга студента по фамилии и поиск студентов заочников.

Программа включает два файла, которые входят в пространство имен ConsoleApplication1:

-  Student.cs – файл с описанием класса Student;

-  Program.cs – файл с методом main() .

Для создания программы использовалась среда разработки MS Visual C# 2010 Express. На рисунке 5 показан состав проекта программы.

Рисунок 5 – Состав проекта программы

Создание проекта в MS Visual C# 2010 Express: Файл -> Создать проект -> Консольное приложение.

Добавление класса в проект: Проект -> Добавить класс -> Класс.

Компиляция, сборка и выполнение проекта: Отладка -> Начать отладку (F5).

На рисунке 6 показан результат выполнения программы.

Листинг  3

// Student.cs

using System;

namespace ConsoleApplication1

{

    enum Type

    {   OCH,

        ZAOCH,

        VECH

    }

    class Student : IComparable<Student>

    {

        private string fam;

        private string name;

        private int[] oc; // оценки

        private Type typeob;

        private DateTime date;

        public Student(string fam, string name, int[] oc, Type typeob, DateTime date)

        {

            this.fam = fam;

            this.name = name;

            this.oc = new int[5];

            for (int i = 0; i < 5; i++)

                this.oc[i] = oc[i];

            this.date = date;

            this.typeob = typeob;

        }

        public String getfam() { return fam; }

        public DateTime getdate() { return date; }

        public Type gettypeob() { return typeob; }

        public void output()

        {

            string str = String.Format("{0,-10}{1,-10}{2,4:f}      {3,-15}{4,-10}\n",

                fam, name, sr_ball(), typeob, date.ToString("dd.MM.yyyy"));

            Console.Write(str);

        }

        public float sr_ball()

        {