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

Лабораторная работа №1. Простейшее приложение Windows Forms

Цель: Изучить способы работы с текстовыми файлами в C#. Рассмотреть создание диаграмм, меню, диалоговых окон средствами C#.

Краткие теоретические сведения:

C# стремится предоставить основные возможности C++ в более удобной и простой для использования форме. Снижение сложности велось по двум основным направлениям. Во-первых – отказ от "сложных" средств языка С++, таких, как например, управление памятью вручную. Второе направление снижения сложности – замена "сложных" средств С++ сходными, но более простыми для понимания конструкциями. Множественное наследование С++ превратилось в простое наследование плюс интерфейсы. Современные версии C# поддерживают шаблоноподобные обобщенные классы, которые, по мнению разработчиков C#, проще шаблонов С++. Кроме того, C# предоставляет обширные библиотеки, позволяющие многим программистам сосредоточиться не на написании нового кода, а на соединении уже имеющихся компонентов.

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

Задание: Разработайте приложение Windows Forms при помощи MS Visual Studio C#.

При реализации интерфейса следуйте рекомендациям стандарта CUI (Common User Interface).

Программа должна иметь главное меню, строку состояния и клиентскую область (область рисования).

Главное меню приложения обязательно должно содержать следующие команды (в формате Подменю/Команда):

    • File/Open - выбор файла

    • File/Quit - завершение приложения после подтверждения пользователя

    • Help/About - вывод диалогового окна которое печатает условие задачи и информацию о разработчике (ФИО студента, группа, курс, факультет, ВУЗ)

    • (команды) - команды необходимые для решения вашей задачи, например, View/Fonts для выбора шрифта, View/Colors для настройки цвета и т.п.

Постройте диаграмму опроса в сети отображающую процентное соотношение проголосовавших.

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

Для выбора файла входных данных использовать стандартный диалог.

Анализ реализации алгоритма:

Для создания макета диалогового окна используется панель элементов. Чтобы разрабатываемое приложение соответствовало стандартам Graphical User Interface, предусматривается наличие строки меню. Используются специальные классы C#, такие как openFileDialog, для обеспечения взаимодействия приложения и файловой системы, тем самым предоставляя пользователю возможность указать файл с исходными данными. При работе с текстовыми файлами предусматриваются и обрабатываются возможные исключительные ситуации. С помощью средств обработки статистики, обозначаемых как Chart на панели элементов (доступно только при наличии библиотек Microsoft.NET 4.0 и выше), визуализируются полученные данные в виде круговой и столбчатой диаграмм.

Исходный код:

public class FileDiagramDataProvider : IDataProvider<DiagramData>

{

private readonly string _filename;

public FileDiagramDataProvider(string filename)

{

_filename = filename;

}

public DiagramData Get()

{

var dd = new DiagramData();

using (var reader = new StreamReader(new FileStream(_filename, FileMode.Open, FileAccess.Read), Encoding.GetEncoding("windows-1251")))

{

dd.Name = reader.ReadLine();

var nodes = new List<Node>();

var s = reader.ReadLine();

while (s != null)

{

var sSplitted = s.Split(' ');

if (sSplitted.Length > 1)

{

var node = new Node { Name = s, Value = int.Parse(sSplitted[0]) };

nodes.Add(node);

}

s = reader.ReadLine();

}

dd.Nodes = nodes;

}

return dd;

}

}

При помощи данного класса происходит считывание информации из файла.

Результат: В ходе выполнения работы была разработана программа, создающая круговую диаграмму, на основе предоставляемой информации. Результат работы можно найти в Приложении 3 (C#).

Выводы: Я изучила способы работы с текстовыми файлами в C#. Рассмотрела создание диаграмм, меню, диалоговых окон средствами C#.