Хелпикс

Главная

Контакты

Случайная статья





Варианты задания к лабораторной работе № 10



 

Лабораторная работа № 10
 
Создание проектов обработки текстовых файлов

Цель работы:Получить практические навыки разработки проектов с использованием компонента текстовый редактор для чтения и обработки текстового файла.

Ход работы:

1.Создайте дополнительный класс, в который поместите методы обработки текстового файла:

ü открытие файла;

ü сохранение файла;

ü вывод файла на принтер;

ü подсчёт количества слов в тексте;

ü метод (или несколько методов) для обработки файла по своему варианту.

2.Разработайте основной модуль (проект, включающий форму). Пользовательский интерфейс должен включать: систему меню, панель инструментов, строку состояния.

Например, интерфейс может выглядеть так:

Рис. 1 Вид формы на этапе выполнения проекта

 

3.Создайте метод обработки события выбора пункта меню «Открыть файл». При выборе этого пункта пользователю предлагается выбрать файл для открытия при помощи диалогового окна, а затем вызывается ранее созданный метод открытия файла из класса.

4.Сохраните и откомпилируйте проект. Исправьте синтаксические ошибки.

5.Запустите проект на выполнение. Протестируйте метод выбора пункта меню «Открыть файл». Произведите отладку проекта.

6.Создайте метод выбора пункта меню «Сохранить файл» и «Сохранить как». Эти функции будут похожи. При обычном сохранении файла используем тоже имя, которое было задано в переменной при открытии файла. При выборе пункта меню «Сохранить как» происходит вызов диалогового окна сохранения файла. Если пользователь вводил текст вручную, не открывая файл, или редактировал открытый ранее файл, то при закрытии формы нужно предложить ему сохранить его.

7.Создайте метод выбора пункта меню «Печать». При нажатии на кнопку вызывается соответствующий метод дополнительного класса. Произведите отладку проекта.

8.Назначьте соответствующим кнопкам на панели инструментов методы обработки событий выбора нужных пунктов меню. Дважды писать один и тот же код в программе не нужно.

9.Создайте методы обработки события выбора остальных пунктов меню: «Параметры», «Поиск слов», «Справка». Пункт меню «Параметры» должен предоставлять возможности скрыть/показать панель инструментов, настроить параметры шрифта выделенного текста в редакторе richTextBox с помощью диалогового окна «Шрифт», настроить цвет шрифта и фона выделенного текста с помощью диалогового окна выбора цвета. Расположить кнопки с иконками для оформления текста на панели инструментов.

10.Скопируйте в отчёт тексты всех модулей. Внесите подробные комментарии.

11.Составьте тестовый сценарий (план тестирования). Занесите его в отчёт.

12.Протестируйте приложение в соответствие с тестовым сценарием. Вставьте в отчёт скриншоты проекта на этапе выполнения (результаты тестирования).

13.Продемонстрируйте работу проекта и отчёт преподавателю и получите оценку.

Указания:

Приведём пример метода открытия файла (выбора пункта меню «Открыть»). Тот же код должен быть назначен кнопке «Открыть» на панели инструментов.

 

private void openToolStripMenuItem_Click(object sender, EventArgs e)

   {

       toolStripStatusLabel3.Text = "Состояние: Открытие файла";

       openFileDialog1.FileName = String.Empty;

       if (openFileDialog1.ShowDialog() == DialogResult.OK)

// вызов диалогового окна открытия файла

       {

           fn = openFileDialog1.FileName;

           this.Text = fn;     // выведем имя файла в заголовок формы

       txfl = new TextFile(fn); // создание экземпляра класса

       richTextBox1.Text = txfl.OpenFile(fn); //вызов метода класса TextFile

             if (txfl.Error)

{

               MessageBox.Show("Ошибка доступа к файлу!", "Error",

                   MessageBoxButtons.OK, MessageBoxIcon.Error);

             }           

       }

   }

 

// в классе TextFile

 

public string OpenFile(string filename)

{

string s = "";

try

           {

               System.IO.StreamReader sr = new System.IO.StreamReader(filename,

                   System.Text.Encoding.GetEncoding(1251));

// создание нового входного потока, установка кодировки

               s = sr.ReadToEnd(); 

               sr.Close(); // закрытие входного потока

           }

       catch

           {

             error = true; // поле ошибки

           }

return s;

}

 

В классе TextFile необходимо разработать методы для вывода текста на принтер. Приведем примерный код таких методов:

 

StreamReader streamToPrint; //поток для принтера

Font printFont;

// Метод печати файла

// Входные параметры: передаются параметры шрифта

   // Результат: переданный текст выводится на печать,

//       если нет ошибки, передается результат true

 

public bool PrintResult(Font pF)  

   {

       try

       {

           streamToPrint = new System.IO.StreamReader(filename,

               System.Text.Encoding.GetEncoding(1251));

           try

           {

               printFont = pF;

               PrintDocument pd = new PrintDocument();

               pd.PrintPage += new PrintPageEventHandler

                  (this.pd_PrintPage);

               pd.Print();

               return true;

           }

           finally

           {

               streamToPrint.Close();

           }

       }

       catch

       {

           return false;

       }

   }

 

 // Событие PrintPage вызывается для каждой страницы, которая будет напечатана

   private void pd_PrintPage(object sender, PrintPageEventArgs ev)

   {

       float linesPerPage = 0;

       float yPos = 0;

       int count = 0;

       float leftMargin = ev.MarginBounds.Left;

       float topMargin = ev.MarginBounds.Top;

       string line = null;

 

       // Чтобы вычислить количество строк на странице

       linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);

 

       // Печатаем каждую строку файла

      while (count < linesPerPage && ((line = streamToPrint.ReadLine()) != null))

       {

           yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));

           ev.Graphics.DrawString(line, printFont, Brushes.Black,

           leftMargin, yPos, new StringFormat());

           count++;

       }

 

       // если строки не закончились, распечатаем еще одну страницу

       if (line != null)

           ev.HasMorePages = true;

       else

           ev.HasMorePages = false;

   }

 

Подведение итогов лабораторной работы:

Результатом выполнения лабораторной работы должен быть проект, сохранённый в отдельной папке, и отчёт. Отчёт должен содержать:

ü название лабораторной работы, цель работы;

ü текст вашего задания с указанием номера варианта;

ü скриншоты форм с надписанными компонентами;

ü тексты модулей с комментариями;

ü тестовый сценарий в виде таблицы;

ü скриншоты проекта на этапе выполнения;

ü колонтитулы с вашей фамилией и номером группы.

Контрольные вопросы:

1. Какие свойства компонента текстовый редактор вы изменяли при конструировании интерфейса или в коде программы? Поясните назначение этих свойств.

2. Какие свойства компонента openFileDialog необходимо предварительно настроить для удобства работы пользователя?

3. Какие диалоговые компоненты можно использовать для организации работы пользователя с файлом?

4. Перечислите свойства диалоговых компонентов для работы с файлами.

5. Как разбить текст на отдельные слова с использованием метода Split? Приведите фрагмент кода.


Варианты задания к лабораторной работе № 10

Вариант 1.
Разработать программу, которая загружает в текстовый редактор файл по выбору пользователя и выполняет поиск в файле самого длинного слова (таких может быть и несколько). Результатом поиска должны быть все эти слова и максимальное количество букв.

Вариант 2.
Разработать программу, которая загружает в текстовый редактор файл по выбору пользователя, выполняет поиск слов, которые встречаются в тексте более 2-х раз и выводит их в алфавитном порядке.

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

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

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

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

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

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


 

Вариант 9.
В текстовом файле хранятся двоичные числа (наборы нулей и единиц, каждое число на отдельной строке). Разработать программу, которая загружает в текстовый редактор файл по выбору пользователя и выполняет перевод этих чисел в десятичную систему счисления. Если какая-либо строка в файле содержит не двоичное число (то есть в ней встречаются символы, отличные от 0 и 1), то в качестве результата вывести прочерк. Результаты перевода сохранить в другой файл.

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

Вариант 11.
Поместить в текстовый файл результаты измерений роста и веса студентов группы. Разработать метод, который определяет индекс массы тела (ИМТ) каждого студента. Индекс массы тела определяется по следующей формуле: вес (в килограммах) делится на рост в квадрате (в метрах). Используя созданный метод, определить и выдать отдельными списками студентов с недостаточным и избыточным весом. Нормальное значение ИМТ равно 18-25, ниже 18 вес недостаточен, более 25 вес избыточный. Результаты сохранить в два других файла.

Вариант 12.
Разработать метод, который проверяет правильность расстановки круглых скобок в арифметическом выражении. Разработать программу, загружает в текстовый редактор файл по выбору пользователя, проверяет арифметические выражения и сохраняет в отдельный файл те из них, где скобки расставлены неверно.

Вариант 13.
Разработать программу, которая загружает в текстовый редактор файл по выбору пользователя и выполняет в нём поиск самой длинной последовательности цифр (таких может быть несколько). Выделить последовательности цифр в тексте.

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

Вариант 15.
Разработать метод, который вычисляет расстояние между точками на плоскости, заданными своими координатами. Составить программу, которая определяет минимальное расстояние между N точками, заданными координатами на плоскости. Координаты точек заранее внести в текстовый файл. Возможно дополнение файла новыми точками или перезапись файла по желанию пользователя. Расчет производится по данным, занесенным в файл.


 

Вариант 16.
Разработать метод, который вычисляет расстояние между точками на плоскости, заданными своими координатами. Составить программу, которая определяет периметр фигуры, заданной N точками, (координатами на плоскости). Координаты точек занесены в текстовый файл. Возможно дополнение файла новыми точками или перезапись файла по желанию пользователя.

Вариант 17.
Разработать программу, которая производит преобразование текста на русском языке в текст транслитом, т.е. записанный латиницей (такое преобразование называется романизаций). Каждая буква кириллицы заменяется соответствующей буквой или сочетанием букв латиницы по определённым правилам.

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

Вариант 19.
Разработать программу, которая загружает в текстовый редактор файл по выбору пользователя и выполняет поиск сочетаний из двух слов, разделённых пробелом, у которых в конце первого слова и в начале второго в сумме более 4-х согласных, например: текст программы (5 согласных).

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



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.