Написание программного кода с использованием функций

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

1.Понятие файла. Текстовые файлы.

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

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

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

5.Использование класса File для работы с текстовыми файлами.

6.Печать текстовых файлов.

 

Задание

1. Выбрать вариант задания для реализации процедуры обработки строковых данных из

таблицы 1.9-1.

2. Создать с помощью стандартной программы MS Windows «Блокнот» текстовый

файл с исходными данными, соответствующий варианту задания п.1.

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

4. Написать программный код процедур пользователя для чтения и записи данных в/из

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

должен осуществляться через параметры, без использования глобальных переменных .

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

отображает их на форме, а затем обрабатывает в соответствии с заданием.

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

содержать только операторы вызова пользовательских процедур.

7. Подготовить тесты для контрольного решения задачи.

8. Выполнить созданный проект и получить решение.

 

Варианты задания

Варианты задания для реализации процедуры обработки строковых данных приведены в таблице 1.9-1.

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

1.Тема и название работы

2.Задание на разработку проекта и вариант задания

3.Формализация задания

4.Разработка проекта:

4.1.Графический интерфейс пользователя;

4.2.Таблица свойств объектов;

4.3.Программный код с использованием процедур.

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

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

 

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

Тема и название работы

Текстовые файлы – Создание проекта Проект-4-10-Лаб.

 

Задание на разработку проекта и вариант задания

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

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

Разработка проекта

Разработка графического интерфейса пользователя

Разработанная форма интерфейса пользователя приведена на рис. 1.10-1.

Рис. 1.10-1

Установка свойств объектов

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

Написание программного кода с использованием функций

Программный код, решаемой задачи представлен на рис. 1.10-2, который содержит процедуры vvod( ), vivod( ), Обработка( ), Чтение( )и Запись( ). Так как

разработанный интерфейс имеет не одну, а несколько кнопок, которые работают с

первой строкой, то эта строка должна быть доступна нескольким событийным

функциям, и поэтому в программном коде ее необходимо сделать глобальной

(видимой для всех функций) и объявить в начале программы, до описания всех

функций.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;   namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }   private void button1_Click(object sender, EventArgs e) { String wayF1="",str1=""; wayF1 =vvod(textBox1); Чтение(str1, wayF1); vivod(textBox2,str1 ); }   private void button2_Click(object sender, EventArgs e) { String wayF1 = ""; String str1 = ""; wayF1 =vvod(textBox1); Запись(wayF1,ref str1); }   private void button3_Click(object sender, EventArgs e) { String str1="",str2 = ""; String wayF2= ""; wayF2 = vvod(textBox5); Чтение(wayF2, str2); Обработка(str2, str1); vivod(textBox3,str2 ); vivod(textBox4, str1); }   private void button4_Click(object sender, EventArgs e) { Close(); }   private String vvod(TextBox t) { return t.Text; }   private void vivod(TextBox t, String s) { if (s.Length != 0) t.Text = s; else t.Text = "Все удалено"; }   //функция решения задачи удаления символов из строки private void Обработка(String b, String a) {int d, m, i, j; m = a.Length; //длина строки a d = b.Length; //длина строки b for( i = 0; i<=d-1;i+=2) //перебор нечетных символов { j = 0; while (j < m ) //перебор всех символов строки a if (a.Substring(j, 1) == b.Substring(i, 1)) { a = a.Remove(j, 1); //симв. совп.- удаляем из a m -- ;} //уменьшаем длину строки a else j++; //переход к след. символу строки a } }   //функция записи строки в текстовый файл private void Запись( String wayF,ref String str1) { if (File.Exists(wayF)== true) if (MessageBox.Show("Файл существует. Переписать?","MessageBoxHelloWorld", MessageBoxButtons.YesNo) == DialogResult.Yes)   {// Сохраняем данные. try{ File.WriteAllText(wayF, str1); // My.Computer.FileSystem.WriteAllText(ПутьФ, Str1, False) } catch { MessageBox.Show("Файл не может быть записан на диск "); // "" & vbCrLf & vbCrLf & ex.Message); }} }   //функция чтения данных из файла целиком в одну строку private void Чтение(String str3, String filename) { //Открываем существ. файл и загружаем его текст в строку try { str3 = File.ReadAllText(filename);} catch { //Exception ex; MessageBox.Show("Файл не может быть открыт "); // & _ " из-за ошибки:" & vbCrLf & vbCrLf & ex.Message) }} }}

Рис. 1.10-2