50296 (Разработка структуры класса "Адресное бюро")

2016-07-30СтудИзба

Описание файла

Документ из архива "Разработка структуры класса "Адресное бюро"", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50296"

Текст из документа "50296"

Курсовой проект на тему:

Разработка структуры класса "Адресное бюро"

Муром 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. Необходимо выбрать одну из вкладок

    1. Если выбрана первая вкладка, то работа происходит с классом «Частные квартиры».

    2. Если выбрана вторая вкладка, то работа происходит с классом «Предприятия».

    3. Если выбрана третья вкладка, то работа происходит с классом «Подразделения».

  2. Необходимо выбрать действие, которое нужно совершить с выбранным классом (добавление, удаление, редактирование, поиск)

    1. Добавление. Происходит нажатием кнопки «Добавить».

      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<> типа «Подразделения».

    2. Удаление. Происходит нажатием кнопки «Удалить».

      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 удаляется).

    3. Редактирование. Происходит при двойном клике на выбранной записи.

      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<> типа «Подразделения» заменяются полями экземпляра класса «Подразделения».

    4. Поиск. Для поиска необходимо выбрать с помощью radioButton-а по каким полям он будет происходить (по имени, по адресу).

      1. Если выбран класс «Частные квартиры», то происходит поиск его записей.

        1. Переменной типа string присваивается значение textbox-а.

        2. В цикле перебираются все записи.

          1. Если выбран поиск по имени то сравниваются поля имя, фамилия, отчество.

          2. Если выбран поиск по адресу то сравниваются поля город, улица, дом, корпус.

        3. Если переменная равна какому-либо полю, то эта запись выводится в dataGridView.

      2. Если выбран класс «Предприятия», то происходит поиск его записей.

        1. Переменной типа string присваивается значение textbox-а.

        2. В цикле перебираются все записи.

          1. Если выбран поиск по имени, то сравнивается поле название предприятия.

          2. Если выбран поиск по адресу то сравниваются поля город, улица, дом, корпус.

        3. Если переменная равна какому-либо полю, то эта запись выводится в dataGridView.

Программная реализация разработанной структуры и алгоритмов

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