Курсовой проект на тему:
Разработка структуры класса "Адресное бюро"
Муром 2010
Данный курсовой проект направлен на создание иерархии классов «Адресное бюро», содержащую информацию о частных лицах, предприятиях и их адресах, а также разработку тестирующего приложения, позволяющего быстро и без особых усилий получить данные об интересующем лице.
Введение
С развитием ЭВМ и информатизацией общества возникает вопрос о компьютеризации большого количества данных, для удобства их использования. К тому же это делает их более доступными и упорядоченными.
Данный курсовой проект позволит заменить большое количество бумаг и сделает поиск более удобным и быстрым, тем самым сэкономит время.
В связи с этим была определена цель - разработать иерархию классов «Адресное бюро», в которой будет храниться информация о лицах и организациях, а также их адресах.
Существует множество специализированных программ, позволяющих компьютеризировать огромное количество данных о лицах, организациях и их адресах. Отличительной особенностью данной программы является простота интерфейса, наглядное отображение данных, быстрый поиск по всем полям записи. Найденные записи отфильтровываются от других. Может использоваться как электронный справочник любой другой информации. Тема курсового проекта является актуальной, потому что данное приложение значительно облегчает работу с большим количеством данных.
Основная задача курсового проекта - разработка приложения на основе иерархии классов, для введения данных об адресах частных лиц и предприятий, которое позволит осуществлять мгновенный поиск данных о любых лицах.
Анализ технического задания
В курсовом проекте поставлена задача создания универсального приложение на основе разработанной иерархии классов. Исходя из основной задачи проекта, были поставлены следующие задачи:
- Разработка иерархии классов, которая должна содержать не менее трех уровней;
- Разработка структуры каждого класса в отдельности;
- С помощью наследования определение базовых и производных классов;
Требуется создать программу, которая смогла бы обрабатывать данные независимо от их количества. Данный справочник адресов может применяться в любой справочной системе.
Для удобной работы с большим количеством данных необходимо их упорядочить. Для этого следует разбить их на несколько небольших групп с общими свойствами и далее работать с ними отдельно. Необходимо предусмотреть обработку каждой группы данных.
Требования, предъявляемые к программе, предполагают использование объектно-ориентированного подхода при разработке программы. Объектно-ориентированный подход делает реализованное приложение более гибким и универсальным. При необходимости возможно дополнять приложение различными свойствами и функциями. Данную программу можно разработать на любом объектно-ориентированном языке программирования. Одним из наиболее распространенных на сегодня объектно-ориентированных языков программирования является C#. Язык C# представляет собой мощный и популярный объектно-ориентированный язык, предназначенный специально для применения вместе с .NET. По сравнению с другими объектно-ориентированными языками С# обладает несколькими особенностями:
- Полная поддержка классов и объектно-ориентированного программирования, включая наследование реализации и интерфейсов, виртуальные функции и перегрузку операций.
- Согласованный и четко определенный набор базовых типов.
- Автоматическая очистка динамически распределяемой памяти.
- Полная поддержка библиотеки базовых классов .NET наряду с легким доступом к Windows API
- Указатели и прямой доступ в память при необходимости доступны, но язык спроектирован так, что в большинстве случаев без них можно обойтись.
В качестве среды разработки была выбрана среда VisualStudio 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 - Иерархия классов «Адресное бюро»