Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Лабораторная работа по теме «Создания приложений, работающие с потоковыми файлами»





 

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

 

Вопросы, подлежащие изучению

 

1)Понятие файла. Особенности работы с текстовыми файлами.

2)Основные операторы VB для работы с текстовыми файлами.

3)Средства обработчика ошибок времени исполнения.

4)Классы и объекты VB для работы с текстовыми файлами.

5) Использование классов StreamReader, StreamWriter и объекта My.Computer.FileSystem для работы с текстовыми файлами.

 

4.10.7.2. Общее задание на разработку проекта

 

1) Изучите вопросы создания приложений, работающие с потоковыми файлами (Тема 10).

2)Создайте приложение с именем Проект-10.

3) Выберите вариант задания из таблицы по усмотрению преподавателя.

4) Создайте с помощью стандартной программы Microsoft Windows «Блокнот» текстовый файл из 5-7 строк с исходными данными, соответствующими варианту задания.

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

6) Напишите программный код процедуры пользователя для обработки текстового файла, которая должна вызывать процедуру обработки заданной строки (см. вариант задания лабораторной работы № 9), а также процедур для чтения и записи данных в/из текстового файла. Обмен данными между пользовательскими процедурами должен осуществляться через параметры, без глобальных переменных.

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



8) Допишите программный код проекта, в котором событийные процедуры должны содержать только операторы вызова пользовательских процедур.

9) Выполните приложение и получите результат.

10) Докажите правильность результата.

Варианты индивидуальных заданий

 

1) В текстовом файле найти строку, содержащую наибольшее количество цифр, идущих подряд.
2) Зашифровать каждую строку текстового файла, содержащего русские буквы, пробелы и знаки препинания: заменить каждую букву, непосредственно следующей за ней по алфавиту ("я" на "а"), строчную букву преобразовать в прописную, прописную - в строчную.
3) В текстовом файле найти строку, содержащую наибольшее количество слов, начинающихся и заканчивающихся на одну и ту же букву
4) В текстовом файле найти строки, в которых не было ни одной замены каждого третьего слова «мама» на слово «мамочка».
5) Из каждой строки текстового файла удалить все символы, входящие в нее более одного раза и найти самую короткую строку - результат.
6) Преобразовать каждую строку текстового файла, повторив в ней каждый символ, совпадающий с заданным и найти самую длинную строку - результат.
7) Записать в новый файл те строки исходного текстового файла, из символов которых можно составить вашу фамилию.
8) В каждой строке текстового файла определить максимальную длину подстроки, состоящей из заданного символа и найти их сумму.
9) Исключить из каждой строки текстового файла группы символов, расположенных между круглыми скобками, включая сами скобки. Предполагается, что внутри каждой пары скобок нет других скобок. Найти самую длинную строку – результат.
10) В текстовом файле найти строку, содержащую наименьшее количество слов четной длины, в которых нет буквы «а».
11) Записать в новый файл те строки исходного текстового файла, в которых нет ни одного слова, содержащего ровно три буквы «а».
12) В каждой строке текстового файла определить самое длинное слово нечетной длины и записать их в новый файл.
13) В текстовом файле найти строку, содержащую самое короткое слово четной длины.
14) Каждая строка текстового файла содержит дату в формате "mm-dd-yyyy", где mm - месяц, dd - день, yyyy - год. Записать в новый файл только те строки исходного текстового файла, которые содержат корректно заданные даты, изменив их формат на "dd.mm.yy", где yy - две последние цифры года.
15) Из каждой строке текстового файла, не содержащей цифр, получить "сжатую" строку, заменив самую длинную подстроку вида "XXX…XX" на подстроку вида "nX", где X - повторяющийся символ, n - число его повторений и записать в новый файл только измененные строки.
16) Записать в новый файл те строки исходного текстового файла, которые нельзя преобразовать в число.
17) Из каждой строки текстового файла получить новую строку, записывая каждый символ исходной строки только один раз.
18) В каждой строке текстового файла подсчитать сумму цифр и найти строку с наименьшей суммой.
19) В текстовом файле, не содержащем букв русского алфавита, найти строку с максимальным процентом гласных букв (a, e, i, o, u, y).
20) Записать в новый файл те строки исходного текстового файла, в которых самое длинное слово встречается раньше, чем самое короткое слово.
21) Преобразовать каждую строку текстового файла, удалив из каждого слова нечетной длины средний символ, и найти строку с минимальным количеством удалений.
22) В текстовом файле найти строку, содержащую наибольшее количество симметричных слов, т.е. читающихся одинаково слева направо и справа налево.
23) Записать в новый файл те строки исходного текстового файла, которые являются записью вещественного числа с нулевой дробной частью.
24) Для каждой строки текстового файла, содержащей корректно заданную дату в формате "dd.mm.yy", где dd - день, mm - месяц, yy - год, получить строку с датой, отстоящей от заданной на n дней вперед, в том же формате и записать в новый файл.
25) Записать в новый файл те строки исходного текстового файла, символы которых расположены в алфавитном порядке.
26) Записать в новый файл те строки исходного текстового файла, которые являются записью целого числа.
27) Записать в новый файл те строки исходного текстового файла, в которых нет n-ого с конца вхождения заданного символа.
28) Преобразовать каждую строку текстового файла, состоящую из "слов" длиной менее 10 символов и разделенных запятыми, заменив запятые группами пробелов так, чтобы каждое слово начиналось с позиции 10*(k - 1) + 1, где k - номер "слова".
Преобразовать каждую строку текстового файла, вставив в середину каждого слова четной длины букву «К» и найти строку с максимальным количеством вставок.
30) Для каждой строки текстового файла, содержащей корректно заданную дату в формате "dd.mm.yy", где dd - день, mm - месяц, yy - год, получить строку с датой, отстоящей от заданной на n дней назад, в том же формате и записать в новый файл.

 

 

Содержание отчёта

 

1)Тема и название лабораторной работы;

2)Фамилия, имя студента, номер группы, номер варианта.

3)Задание на разработку проекта.

4)Формализация и уточнение задания.

5)Элементы, разрабатываемого проекта:

5.1) графический интерфейс пользователя;

5.2) таблица свойств объектов;

5.3) схема алгоритма решаемой задачи;

5.4) программный код проекта.

6)Результаты выполнения проектов.

7)Доказательство правильности работы программы.

4.10.7.5. Первый пример выполнения задания

 

1) Тема и название лабораторной работы:

Работа с текстовыми файлами;

Чтение и запись информации из файла/в файл с помощью объекта My.Computer.FileSystem.

2) Фамилия, имя студента, номер группы, номер варианта:

Иванов И., БИН1405, вариант 13.

3) Задание на разработку проекта:

Создайте проект, который реализует ввод из файла строк a и b, отображает их на форме, а затем обрабатывает, удаляя из строки a все символы, входящие в строку b и расположенные на нечетных позициях строки b. Используйте разработанную для лабораторной работы 9 процедуру Обработка().

Результат обработки вышеприведенной задачи необходимо отобразить на форме и перезаписать в первый текстовый файл. Работу с текстовыми файлами осуществить с помощью объекта My.Computer.FileSystem.

4) Формализация и уточнение задания:

Формализация не требуется.

 

 

5) Элементы, разрабатываемого проекта:

5.1)Графический интерфейс пользователя:

Форма приложения представлена на рис. 4.10.7-1.

 

 

Рис. 4.10.7-1. Форма проекта Проект 10-1

 

5.2)Таблица свойств объектов:

Для вывода на форму текстового файла, состоящего из нескольких строк, используются текстовые поля TextBox3и TextBox5, для которых свойство Multiline должно быть установлено в состояние True. Кроме того, требуется установить для этих полей свойство ScrollBars в состояние Vertical для обеспечения возможности вертикальной прокрутки содержимого текстовых полей. Текстовое поле TextBox4, предназначенное для вывода на форму только одной строки из второго файла может оставаться со значением свойства Multiline, равным False, так же, как и два других текстовых поля TextBox1и TextBox2, служащие для ввода путей к текстовым файлам.

Определите, установите и сведите в табл. свойства объектов

самостоятельно.

5.3)Схема алгоритма решаемой задачи:

Схемы отдельных алгоритмов представлены в Теме 4.10.

5.4)Программный код проекта:

Программный код проекта представлен на рис. 4.10.7-2.


 

Public Class Form1 'Глобальные строки Dim Str1 As String'строка с исходным первым файлом Dim Rez As String'строка с измененным первым файлом ' Процедура записи строки в файл. Sub Запись(ByVal ПутьФ As String, ByVal str1 As String) If (My.Computer.FileSystem.FileExists(ПутьФ)=True) Then If (MsgBox("Файл существует. Переписать?", _ MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "Overwrite")_ <> MsgBoxResult.Yes) Then Exit Sub End If ' Сохраняем данные Try My.Computer.FileSystem.WriteAllText(ПутьФ, str1,False) Catch ex As Exception MsgBox("Файл не может быть записан на диск " & _ "из-за ошибки:" & vbCrLf & vbCrLf & ex.Message) End Try End Sub 'Процедура чтения данных из файла целиком в одну строку Sub Чтение(ByRef Str3 As String, ByVal filename As String) ' Открываем существующий файл и загружаем его в одну строку Try Str3 = My.Computer.FileSystem.ReadAllText(filename) Catch ex As Exception MsgBox("Файл не может быть открыт " & _ " из-за ошибки:" & vbCrLf & vbCrLf & ex.Message) End Try End Sub 'Процедура обработки одной строки (удаления символов из строки) Sub Обработка(ByVal b As String, ByRef a As String) Dim d, m, i, j As Short m = CShort(a.Length) 'длина строки a d = CShort(b.Length) 'длина строки b For i = 0 To CShort(d - 1) Step 2 'перебор нечетных симв. строки b j = 0 Do While j < m'перебор всех символов строки a If a.Substring(j, 1) = b.Substring(i, 1) Then a = a.Remove(j, 1) 'пока символы совпадают - удаляем из a m = CShort(m - 1) 'уменьшаем длину строки a Else j = CShort(j + 1) 'переход к следующемусимволу строки a End If Loop Next i End Sub 'Процедура решения задачи удаления символов из строк файла Sub Resh(ByVal b As String, ByVal s1 As String, _ ByRef s2 As String) Dim a As String Dim Stroki() As String'массив строк первого файла Stroki = Split(s1, vbNewLine) 'Разбиваем строку с первым файлом ' на массив строк по признаку конца строки s2 = ""' новая строка для нового файла целиком For i As Integer = 0 To Stroki.Length - 1 a = Stroki(i)' одна строка первого файла Обработка(b, a)' удаление символов из строки 'собираем измененные строки первого файла в 'одну строку s2 s2 = s2 + a + vbNewLine Next End Sub Function vvod(ByVal T As TextBox) As String Return T.Text End Function Sub vivod(ByVal z As String, ByRef t As TextBox) If z.Length <> 0 Then t.Text = z Else t.Text = "Все удалено" End If End Sub Private Sub Button1_Click(sender As Object, _ e As EventArgs) Handles Button1.Click Dim ПутьФ1 As String = "" ПутьФ1 = vvod(TextBox1) Чтение(Str1, ПутьФ1) : vivod(Str1, TextBox3) End Sub Private Sub Button2_Click(sender As Object, _ e As EventArgs) Handles Button2.Click Dim Str2 As String = "" Dim ПутьФ2 As String = "" ПутьФ2 = vvod(TextBox2) : Чтение(Str2, ПутьФ2) vivod(Str2, TextBox4) Resh(Str2, Str1, Rez) : vivod(Rez, TextBox5) End Sub Private Sub Button3_Click(sender As Object, _ e As EventArgs) Handles Button3.Click Dim ПутьФ As String = "" ПутьФ = vvod(TextBox1) : Запись(ПутьФ, Rez) End Sub Private Sub Button4_Click(sender As Object, _ e As EventArgs) Handles Button4.Click End End Sub End Class

 

Рис. 4.10.7-2. Программный код проекта Проект 10-1

 

Программный код, решаемой задачи содержит процедуры vvod(),
vivod(), Обработка(), Resh(), Чтение()
и Запись(). Так как разработанный интерфейс имеет не одну, а несколько кнопок, которые работают со строками, содержащими первый файл (Str1 – для исходного файла и Rez – для измененного файла), то эти строки должны быть доступны нескольким событийным процедурам, поэтому в программном коде их необходимо сделать глобальными (видимыми) для всех процедур, и объявить в начале программы, до работы всех процедур.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.