Написание программного кода с использованием функций
Вопросы, подлежащие изучению
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