50355 (610089)

Файл №610089 50355 (Поле редактирования с возможностью задания IP-адреса)50355 (610089)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Размещено на http://www.allbest.ru/

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

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

На тему "Поле редактирования с возможностью задания 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 = 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);

}

}

}

Размещено на Allbest.ru

Характеристики

Тип файла
Документ
Размер
8,98 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее