
- •Лабораторная работа 2 Переопределение методов интефейсов
- •1.1. Задания
- •Его экземпляр содержит размер радиуса и высоты.
- •Функция print_sqrt() выводит на экран значение площади этой фигуры.
- •Его экземпляр содержит размеры a и b.
- •Его экземпляр содержит размеры a и b.
- •Его конструктор без параметра создает экземпляр со значением 0, а конструктор с параметрами создает экземпляр с соответствующим значением a и b.
- •Его методы позволяют присваивать значения a, b и получать значения площади, выполняя при этом соответствующие преобразования.
- •2.1 Пример выполнения работы
- •Создать класс Student, содержащий поля «Фамилия», «Курс» и «Средний балл»
- •Текст программы
- •Результат работы программы
2.1 Пример выполнения работы
Создать класс Student, содержащий поля «Фамилия», «Курс» и «Средний балл»
Создать массив из N экземпляров класса Student, проинициализировать случайными значениями и вывести сведения о студентах.
Отсортировать массив студентов по убыванию их среднего балла, используя метод Sort класса Array
Вывести информацию о студентах отрортированного массива
Текст программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Icomparab
{
class Student : IComparable
{
string fio;
int kurs;
double average;
public Student(string fio, int kurs, double average)
{
this.fio = fio; this.kurs = kurs;
this.average = average;
}
public void PersonalData()
{
Console.WriteLine("Студент {0} курса {1} имеет средний бал {2}", kurs, fio, average);
}
// переопределенный метод
public int CompareTo(object a)
{
Student b = (Student)a; // явное преобразование типов
if (b.average > this.average)
return 1;
if (b.average < this.average)
return -1;
return 0;
}
}
class Program
{
static void Main(string[] args)
{
string[] names = new string[] { "Иванов", "Петров", "Сидоров", "Паниковский", "Балаганов", "Корейко", "Скумбриевич", "Галкин", "Палкин", "Малкин" };
int n = 10;
Student[] A = new Student[n];
Random r = new Random();
for (int i = 0; i < n; i++)
{ A[i]=new Student(names[i], r.Next(1, 5), r.Next(1, 101));
A[i].PersonalData();
}
Array.Sort(A); // сортировка массива
Console.WriteLine("\nотсортированый: ");
for (int i = 0; i < n; i++)
{
A[i].PersonalData();
}
Console.ReadKey();
}
}
}
Результат работы программы