Курсовойпроект на тему:
Разработкаструктуры класса «Адресное бюро»
Муром2010
Данный курсовойпроект направлен на создание иерархии классов «Адресное бюро», содержащуюинформацию о частных лицах, предприятиях и их адресах, а также разработкутестирующего приложения, позволяющего быстро и без особых усилий получитьданные об интересующем лице.
Введение
С развитием ЭВМ иинформатизацией общества возникает вопрос о компьютеризации большого количестваданных, для удобства их использования. К тому же это делает их более доступнымии упорядоченными.
Данный курсовой проектпозволит заменить большое количество бумаг и сделает поиск более удобным ибыстрым, тем самым сэкономит время.
В связи с этим былаопределена цель — разработать иерархию классов «Адресное бюро», в которой будетхраниться информация о лицах и организациях, а также их адресах.
Существует множествоспециализированных программ, позволяющих компьютеризировать огромное количестводанных о лицах, организациях и их адресах. Отличительной особенностью даннойпрограммы является простота интерфейса, наглядное отображение данных, быстрыйпоиск по всем полям записи. Найденные записи отфильтровываются от других. Можетиспользоваться как электронный справочник любой другой информации. Темакурсового проекта является актуальной, потому что данное приложение значительнооблегчает работу с большим количеством данных.
Основная задача курсовогопроекта — разработка приложения на основе иерархии классов, для введения данныхоб адресах частных лиц и предприятий, которое позволит осуществлять мгновенныйпоиск данных о любых лицах.
Анализтехнического задания
В курсовом проектепоставлена задача создания универсального приложение на основе разработаннойиерархии классов. Исходя из основной задачи проекта, были поставлены следующиезадачи:
- Разработкаиерархии классов, которая должна содержать не менее трех уровней;
- Разработкаструктуры каждого класса в отдельности;
- С помощьюнаследования определение базовых и производных классов;
Требуется создатьпрограмму, которая смогла бы обрабатывать данные независимо от их количества.Данный справочник адресов может применяться в любой справочной системе.
Для удобной работы сбольшим количеством данных необходимо их упорядочить. Для этого следует разбитьих на несколько небольших групп с общими свойствами и далее работать с нимиотдельно. Необходимо предусмотреть обработку каждой группы данных.
Требования,предъявляемые к программе, предполагают использование объектно-ориентированногоподхода при разработке программы. Объектно-ориентированный подход делаетреализованное приложение более гибким и универсальным. При необходимостивозможно дополнять приложение различными свойствами и функциями. Даннуюпрограмму можно разработать на любом объектно-ориентированном языкепрограммирования. Одним из наиболее распространенных на сегодняобъектно-ориентированных языков программирования является C#. Язык C# представляет собой мощныйи популярный объектно-ориентированный язык, предназначенный специально дляприменения вместе с .NET. По сравнению с другими объектно-ориентированнымиязыками С# обладает несколькими особенностями:
- Полная поддержкаклассов и объектно-ориентированного программирования, включая наследованиереализации и интерфейсов, виртуальные функции и перегрузку операций.
- Согласованный ичетко определенный набор базовых типов.
- Автоматическаяочистка динамически распределяемой памяти.
- Полная поддержка библиотекибазовых классов .NET наряду с легким доступом к Windows API
- Указатели ипрямой доступ в память при необходимости доступны, но язык спроектирован так,что в большинстве случаев без них можно обойтись.
В качестве средыразработки была выбрана среда Visual Studio 2010, онаявляется универсальной интегрированной средой разработки, обеспечивающаявысокое качество кода. Visual Studio 2010 включает в себя полный набор новых иулучшенных функций, упрощающих все этапы процесса разработки от проектированиядо развертывания.
Для того чтобы создатьтестовую программу необходимо иметь ввиду, что программа создается главнымобразом для пользователя. В зависимости от этого необходимо создать удобный ипонятный пользовательский интерфейс. Также необходимо предусмотреть всевозможности управления приложением, чтобы упростить работу пользователя имаксимально обеспечить эффективность работы.
Крометого, программа должна правильно добавлять данные, редактировать их и выводитьна экран. Также необходимо реализовать поиск записей по имени и по адресу.Найденные записи должны выводиться отдельно от других.
Однимиз важных показателей качества программного обеспечения является удобство егоиспользования. Оно описывается с помощью таких характеристик:
- как понятностьпользовательского интерфейса;
- легкость обученияработе с ним;
- трудоемкостьрешения определенных задач с его помощью;
- производительностьработы пользователя с ПО;
- частота появленияошибок и жалоб на неудобства.
Основныефакторы, с помощью которых можно оценить или даже измерить удобствоиспользования программы, следующие:
- Адекватностьинтерфейса.
Адекватностьпользовательского интерфейса программы — это его соответствие тем задачам,которые пользователи должны и хотели бы решать с ее помощью.
- Производительностьработы пользователей.
Этоколичество однотипных реальных задач, которые пользователь может решить спомощью ПО за единицу времени.
- Скорость обученияновых пользователей.
Этоколичество задач, выполнению которых новый пользователь самостоятельнообучается за единицу времени.
- Эффективностьпредотвращения и преодоления ошибок пользователей.
Этотпоказатель тем лучше, чем реже пользователи ошибаются при работе с данныминтерфейсом и чем меньше времени и усилий требуется для преодоления последствийуже сделанных ошибок.
- Правило доступности.
Системадолжна быть настолько понятной, чтобы пользователь, никогда раньше не видевшийее, но хорошо разбирающийся в предметной области, мог без всякого обученияначать ее использовать.
- Правило эффективности.
Системане должна препятствовать эффективной работе опытных пользователей, работающих сней долгое время.
- Правило непрерывного развития.
Системадолжна способствовать непрерывному росту знаний, умений и навыков пользователяи приспосабливаться к его меняющемуся опыту.
- Правило поддержки.
Системадолжна способствовать более простому и быстрому решению задач пользователя. Этоозначает, прежде всего, что система должна действительно решать задачипользователя. Кроме того, она должна решать их лучше, проще и быстрее, чемимевшиеся до ее появления инструменты и методы.
- Принцип структуризации.
Пользовательскийинтерфейс должен быть целесообразно структурирован. Близкие по смыслу,родственные его части должны быть связаны видимым образом, а независимые —разделены; похожие элементы должны выглядеть похоже, а непохожие — различаться.
- Принцип простоты.
Наиболеераспространенные операции должны выполняться максимально просто. При этомдолжны быть видимые ссылки на более сложные процедуры.
- Принцип видимости.
Всефункции и данные, необходимые для решения определенной задачи, должны бытьвидны, когда пользователь пытается ее решить.
- Принцип обратной связи.
Пользовательдолжен получать сообщения о действиях системы и о важных событиях внутри нее.Сообщения должны быть информативными, краткими, однозначными и написанными наязыке, понятном пользователю.
Исходя из всегоэтого, ставятся основные требования к приложению:
1. Удобный пользовательский интерфейс;
2. Обеспечениегибкости программы для добавления новых функций;
3. Надежностьпрограммы;
Проектирование структуры программы и базовых алгоритмов
Анализируяисходные данные к программе, ставится задача создать иерархию классов «Адресноебюро». Базовым классом в иерархии является абстрактный класс Address, который имеет поля: город(),улица(), дом(), корпус(). Также класс Address включает в себя виртуальные методы: задание (города, улицы,дома и корпуса) – Set(), и получение(города, улицы, дома и корпуса) – Get() – которые впоследствии переопределяются в каждом классе. Все остальныеклассы будут наследоваться от этого класса. В C# существуют два вида наследования: наследование is-a(классическое наследование) и has-a (включение-делегирование). В основномприходится иметь дело с наследованием первого типа. Второй вид встречаетсякрайне редко, но всё же бывает полезен. При классическом наследовании на основесуществующих классов создаются новые, более совершенные классы, добавляютсяновые поля, методы и свойства. Суть наследования включение-делегированиезаключается в том, что один класс поглощает другой. Проще говоря — этоиспользование одного класса в другом.
Вданной курсовой работе используются два вида наследования. От абстрактногокласса Address наследуется класс Flat с помощью классического наследования.Таким образом, класс Flatсодержат собственные поля – фамилия(), имя(), отчество(), и наследуемые поля — город(), улица(), дом(), корпус(), собственные и наследуемые от базового классаAddress методы, впоследствии переопределенныев производном. Аналогично классу Flatнаследуется класс Predpriyatiya.
Единственноеотличие состоит в том, что класс Predpriyatiya содержит в себе класс Podrazdel. Это включение-делегирование. Класс Podrazdel наследуется классически от класса Predpriyatiya.
Иерархияклассов «Адресное бюро» приведена ниже:
/>
Рисунок 1 — Иерархияклассов «Адресное бюро»
На основе иерархииклассов строится алгоритм работы программы:
1) Необходимовыбрать одну из вкладок
a) Если выбранапервая вкладка, то работа происходит с классом «Частные квартиры».
b) Если выбранавторая вкладка, то работа происходит с классом «Предприятия».
c) Если выбранатретья вкладка, то работа происходит с классом «Подразделения».
2) Необходимовыбрать действие, которое нужно совершить с выбранным классом (добавление,удаление, редактирование, поиск)
a) Добавление.Происходит нажатием кнопки «Добавить».
1) Если выбран класс «Частные квартиры»,то добавление происходит в него.
(1) Для началанеобходимо заполнить поля записи: фамилия – textBox1, имя – textBox2, отчество – textBox3,город – textBox4, улица – textBox5, дом – textBox6, корпус – textBox7.
(2) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Частные квартиры».
(3) Экземпляр класса«Частные квартиры» добавляется в конец контейнера List типа «Частные квартиры».
2) Если выбран класс «Предприятия», тодобавление происходит в него.
(1) Для началанеобходимо заполнить поля записи: название предприятия – textBox1, директор предприятия – textBox2, телефон – textBox3, город – textBox4, улица – textBox5,дом – textBox6, корпус – textBox7.
(2) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Предприятия».
(3) Экземпляр класса«Предприятия» добавляется в конец контейнера List типа «Предприятия».
(4) Имя предприятиязаносится в comboBox.
3) Если выбран класс «Подразделения», тодобавление происходит в него.
(1) Для началанеобходимо выбрать из comboBox-а названия предприятия, для которого будут добавлены подразделения.
(2) Заполняются полязаписи: название подразделения – textBox1,зав. отделением – textBox2, ф.и.о. –textBox3, город – textBox4, улица – textBox5, дом – textBox6,корпус – textBox7.
(3) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Подразделения».
(4) Экземпляр класса«Подразделения» добавляется в конец контейнера List типа «Подразделения».
b) Удаление.Происходит нажатием кнопки «Удалить».
1) Если выбран класс «Частные квартиры»,то удаление происходит из него.
(1) Если в списке нетзаписей, программа выдает ошибку.
(2) Выбирается строкас необходимой записью.
(3) Нажимается кнопка«Удалить».
(4) Считываетсяиндекс выбранной строки.
(5) Из контейнеравыбирается запись с данным индексом
(6) Запись удаляется
(7) Происходитобновление таблицы (в цикле перебираются все записи и заново отображаются в dataGridView, последняя строчка dataGridView удаляется).
2) Если выбран класс «Предприятия», тоудаление происходит из него.
(1) Если в списке нетзаписей, программа выдает ошибку.
(2) Выбирается строкас необходимой записью.
(3) Нажимается кнопка«Удалить».
(4) Считываетсяиндекс выбранной строки.
(5) Из контейнеравыбирается запись с данным индексом.
(6) Запись удаляется.
(7) Также удаляютсявсе подразделения этого предприятия.
(8) Удаляется имяпредприятия из comboBox-а.
(9) Происходитобновление таблицы (в цикле перебираются все записи и заново отображаются в dataGridView, последняя строчка dataGridView удаляется).
3) Если выбран класс «Подразделения», тоудаление происходит из него.
(1) Необходимовыбрать из comboBox-а названия предприятия, из которогобудут удалены подразделения.
(2) Если в списке нетзаписей, программа выдает ошибку.
(3) Выбирается строкас необходимой записью.
(4) Нажимается кнопка«Удалить».
(5) Считываетсяиндекс выбранной строки.
(6) Из контейнеравыбирается запись с данным индексом
(7) Запись удаляется
(8) Происходитобновление таблицы (в цикле перебираются все записи и заново отображаются в dataGridView, последняя строчка dataGridView удаляется).
c) Редактирование.Происходит при двойном клике на выбранной записи.
1) Если выбран класс «Частные квартиры»,то происходит редактирование его записей.
(1) При двойном кликепоявляется форма редактирования с текущим состоянием выбранной записи.
(2) В textBox1-7 заносится новое значение записи.
(3) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Частные квартиры».
(4) Поля экземпляраконтейнера List типа «Частные квартиры»заменяются полями экземпляра класса «Частные квартиры».
2) Если выбран класс «Предприятия», топроисходит редактирование его записей.
(1) При двойном кликепоявляется форма редактирования с текущим состоянием выбранной записи.
(2) В textBox1-7 заносится новое значение записи.
(3) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Предприятия».
(4) Поля экземпляраконтейнера List типа «Предприятия»заменяются полями экземпляра класса «Предприятия».
3) Если выбран класс «Подразделения», топроисходит редактирование его записей.
(1) Необходимовыбрать из comboBox-а названия предприятия,подразделения которого будут редактированы.
(2) При двойном кликепоявляется форма редактирования с текущим состоянием выбранной записи.
(3) В textBox1-7 заносится новое значение записи.
(4) После заполненияполей нажимается кнопка «Ок». Заполняется экземпляр класса «Подразделения».
(5) Поля экземпляраконтейнера List типа «Подразделения»заменяются полями экземпляра класса «Подразделения».
d) Поиск. Для поисканеобходимо выбрать с помощью radioButton-а по каким полям он будет происходить (по имени, по адресу).
1) Если выбран класс «Частные квартиры»,то происходит поиск его записей.
(1) Переменной типа string присваивается значение textbox-а.
(2) В циклеперебираются все записи.
(a) Если выбран поискпо имени то сравниваются поля имя, фамилия, отчество.
(b) Если выбран поискпо адресу то сравниваются поля город, улица, дом, корпус.
(3) Если переменнаяравна какому-либо полю, то эта запись выводится в dataGridView.
2) Если выбран класс «Предприятия», топроисходит поиск его записей.
(1) Переменной типа string присваивается значение textbox-а.
(2) В циклеперебираются все записи.
(a) Если выбран поискпо имени, то сравнивается поле название предприятия.
(b) Если выбран поискпо адресу то сравниваются поля город, улица, дом, корпус.
(3) Если переменнаяравна какому-либо полю, то эта запись выводится в dataGridView.
Программнаяреализация разработанной структуры и алгоритмов
Для реализации данногоприложения было использовано 2 формы: главная форма приложения, гдеотображаются введенные данные, и осуществляется поиск записей; и форма длядобавления и редактирования записей.
Для оформления главнойформы был использован компонент TabControl, который содержит 3 вкладки (TabPage). На всех трех вкладках располагается DataGridView. Этот компонент удобен тем, чтоотображает все данные упорядоченно в таблице. В зависимости от выбраннойвкладки появляется та или иная таблица с данными. На первой вкладке TabControl-а отображаются данные класса Flat, на второй – класса Predpriyatiya, на третьей – Podrazdel. Добавление в класс осуществляетсяпосле нажатия кнопки «Добавить». В форме диалога вызывается вторая форма, накоторой находятся 7 текстовых полей — TextBox-ов, в которые пользователи вводят данные о том или иномлице. После заполнения нажимается кнопка «Ок», данные заносятся в экземплярсоответствующего класса, объявленный в этой форме:
FlatAdr = newFlat();
FlatAdr.SetLastName(textBox1.Text);
FlatAdr.SetFirstName(textBox2.Text);
FlatAdr.SetMiddleName(textBox3.Text);
FlatAdr.SetTown(textBox4.Text);
FlatAdr.SetStreet(textBox5.Text);
FlatAdr.SetNumber(Convert.ToUInt32(textBox6.Text));
FlatAdr.SetKorpus(Convert.ToUInt32(textBox7.Text));
Если были заполнены невсе поля, программа вызовет MessageBox с ошибкой. Далее данные передаются из формы добавления в главную форму.После добавления данные заносятся в специальный контейнер List. В угловых скобках пишетсятип данных этого контейнера. В зависимости от того какая вкладка была активной,данные добавляются в соответствующий класс. Функция добавления приведена ниже:
switch(tabControl1.SelectedIndex)
{case 0:
list.Add(form.FlatAdr);
dataGridView1.Rows.Add();
dataGridView1.Rows[list.Count- 1].Cells[0].Value = list[list.Count — 1].LastName;
dataGridView1.Rows[list.Count- 1].Cells[1].Value = list[list.Count — 1].FirstName;
dataGridView1.Rows[list.Count- 1].Cells[2].Value = list[list.Count — 1].MiddleName;
dataGridView1.Rows[list.Count- 1].Cells[3].Value = list[list.Count — 1].Town;
dataGridView1.Rows[list.Count- 1].Cells[4].Value = list[list.Count — 1].Street;
dataGridView1.Rows[list.Count- 1].Cells[5].Value = list[list.Count — 1].Number.ToString();
dataGridView1.Rows[list.Count- 1].Cells[6].Value = list[list.Count — 1].Korpus.ToString();
break;}
Для того чтобы удалитьзапись, нужно выбрать из таблицы необходимую строку. Программа считывает номерактивной строки и присваивает его переменной. Затем встроенная функцияконтейнера Remove() удаляет элемент с указанным индексом. Далее обновляютсяданные в таблице. Функция удаления приведена ниже:
numb =Convert.ToInt32(dataGridView1.CurrentRow.Index);
list.Remove(list[numb]);
if (list.Count!= 0)
dataGridView1.Rows.RemoveAt(list.Count- 1);
else
dataGridView1.Rows.RemoveAt(0);
for (int k =0; k
{dataGridView1.Rows[k].Cells[0].Value= list[k].LastName;
dataGridView1.Rows[k].Cells[1].Value= list[k].FirstName;
dataGridView1.Rows[k].Cells[2].Value= list[k].MiddleName;
dataGridView1.Rows[k].Cells[3].Value= list[k].Town;
dataGridView1.Rows[k].Cells[4].Value= list[k].Street;
dataGridView1.Rows[k].Cells[5].Value= list[k].Number.ToString();
dataGridView1.Rows[k].Cells[6].Value= list[k].Korpus.ToString();}
Функция редактированияаналогична функции добавления. Двойным кликом по редактируемой строкевызывается форма Добавления (Редактирования). Этой форме передаются текущеезначение данных. Далее данные редактируются и передаются главной форме. Принципредактирования аналогичен добавления. Из TextBox-ов данные заносятся в экземпляр класса, затем полязаписей в контейнере заменяются полями экземпляра класса. Таблица обновляется.Функция редактирования:
numb1 =Convert.ToInt32(dataGridView1.CurrentRow.Index);
form.textBox1.Text= list[numb1].LastName;
form.textBox2.Text= list[numb1].FirstName;
form.textBox3.Text= list[numb1].MiddleName;
form.textBox4.Text= list[numb1].Town;
form.textBox5.Text= list[numb1].Street;
form.textBox6.Text= list[numb1].Number.ToString();
form.textBox7.Text= list[numb1].Korpus.ToString();
form.ShowDialog();
list[numb1].LastName= form.FlatAdr.LastName;
list[numb1].FirstName= form.FlatAdr.FirstName;
list[numb1].MiddleName= form.FlatAdr.MiddleName;
list[numb1].Town= form.FlatAdr.Town;
list[numb1].Street= form.FlatAdr.Street;
list[numb1].Number= form.FlatAdr.Number;
list[numb1].Korpus= form.FlatAdr.Korpus;
dataGridView1.Rows[numb1].Cells[0].Value= list[numb1].LastName;
dataGridView1.Rows[numb1].Cells[1].Value= list[numb1].FirstName;
dataGridView1.Rows[numb1].Cells[2].Value= list[numb1].MiddleName;
dataGridView1.Rows[numb1].Cells[3].Value= list[numb1].Town;
dataGridView1.Rows[numb1].Cells[4].Value= list[numb1].Street;
dataGridView1.Rows[numb1].Cells[5].Value= list[numb1].Number.ToString();
dataGridView1.Rows[numb1].Cells[6].Value= list[numb1].Korpus.ToString();
В приложении реализованпоиск по имени (radioButton1) илипо адресу (radioButton2). Компонент RadioButton позволяет пользователю выбратьединственный вариант из группы доступных, когда используется вместе с другимиэлементами управления RadioButton. Если необходимо осуществить поиск по имени,то выбирается radioButton1, в TextBox1 вводится информация для поиска, нажимается кнопка«Искать». Информация для поиска заносится в переменную типа string. Затем в цикле перебираются всезаписи данного класса и сравнивается поле имя, фамилия, отчество (либо толькоимя) с этой переменной. Поиск по имени выглядит так:
if(radioButton1.Checked == true)
{for (int i =0; i
{if((list[i].LastName == search) || (list[i].FirstName == search) ||(list[i].MiddleName == search))
{dataGridView1.Rows.Add();
dataGridView1.Rows[k1].Cells[0].Value= list[i].LastName;
dataGridView1.Rows[k1].Cells[1].Value= list[i].FirstName;
dataGridView1.Rows[k1].Cells[2].Value= list[i].MiddleName;
dataGridView1.Rows[k1].Cells[3].Value= list[i].Town;
dataGridView1.Rows[k1].Cells[4].Value= list[i].Street;
dataGridView1.Rows[k1].Cells[5].Value= list[i].Number.ToString();
dataGridView1.Rows[k1].Cells[6].Value= list[i].Korpus.ToString();
k1++;}}}
Поиск по адресуаналогичен поиску по имени, только сравниваются поля город, улица, дом, корпус.Поиск по адресу:
if(radioButton2.Checked == true)
{for (int i =0; i
{if((list[i].Town == search) || (list[i].Street == search) ||(list[i].Number.ToString() == search) || (list[i].Korpus.ToString() == search))
{dataGridView1.Rows.Add();
dataGridView1.Rows[k1].Cells[0].Value= list[i].LastName;
dataGridView1.Rows[k1].Cells[1].Value= list[i].FirstName;
dataGridView1.Rows[k1].Cells[2].Value= list[i].MiddleName;
dataGridView1.Rows[k1].Cells[3].Value= list[i].Town;
dataGridView1.Rows[k1].Cells[4].Value= list[i].Street;
dataGridView1.Rows[k1].Cells[5].Value= list[i].Number.ToString();
dataGridView1.Rows[k1].Cells[6].Value= list[i].Korpus.ToString();
k1++;}}}
Найденные записиотображаются в таблице отдельно от других записей. Если после поиска необходимоотобразить все записи, нужно нажать кнопку «Все записи».
Руководствопрограммиста
Приложение «Адресноебюро» предназначено для хранения данных о частных лицах или предприятиях и ихадресах, для быстрого их поиска. В данном приложении реализовано добавление,удаление, редактировании и поиск информации. Программа была разработана винтегрированной среде программирования MicrosoftVisual Studio 2010. Приложение состоит из исполнимого модуля Kursach.exe, файла главной формы Form.cs, файла формы добавления Added.cs. Данная программатестировалась на компьютере следующей конфигурации:
1. Процессор Intel(R)Core(TM) i3 CPU M330 @2.13 GHz 2.13 GHz
2. ОЗУ 2.00ГБ
3. ОС Windows 7 Максимальная 32-разрядная
Для выполнения программынеобходимо наличие:
1. процессор AMD Athlon 64 или Pentium
2. оперативнаяпамять не менее 64 Мб
3. жесткий дискемкостью не менее 1 Гб
4. экран разрешениемне менее 800 х 600 точек
5. клавиатура, мышь
6. установленнаяоперационная система, Windows Me, Windows 2000, Windows XP, WindowsVista, Windows 7 + наличие дисковода.
Все современныекомпьютеры удовлетворяют данным требованиям.
Программа состоит из трехосновных частей: иерархия классов, главная форма, форма добавления. Основуглавной формы составляют функции добавления, удаления, редактирования и поиска.
Руководствопользователя
Для того чтобы запуститьприложение, необходимо открыть исполнительный файл Kursach.exe. После этого появитсяглавная форма программы, на которой находятся три вкладки с таблицами, кнопки«Добавить», «Удалить», «Искать» и «Список». Для работы с разными классаминеобходимо для начала выбрать активной одну из закладок. По умолчанию активнойявляется первая закладка. После того как закладка выбрана можно работать склассами.
Длядобавления записи необходимо нажать кнопку «Добавить», после чего появитсяформа добавления. Затем нужно заполнить все поля и нажать кнопку «Ок». Если незаполнены все поля, то программа выдаст сообщение об ошибке и предложитзаполнить все поля. При желании возможно отказаться от добавления и нажатькнопку «Отмена». После добавления запись автоматически отображается в таблице.
Для удалениязаписи необходимо выделить строку и нажать кнопку «Удалить». Если записей втаблице нет, то при попытке нажать кнопку «Удалить», программа выдаст сообщениеоб ошибке.
Для тогочтобы отредактировать запись, необходимо кликнуть два раза по выбранной строкев таблице. Появится форма, которая будет содержать текущее значение записи. Принеобходимости можно исправить эту информацию и нажать кнопку «Ок». Данныеобновятся в таблице.
Для поисканеобходимо выбрать, по каким параметрам он будет осуществляться, и ввестиинформацию в текстовое поле. Найденные записи будут выведены в таблице. Принеобходимости можно отобразить весь список записей. Для этого нужно нажатькнопку «Все записи».