Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Поле редактирования с возможностью задания IP-адреса

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.11.2024

red235;

Курсовая работа

По дисциплине "Объектно-ориентированное программирование"

На тему "Поле редактирования с возможностью задания IP-адреса"


Содержание

1. Постановка задачи и ее анализ

2. Иерархия классов и интерфейсов

3. Описание классов, их полей, свойств

4. Блок-схемы алгоритмов

5. Тестирование

Заключение

Приложение

приложение интерфейс программирование алгоритм


1. Постановка задачи и ее анализ

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

При этом необходимыми условиями работы являются использование в качестве инструмента разработки - среды программирования Microsoft Visual Studio.NET. Язык программирования C#.

В данной пояснительной записке рассматривается описание процесса создания компонента дальнейшего использования при создании приложений "Editip".

Компонент "Editip" содержит в себе 4 свойства "ip1", "ip2", "ip3", "ip4", хранящие IPv4 номера побитно. Эти свойства были созданы для проверки правильности обработки компонентов введенных данных. При событии изменения строки идет проверка на ввод цифр или точки. Если введен неудовлетворяющий этому условию символон убирается из строки, без сброса каретки. Если в строке обнаружится более трех точек, и после последней будет стоять числовсе содержимое текстового поля обновляется согласно правилам ввода IP-адреса (754.198589.50.5 превращается в 255.255.50.5).


2. Иерархия классов и интерфейсов

Рисунок 1Иерархия классов

3. Описание классов, их полей, свойств

Класс "Editip" является дочерним классом "TextBox". В него добавлены свойства свойства "ip1", "ip2", "ip3", "ip4" типа byte. Изменен метод "OnTextCanged", в котором идет проверка на удовлетворение введенных данных условию поставленной задачи и обработка этих данных с изменением свойств, таких как "ip1", "ip2", "ip3", "ip4" и "Text".


4. Блок-схемы алгоритмов

Алгоритм метода "OnTextChanged".


5. Тестирование

Для тестирования компонента был приглашен человек с опытом пользователя работы на компьютере, который проверял компонент в специально созданной форме на все возможные ошибки. Тестирование показало, что функциональность компонента соответствует предъявленным требованиям.

В результате тестирования компонента были осуществлены следующие операции:

- в форму был помещен созданный компонент "Editip" и четыре стандартных компонента "Label" имеющих обозначение ip1, ip2, ip2, ip4 соответственно;

- в событии TextCanged компонента Editip было прописано присвоение свойств ip1, ip2, ip3, ip4 проверочным строкам (выделены жирным).

Рисунок 4Ввод в форму ip адреса

- при внесении в поле компонента числа превышающего 255, ip автоматически снижали это число в 255.

Рисунок 5Ввод в форму больших чисел


- после ввода последних цифр, после третьей точки, вид компонента приходил в "порядок", если числа ip1, ip2, ip3 не соответствовали требованиям

Рисунок 6Ввод в форму последнего числа

- была выявлена ошибка переполнения, вследствие ввода слишком большого числа, которое не могло быть преобразовано в числовой формат Int32.

Рисунок 7Ошибка


Ошибка была исправлена использованием в компоненте try-catch

Рисунок 8Ошибка исправлена


Заключение

В рамках курсовой работы была создан компонент "Editip" для дальнейшего использования при создании приложений. В процессе проектирования использовались методологии объектно-ориентированного программирования.

В процессе создания программы мы более тесно познакомились с синтаксисом языка C#, в частности создания компонентов, которые очень удобно использовать в широком спектре разнотипных программ.


Приложение

Листинг

Модуль главной формы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace OOPip

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void editip1_TextChanged(object sender, EventArgs e)

{

label1.Text = Convert.ToString(editip1.ip1);

label2.Text = Convert.ToString(editip1.ip2);

label3.Text = Convert.ToString(editip1.ip3);

label4.Text = Convert.ToString(editip1.ip4);

}

}

}


Модуль компонента "Editip"

using System;

using System.ComponentModel;

using System.Collections.Generic;

using System.Diagnostics;

using System.Text;

namespace OOPip

{

public partial class Editip : System.Windows.Forms.TextBox

{

public Editip()

{

InitializeComponent();

}

public Editip(IContainer container)

{

container.Add(this);

Text = "0.0.0.0";

InitializeComponent();

}

// объявляем переменные хранящие циры ip адреса

public short ip1, ip2, ip3, ip4;

// встраиваемся в событие изменения текста

protected override void OnTextChanged(EventArgs e)

{

// обнуляем переменные хранящие циры ip адреса

ip1 = 0;

ip2 = 0;

ip3 = 0;

ip4 = 0;

// запоминаем положение каретки

int start = SelectionStart;

//счетчик точек

byte pCount = 0;

// если строка не пуста

try

{

if (Text != "")

{

// нам нужен ввод только цифр, проверяем введенные символы на соответствие

for (int i = 0; i < Text.Length; i++)

{

// проверка на соответствие числам

if ((Convert.ToInt32(Text[i]) >= 48 && Convert.ToInt32(Text[i]) <= 57)

// или соотвествие точке, не стоящей первой, не более чем третей и после цифры

|| (Text[i] == '.' && pCount < 3 && i >= 1

&& (Convert.ToInt32(Text[i - 1]) >= 48 && Convert.ToInt32(Text[i - 1]) <= 57)))

{

if (Text[i] == '.')

{

pCount++;

}

}

else

{

Text = Text.Substring(0, i) + Text.Substring(i + 1);

}

}

// закрываем ипы методом сканирования на точки

string Str = Text;

int ii = 0;

if (Str.IndexOf('.') != -1)

{

ii = (Convert.ToInt32(Str.Substring(0, Str.IndexOf('.'))));

if (ii > 255) { ii = 255; } ip1 = Convert.ToByte(ii);

Str = Str.Substring(Str.IndexOf('.') + 1);

}

if (Str.IndexOf('.') != -1)

{

ii = (Convert.ToInt32(Str.Substring(0, Str.IndexOf('.'))));

if (ii > 255) { ii = 255; } ip2 = Convert.ToByte(ii);

Str = Str.Substring(Str.IndexOf('.') + 1);

}

if (Str.IndexOf('.') != -1)

{

ii = (Convert.ToInt32(Str.Substring(0, Str.IndexOf('.'))));

if (ii > 255) { ii = 255; } ip3 = Convert.ToByte(ii);

Str = Str.Substring(Str.IndexOf('.') + 1);

}

if (Str != "")

{

ii = (Convert.ToInt32(Str)); if (ii > 255) { ii = 255; } ip4 = Convert.ToByte(ii);

}

}

}

catch { }

// приводим в "божеский вид" напечатаный текст, если уже имеется 3 точки и последний символ не точка

if (pCount == 3 && Text.LastIndexOf('.') != Text.Length - 1)

{

Text = Convert.ToString(ip1) + "." + Convert.ToString(ip2) + "." + Convert.ToString(ip3) + "." + Convert.ToString(ip4);

}

// возвращаем каретку на место (сбивается при измении текста)

SelectionStart = start;

base.OnTextChanged(e);

}

}

}

Размещено на 




1. Вильгельм Рааб
2. 00 главный корпус а113 Гуськова Н.html
3. Сказание о Сохрабе
4. НАЛОГИ И НАЛОГООБЛОЖЕНИЕ ОМСК 2011 Министерство транс
5. от 10000 до нескольких миллионов углеродных единиц
6. 1. полость носа cvum nsi распологается между полостью рта снизупередней черепной ямкой сверху и глазниц
7. тема гражданского права1
8. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата біологічних наук Київ
9. тема РФ на тему- Бюджетное процесс его содержание задачи и принципы организации вариант 3 сме
10. .ч. VORTEX пр. пол. 450 EN 242x175x190 Аккумулятор 1000 2 58600 55 А
11. Реформы Петра 1
12. Общая характеристика системы уравнений Максвелла
13. Массовые коммуникации и медиапланирование 1
14. тема представляет интерес как с точки зрения теории права понятия правосубъектности правоспособности так.
15.  ФИО 2 Пол Женский 3
16. совокупность организационных и экономических мер по привлечению инвестиций с целью возрождения экономики
17. Статья- Антропные принципы в современной науке и образовательных технологиях физической культуры
18. Тема Стр
19. временные выезды путешествия людей в другую страну или местность отличную от места постоянного жительств
20. Сравнительная рецензия на произведения В Распутина Изба и На родине