Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-й семестр / Лаб.работы / Мет.ук. к л.р.8.doc
Скачиваний:
60
Добавлен:
12.03.2016
Размер:
193.54 Кб
Скачать

Задание 3

Изменить программу, созданную на C# на основе задания 4 лабораторной работы № 4. Добавить в класс, созданный на основе индивидуального варианта, поле типа DateTime и выполнить сортировку объектов по этому полю. Использовать в программе перечислимый тип данных.

Пример 3

В листинге 3 представлена программа, в которой формируется исходный список студентов, список студентов с минимальным рейтингом, осуществляется поиск информации о рейтинге студента по его фамилии, а также формируется список студентов заочников. Исходный список студентов сортируется по дате рождения. Для описания даты рождения студента используется тип DateTime. В программе используется перечислимый тип данных для задания формы обучения студента.

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

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

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

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

Листинг 3

using System;

namespace Primer

{ enum Type

{ OCH,

ZAOCH,

VECH

}

class Student : IComparable<Student>

{

private string fam;

private string name;

private int grade; //рейтинг

private Type typeob;

private DateTime date;

public Student(String fam, String name, int grade, Type typeob, DateTime date)

{

this.fam = fam;

this.name = name;

this.grade = grade;

this.date = date;

this.typeob = typeob;

}

public Student() { }

public String getfam() { return fam; }

public String getname() { return name; }

public int getgrade() { return grade; }

public DateTime getdate() { return date; }

public Type gettypeob() { return typeob; }

public void output()

{

Console.Write("{0,-10}{1,-10}{2,4:d} {3,-15}{4,-10}\n",

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

}

public int CompareTo(Student obj)

{

return date.CompareTo(obj.getdate());

}

}

class Program

{

public static void Main(string[] args)

{

DateTime dt1 = new DateTime(1991, 6, 1);

DateTime dt2 = new DateTime(1990, 1, 15);

DateTime dt3 = new DateTime(1991, 12, 25);

Student[] st = new Student[3];

st[0] = new Student("Сидоров", "Петр", 80, Type.OCH, dt1);

st[1] = new Student("Петров", "Петр", 56, Type.ZAOCH, dt2);

st[2] = new Student("Иванов", "Иван", 70, Type.ZAOCH, dt3);

Array.Sort(st);

Console.WriteLine("Список студентов: ");

Console.Write("{0,-10}{1,-10}{2,-10}{3,-15}{4,-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;

int pr = 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,-10}{1,-10}{2,-10}{3,-15}{4,-10}\n", "Фамилия", "Имя", "Рейтинг", "Форма обуч", "Дата рождения");

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

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

st[i].output();

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

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

{ pr = 1; break; }

if (pr == 1)

{

Console.WriteLine("\nСписок студентов заочников: ");

Console.Write("{0,-10}{1,-10}{2,-10}{3,-15}{4,-10}\n", "Фамилия", "Имя", "Рейтинг", "Форма обуч", "Дата рождения");

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

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

st[i].output();

}

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

Console.ReadKey(true);

}

}

}

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

8

Соседние файлы в папке Лаб.работы