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

Задание 3

Изменить программу, созданную С# на основе задания 4 лабораторной работы № 4. В метод ввода значений полей класса индивидуального варианта добавить проверку допустимости вводимых значений. В случае недопустимых значений полей выбрасывать исключения, которые необходимо обработать в методе main() главного класса программы.

Пример 3

В листинге 3 представлена программа, в которой формируется исходный список студентов, список студентов с минимальным рейтингом, а также осуществляется поиск информации о рейтинге студента по его фамилии. Исходный список студента сортируется по фамилии в алфавитном порядке. В методе input выполняется проверка вводимых значений для поля рейтинг (grade). Рейтинг студента должен быть целым числом в диапазоне от 0 до 100.

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

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

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

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

Листинг 3

using System;

namespace Primer3

{

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());

if (grade < 0 || grade > 100)

throw new Exception("Ошибка: Рейтинг должен быть от 0 до 100!");

}

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)

{

try

{

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);

}

catch (FormatException e)

{ Console.WriteLine("Это НЕ число!!!" + e.Message);}

catch (Exception e)

{ Console.WriteLine(e.Message);}

Console.ReadLine();

}

}

}

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

10

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