Поле редактирования с возможностью задания IP-адреса
Разработка родительского компонента для дальнейшего использования при создании приложений "Editip". Иерархия классов и интерфейсов. Применение в качестве инструмента исполнения среды программирования Microsoft Visual Studio.NET. Блок-схемы алгоритмов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.02.2011 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на 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 < 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);
}
}
}
Размещено на Allbest.ru
Подобные документы
Создание приложения Windows Forms в среде Microsoft Visual Studio 2008. Разработка программы "Курсовой" для организации работы по учёту курсовых работ в учебных заведениях с возможностью добавления, удаления, редактирования и поиска информации.
курсовая работа [2,2 M], добавлен 28.06.2011Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.
курсовая работа [571,9 K], добавлен 14.07.2012Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.
лабораторная работа [254,4 K], добавлен 23.11.2014Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.
курсовая работа [500,4 K], добавлен 13.01.2015Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.
методичка [2,1 M], добавлен 11.09.2014Microsoft Visual C++ и среда программирования Microsoft Developer Studio 6.0. Решение интеллектуальной задачи на компьютере. Построение алгоритма кодирования на Visual C++. Алгоритм решения задачи. Описание программы "Sort". Инструкции пользователя.
курсовая работа [46,0 K], добавлен 27.11.2007Характеристика модели клиент-сервер как технологии взаимодействия в информационной сети. Разработка и описание алгоритмов работы приложений на платформе Win32 в среде Microsoft Visual Studio, использующих для межпроцессного взаимодействия сокеты.
курсовая работа [544,6 K], добавлен 02.06.2014Введение в Microsoft Visual Studio. Диалоговое окно "Восстановленные файлы" интегрированной среды разработки. Веб-обозреватель интегрированной среды разработки. Диалоговое окно "Проверка подлинности прокси-сервера". Сохранение и восстановление файлов.
реферат [22,0 K], добавлен 29.05.2013Разработка приложений Microsoft Visual Studio, представляющее из себя справочную систему по жильцам многоквартирного дома, с функциями поиска жильцов и добавления новых записей о жильцах в базу данных. Программа написана на Microsoft Visual C++ 2008.
курсовая работа [2,5 M], добавлен 22.06.2011