Реферат по предмету "Информатика, программирование"


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

Курсоваяработа
Подисциплине «Объектно-ориентированное программирование»
Натему «Поле редактирования с возможностью задания 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(objectsender, 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 voidOnTextChanged(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
{
// проверка на соответствие числам
if ((Convert.ToInt32(Text[i]) >= 48&& Convert.ToInt32(Text[i])
// или соотвествие точке, не стоящей первой, не болеечем третей и после цифры
|| (Text[i] == '.' && pCount = 1
&& (Convert.ToInt32(Text[i — 1])>= 48 && Convert.ToInt32(Text[i — 1])
{
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);
}
}
}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.