Задание 4
Создать программу на языке C#, в которой:
определить класс на основе информации об объекте индивидуального варианта. Поля данных класса должны быть закрытыми (private), а методы класса открытыми (public). В классе должны быть конструктор с параметрами и конструктор без параметров, методы доступа к закрытым полям класса и методы ввода и вывода значений полей класса.
Создать массив объектов и обработку информации об объектах согласно индивидуальному варианту задания. Выполнить сортировку объектов по какому-либо полю.
Индивидуальные варианты взять из лабораторной работы №1.
Пример 4
В листинге 4 представлена программа, в которой определен класс Student. Поля данных класса являются закрытыми (private), а методы класса открытыми (public). В классе определены конструкторы, методы доступа к закрытым полям класса и методы ввода и вывода значений полей класса.
В программе формируется исходный список студентов, список студентов с минимальным рейтингом, а также осуществляется поиск информации о рейтинге студента по его фамилии. Исходный список студента сортируется по фамилии в алфавитном порядке.
Для создания программы использовалась среда разработки MS Visual C# 2010 Express.
Создание проекта в MS Visual C# 2010 Express: Файл -> Создать проект -> Консольное приложение.
Компиляция, сборка и выполнение проекта: Отладка -> Начать отладку (F5).
На рисунке 6 показан результат выполнения программы.
Листинг 4
using System;
namespace ConsoleApplication1
{
class Student : IComparable <Student>
{ private string fam;
private string name;
private int grade; //рейтинг
public Student(string fam, string name, int grade)
{ this.fam = fam;
this.name = name;
this.grade = grade;
}
public Student(){}
public String getfam(){ return fam;}
public String getname(){ return name;}
public int getgrade(){ return grade;}
public void input()
{
Console.Write("Фамилия: "); fam = Console.ReadLine();
Console.Write("Имя: "); name = Console.ReadLine();
Console.Write("Рейтинг: "); grade = int.Parse(Console.ReadLine());
}
public void output()
{ Console.Write("{0,-15}{1,-15}{2}\n",fam,name,grade);
}
public int CompareTo(Student obj)
{ return fam.CompareTo(obj.getfam());
}
}
class Program {
public static void Main(String[] args) {
Console.Write("Введите кол-во студентов: ");
int n = int.Parse(Console.ReadLine());
Student[] st = new Student[n];
for (int i = 0; i<st.Length; i++)
{ st[i] = new Student();
st[i].input();
}
Array.Sort(st);
Console.WriteLine("Список студентов: ");
Console.Write("{0,-15}{1,-15}{2,-10}\n","Фамилия","Имя","Рейтинг");
for (int i = 0; i<st.Length; i++)
st[i].output();
int min = st[0].getgrade();
for(int i = 0; i<st.Length; i++)
if (st[i].getgrade() < min)
min = st[i].getgrade();
Console.Write("Укажите фамилию студента: ");
string fam = Console.ReadLine();
string f; int fl = 0;
for(int i = 0; i<st.Length; i++)
{ f =st[i].getfam();
if (f.Equals(fam))
{ Console.Write("Рейтинг студента " + fam + " - " + st[i].getgrade());
fl = 1;
}
}
if (fl == 0) Console.Write("Нет в списке студента "+fam);
Console.WriteLine("\nСписок студентов с минимальным рейтингом: ");
Console.Write("{0,-15}{1,-15}{2,-10}\n", "Фамилия", "Имя", "Рейтинг");
for(int i = 0; i<st.Length; i++)
if (st[i].getgrade() == min)
st[i].output();
Console.ReadKey(true);
}
}
}
Рисунок 6 – Результат выполнения программы