Практическая работа № 12, «Строковый калькулятор»
Постановка задачи
Создайте программу, выполняющую действия строкового калькулятора: из исходной строки удалять, вставлять, копировать подстроку, выдавать первое вхождение подстроки, определять число символов в исходной строке.
Рис.1
Рис.2
Новым в этой работе являются:
- Использование стандартных функций работы со строками Remove, Insert, Substring, IndexOf и Length
План разработки программы
1. Откройте новый проект.
2. Разместите в форме объекты в соответствии с рис.2.
3. Установите свойства компонент Caption на вкладке Object Inspector, в соответствии с рис.1.
4. Установите следующие свойства компонент на вкладке Object Inspector:
Выделенный объект | Имя свойства | Значение |
TextBox2 | Name | Del1 |
TextBox 5 | Name | Del2 |
TextBox 9 | Name | Delrez |
Button1 | Name | Del |
TextBox 3 | Name | Ins1 |
TextBox 6 | Name | Ins2 |
TextBox 10 | Name | Insrez |
Button2 | Name | Ins |
TextBox 4 | Name | Copyr1 |
TextBox 7 | Name | Copyr2 |
TextBox 11 | Name | Copyrrez |
Button3 | Name | Copyr |
TextBox 8 | Name | Pozic1 |
TextBox 12 | Name | Pozicrez |
Button4 | Name | Pozic |
TextBox 13 | Name | Lenrez |
Button5 | Name | Len |
5. Создайте следующие процедуры обработки событий:
Объект | Имя событие | Текст процедуры |
Del (Button1) | Click | private void Del_Click(object sender, EventArgs e) { Delrez.Text = textBox1.Text.Remove(Convert.ToInt32(Del1.Text), Convert.ToInt32(Del2.Text)); } Комментарий Процедура Remove удаляет из строки textBox1, начиная с позиции Del1.Text, подстроку из Del2.Text символов. |
Ins (Button2) | Click | private void Ins_Click(object sender, EventArgs e) { Insrez.Text = textBox1.Text.Insert(Convert.ToInt32(Ins1.Text), Ins2.Text); } Комментарий Процедура Insert вставляет в строку textBox1.Text, начиная с позиции Ins1.Text, подстроку Ins2.Text. |
Copyr (Button3) | Click | private void Copyr_Click(object sender, EventArgs e) { Copyrrez.Text = textBox1.Text.Substring(Convert.ToInt32(Copyr1.Text),Convert.ToInt32(Copyr2.Text)); } Комментарий Функция Substring выделяет из строки textBox1.TExt, начиная с позиции Copyr1.Text, подстроку из Copyr2.Text символов. |
Pozic (Button4) | Click | private void Pozic_Click(object sender, EventArgs e) { Pozicrez.Text = Convert.ToString(textBox1.Text.IndexOf(Pozic1.Text)); } Комментарий Функция IndexOf определяет индекс первого вхождения отдельного символа или подстроки в строке. Если такое появление не обнаружено, то результат равен -1. |
Len (Button5) | nClick | private void Len_Click(object sender, EventArgs e) { Lenrez.Text = Convert.ToString(textBox1.Text.Length); } Комментарий Функция Length определяет текущую длину строки textBox1.Text. |
Задание для самостоятельного выполнения
1. Отредактируйте текст модуля таким образом, чтобы перед выполнением вычислений выполнялась проверка, задана ли исходная строка текста. Если нет, то следует вывести сообщение об этом в отдельном окне.
2. Введите кнопку «Очистить», которая позволит очистить все текстовые поля.
3. Сделайте доступными кнопки только после ввода исходного текта.
4. Дополните программу возможностью поиска цифр в тексте. Например, так:
ToCharArray() – преобразует строку в массив символов.