Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
461.92 Кб
Скачать

2.4 Схема алгоритма. Описание

После запуска программы пользователю предлагается заполнить массив, хранящий информацию о студентах. Производится ввод данных о студентах, а именно имя, фамилия, группа, оценки за последнюю сессию. После заполнения всех данных, на экран с помощью метода Output() распечатывается вся полученная информация, а именно группа, количество студентов в группе, массив с фамилиями студентов (отсортированный по алфавиту), средний балл группы за сессию, лучшая по успеваемости группа.

Если на стадии ввода названия групп обнаружено, что такая группа уже содержится в списке, в ней происходит обновление данных.

Схема алгоритма приведена в приложении Б.

2.5 Текст программы

Т.к. текст программы занимает достаточно большой объём, он приведен в приложении В (листинг 2).

2.6 Результат машинного тестирования программы

Результат работы данной программы представлен на рисунке 2.

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

Заключение

В ходе выполнения курсовой работы были разработаны алгоритмы решения поставленных задач и написаны соответствующие коды программ. Коды были написаны с использованием созданных классов и их методов, что позволило значительно сократить и оптимизировать коды.

В результате были созданы две работоспособных программы по решению математических задач. Первая выполняет построение графиков функций и поиск точек их пересечения. Вторая позволяет ввести данные студентов, а затем выполняет работу с этими данными.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1. Павловская Т.А. C#. Программирование на языке высокого уровня: учебник для вузов. – СПб.: Питер, 2007. – 432 с.

  2. Шилдт Г. C# 4.0: полное руководство. Пер. с англ. – М.: Вильямс, 2011.

  3. Письменный Д. Т. Конспект лекций по высшей математике. Полный курс. — М.: Айрис-пресс, 2006. — 608 с.

ПРИЛОЖЕНИЕ А

Блок-схема к заданию №1

Метод solve

Метод binarysearch

ПРИЛОЖЕНИЕ Б

Блок-схема к заданию №2

ПРИЛОЖЕНИЕ В

Листинг 2 – код программы к заданию 2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Task2

{

class Program

{

// Класс для студента.

class Student

{

// Поля.

public string fname, lname, group;

public int mark;

// Ввод.

public void Input()

{

Console.WriteLine("Введите имя: ");

fname = Console.ReadLine();

Console.WriteLine("Введите фамилию: ");

lname = Console.ReadLine();

Console.WriteLine("Введите группу: ");

group = Console.ReadLine();

Console.WriteLine("Введите оценку: ");

mark = Convert.ToInt32(Console.ReadLine());

}

}

// Класс группы.

class Group

{

// Поля.

public string name;

public int count, sum;

public List<string> students;

// Конструктор.

public Group()

{

students = new List<string>();

}

// Добавка студента в группу.

public void AddStudent(Student a)

{

count++;

students.Add(a.lname);

sum += a.mark;

}

// Вычисление среднего арифметического по группе.

public double Average()

{

if (count == 0)

return -1;

return (double)sum / count;

}

// Вывод данных.

public void Output()

{

Console.WriteLine("Название: " + name + ".");

Console.WriteLine("Количество студентов: " + count + ".");

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

students.Sort();

foreach (string student in students)

Console.WriteLine(student);

Console.WriteLine("Средний бал: " + Average().ToString() + ".");

Console.WriteLine();

}

}

static void Main(string[] args)

{

// Инициализация.

List<Student> stud = new List<Student>();

Console.WriteLine("Введите количество студентов: ");

int studCount = Convert.ToInt32(Console.ReadLine());

// Ввод всех студентов.

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

{

Student t = new Student();

t.Input();

stud.Add(t);

}

// Заполнение групп.

List<Group> groups = new List<Group>();

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

{

int index = -1;

// Ищем существующую группу с таким названием.

for (int j = 0; j < groups.Count(); j++)

if (groups[j].name.Equals(stud[i].group))

index = j;

// Если не нашли,

if (index == -1)

{

// Создаем её и добавляем.

Group g = new Group();

g.name = stud[i].group;

groups.Add(g);

index = groups.Count() - 1;

}

// Добавляем студента в эту группу.

groups[index].AddStudent(stud[i]);

}

// Выводим все группы.

for (int i = 0; i < groups.Count(); i++)

groups[i].Output();

// Ищем группу с наилучшей успеваемостью.

int mx = 0;

for (int i = 0; i < groups.Count(); i++)

if (groups[i].Average() > groups[mx].Average())

mx = i;

// Выводим.

Console.WriteLine("Лучшая группа по успеваемости:");

groups[mx].Output();

Console.ReadKey();

}

}

}