Разработка автоматизированной информационной системы "Журнал преподавателей"

Объектно-ориентированное программирование как новый подход к созданию приложений. Разработка Windows-приложения для поиска информации в хэш-таблице. Анализ использования хеширования для поиска данных и линейного зондирования для разрешения конфликтов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 06.03.2016
Размер файла 915,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

После чего данные функции были реализованы на объектно-ориентированном языке программирования C#. Был создан класс HashTable с основными методами Add, Search, Deleted.

На основе полученного класса HashTable было разработано Windows-forms приложение - "Справочно-информационная система "Журнал преподавателей"".

Приложение позволяет добавлять записи, заменять и удалять преподавателя. Также предусмотрена возможность демонстрации перегруженных операторов, поиска элементов по ключу и представление хеш-таблицы.

Данная курсовая работа даёт возможность глубже изучить пройденный материал, позволяет закрепить навыки решения поставленной задачи и научиться поиску необходимой для этого информации, а так же помогает освоить на практике все теоретические знания работы с хеш-таблицами.

Список использованных источников

1. Язык программирования и программа // Новосибирский государственный технический университет [Электронный ресурс]. - 2010. - Режим доступа: http://ermak.cs.nstu.ru/cprog/html/011.htm. - Дата доступа: 21.05.2014.

2. Узунов, В. Новые подходы и инструменты разработки программного обеспечения / В. Узунов // Дистанционное обучение [Электронный ресурс]. - 2010. - Режим доступа: http://vit.iatp.by/software/s2_4.htm. - Дата доступа: 12.04.2014.

3. Объектно-ориентированное программирование // Википедия - свободная энциклопедия [Электронный ресурс]. - 2001. - Режим доступа: http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование. - Дата доступа: 14.05.2014.

4. Основные концепции объектно-ориентированного программирования. Поля и свойства // Мехатроника [Электронный ресурс]. - 2011. - Режим доступа: http://mehatronics.ru/2011/01/основные-концепции-ооп-поля-и-свойства/. - Дата доступа: 22.05.2014.

5. Троелсен, Э. Язык программирования C# 2010 и платформа.NET 4.0 / Э. Троелсен - М.: Издательский дом "Вильямс", 2010. - 1392 с.

6. Фаронов, В. Программирование на языке C# / В. Фаронов - СПб.: Питер, 2007. - 240 с.

Приложение А. Текст программы класса Kafedra.cs

using System;

using System.Windows.Forms;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace WindowsFormsApplication2.Classes

{

[Serializable]

/// <summary>

/// Класс кафедра

/// </summary>

public class Kafedra

{

public static Kafedra[] s;

#region Поля класса Кафедра

/// <summary>

/// Полное название

/// </summary>

string fullNameKafedra;

/// <summary>

/// Имя факультета

/// </summary>

string Faculty;

/// <summary>

/// Колличество преподователей на кафедре

/// </summary>

double NumberOfLecture;

/// <summary>

/// Объект класса преподователь

/// </summary>

public List<Lecturer> LecturerList = new List<Lecturer>();

#endregion

#region Свойства

public string FullNameKafedra

{

get { return fullNameKafedra; }

set { fullNameKafedra = value; }

}

public double namberOfLecture

{

get { return NumberOfLecture; }

set { NumberOfLecture = value; }

}

public string faculty

{

get { return Faculty; }

set { Faculty = value; }

}

#endregion

public Kafedra() { }

public Kafedra(string FullNameKafedra, double namberOfLecture, string faculty)

{

fullNameKafedra = FullNameKafedra;

NumberOfLecture = namberOfLecture;

Faculty = faculty;

}

public void readFromTable(DataGridViewRow dr)

{

Lecturer p = new Lecturer();

p.name = dr.Cells[0].Value.ToString();

p.LengthOfWork = Convert.ToInt32(dr.Cells[1].Value);

p.discipline = dr.Cells[2].Value.ToString();

p.loadOnDiscipline = Convert.ToDouble(dr.Cells[3].Value);

p.disciplineEnum = (Lecturer.Enum)Enum.Parse(typeof(Lecturer.Enum),dr.Cells[4].

Value.ToString());

Kafedra k = new Kafedra();

k.fullNameKafedra = dr.Cells[5].Value.ToString();

k.NumberOfLecture = Convert.ToInt32(dr.Cells[6].Value);

k.Faculty = dr.Cells[7].Value.ToString();

k.LecturerList.Add(p);

Home.KafedraList.Add(k);

}

public void writeToTable(DataGridViewRow dr)

{

dr.Cells[5].Value = FullNameKafedra;

dr.Cells[6].Value = LecturerList.Count;

dr.Cells[7].Value = Faculty;

}

public void writeToTableAdd(DataGridViewRow dataGridViewRow)

{

dataGridViewRow.Cells[0].Value = FullNameKafedra;

dataGridViewRow.Cells[2].Value = LecturerList.Count;

dataGridViewRow.Cells[1].Value = Faculty;

}

}

Приложение Б. Текст программы класса Lecturer.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace WindowsFormsApplication2.Classes

{

[Serializable]

/// <summary>

/// Класс преподаватель

/// </summary>

public class Lecturer

{

string Name; //ФИО преподавателя

double LoadOnDisciplined; //нагрузка

string Discipline; //дисциплина

public int LengthOfWork; //стаж работы

/// <summary>

/// Вид контроля

/// </summary>

public enum Enum { Зачет, Экзамен };

public Enum DisciplineEnum;

public string name

{

get { return Name; }

set { Name = value; }

}

public int lengthOfWork

{

get { return LengthOfWork; }

set { LengthOfWork = value; }

}

public double loadOnDiscipline

{

get { return LoadOnDisciplined; }

set { LoadOnDisciplined = value; }

}

public string discipline

{

get { return Discipline; }

set { Discipline = value; }

}

public Enum disciplineEnum

{

get { return DisciplineEnum; }

set { DisciplineEnum = value; }

}

public Lecturer(){}

public Lecturer(string name, int lengthOfWork, string discipline, double loadOnDiscipline, string P)

{

Name = name;

LengthOfWork = lengthOfWork;

Discipline = discipline;

LoadOnDisciplined = Convert.ToInt32(loadOnDiscipline);

if(P==Convert.ToString(Enum.Зачет))

DisciplineEnum = Enum.Зачет;

if (P == Convert.ToString(Enum.Экзамен))

DisciplineEnum = Enum.Экзамен;

}

public void writeToTable(DataGridViewRow dr)

{

dr.Cells[0].Value = Name;

dr.Cells[1].Value = LengthOfWork;

dr.Cells[2].Value = Discipline;

dr.Cells[3].Value = LoadOnDisciplined;

dr.Cells[4].Value = DisciplineEnum;

}

#region Перегрузки операторов

public static Lecturer operator +(Lecturer a, Lecturer b)

{

Lecturer result = new Lecturer(a.name + " и " + b.name,a.lengthOfWork, a.discipline, a.loadOnDiscipline + b.loadOnDiscipline, Convert.ToString(a.disciplineEnum));

return result;

}

public static bool operator >(Lecturer a, Lecturer b)

{

if (a.LoadOnDisciplined > b.LoadOnDisciplined) return true;

else return false;

}

public static bool operator <(Lecturer a, Lecturer b)

{

if (a.LoadOnDisciplined < b.LoadOnDisciplined) return true;

else return false;

}

public static Lecturer operator ++(Lecturer a)

{

a.loadOnDiscipline++;

return a;

}

#endregion

}

}

Приложение В. Текст программы класса HashTable.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace WindowsFormsApplication2.Classes

{

public class HashTable

{

string Key;

Lecturer l;

public HashTable()

{

Key = "";

l = null;

}

public string Hashkey

{

get { return Key; }

set { Key = value; }

}

public Lecturer Value

{

get { return l; }

set { l = value; }

}

/// <summary>

/// Хеш-функция

/// </summary>

public static int Hash(string key, int M)

{

int h = 0, a = 127;//число основания

for (int i = 0; i < key.Length; i++)

h = (a * h + key[i]) % M;

return h;

}

/// <summary>

/// Добавление элемента

/// </summary>

/// <param name="key">Ключ</param>

/// <param name="lec"></param>

/// <param name="H">Хеш-таблица</param>

public static void Add(string key, Lecturer lec, HashTable [] H)

{

int i = 0, j = 0, f = 0, l = 0;

j = Hash(key, H. Length);

l = j;

while (f == 0 && i < H. Length)

{

if (H[l].Hashkey == "")

{

H[l].Hashkey = key;

H[l].Value= lec;

f = 1;

}

else

{

i++;

l = j+1;

if (l >= H. Length) l = l % H. Length;

}

}

}

/// <summary>

/// Поиск элемента

/// </summary>

/// <param name="key">Ключ</param>

/// <param name="H">Хеш-таблица</param>

/// <returns></returns>

public static int Find(string key, HashTable[] H)

{

int f = 0, i = 0, j = 0, l = 0;

j = Hash(key, H. Length);

l = j;

while (f == 0 && i < H. Length)

{

if (H[l].Hashkey == key)

f = 1;

else

{

i++;

l = j + 1;

if (l >= H. Length) l = l % H. Length;

}

}

if (f == 0) return (-1);

else return (l);

}

/// <summary>

/// Удаление

/// </summary>

/// <param name="key">Ключ</param>

/// <param name="H">Хеш-таблица</param>

public static void Del(string key, HashTable[] H)

{

int l = 0;

l = Find(key, H);

H[l].Hashkey ="";

H[l].Value = null;

//}

}

/// <summary>

/// Замена элемента таблицы

/// </summary>

/// <param name="key">Ключ</param>

/// <param name="credit">Значение</param>

/// <param name="H">Хеш-таблица</param>

public static void Zam(string key, Lecturer lec, HashTable[] H)

{

int l = 0;

l = Find(key, H);

H[l].Value= lec;

H[l].Key=lec.name;

}

}

}

Приложение Г. Руководство программиста

1. Назначение и условия применения программы

Программа "Журнал преподавателей" предназначена для хранения, добавления, удаления, поиска и изменения данных об преподавателях и кафедрах, на которых находятся преподаватели.

2. Характеристики программы

Минимальный необходимый объем оперативной памяти 256 Мб. Требуемые периферийные устройства: монитор, клавиатура, мышь. Поддержка Microsoft .NET Framework не ниже версии 4.5.

3. Обращение к программе

Для запуска приложения требуется запустить файл WindowsFormsApplication2\bin\Debug\WindowsFormsApplication2.exe. Все действия производятся нажатием соответствующих кнопок приложения.

4. Входные и выходные данные

Входные и выходные данные в программе считываются и сохраняются в формате xml.

5. Сообщения

При выводе сообщения вида "Ошибка: Неверный ввод данных!" требуется:

- Проверить все ли поля заполнены;

- Проверить заполнены ли поля ФИО, дисциплина, название кафедры и название факультета русскими буквами и прописная ли первая буква;

- Проверить, не имеют ли поля Стаж работы, Нагрузка на дисциплину отрицательные значения.

Приложение Е. Руководство пользователя

1. Введение

Областью применения программы являются Университет, колледж, сфера преподавательской деятельности. Возможности программы:

- Добавление данных;

- Удаление данных;

- Поиск данных;

- Замена данных.

2. Назначение и условия применения

Для работы с приложением необходим средний уровень подготовки пользователя. Перед началом работы с программой пользователю необходимо изучить "Руководство пользователя", "Руководство программиста" и подраздел 3.2.

Данная программа предназначена для чтения, создания и редактирования файла, хранящего записи об преподавателях и кафедр.

Для работы достаточно иметь ЭВМ с современной офисной конфигурацией. Минимальные технические требования: минимальный необходимый объем оперативной памяти 256 Мб; требуемые периферийные устройства: монитор, клавиатура, мышь; поддержка Microsoft .NET Framework не ниже версии 4.5.

Специальной подготовки специалистов не требуется.

3. Подготовка к работе

Для запуска приложения требуется запустить файл WindowsFormsApplication2\bin\Debug\WindowsFormsApplication2.exe.

4. Аварийные ситуации

В случае аварийной ситуации работы приложения требуется его перезапуск.

Приложение Ж. Схема классов

Рисунок Ж.1 - Диаграмма зависимостей классов

Размещено на Allbest.ru


Подобные документы

  • Сущность объектно-ориентированного подхода в программировании. Описание языков программирования. Использование бинарных деревьев для поиска данных, алгоритмы их обхода. Разработка Windows-приложения автоматизированной системы "Планета животных".

    курсовая работа [3,7 M], добавлен 16.09.2016

  • Использование хеширования для поиска данных. Хеширование и хеш-таблицы. Способы разрешения конфликтов. Использование средств языка программирования в работе с хеш-таблицами. Описание разработанного приложения. Структура программы. Инструкция пользователя.

    курсовая работа [1,1 M], добавлен 19.08.2016

  • Назначение создания информационной системы "Электронный журнал" для автоматизации контроля учебного процесса. Построение логической и реляционной моделей данных. Разработка клиент-серверного приложения для работы с базой данных; программная реализация.

    дипломная работа [5,9 M], добавлен 19.01.2017

  • Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.

    учебное пособие [1,6 M], добавлен 28.12.2013

  • Разработка web-приложения для оперирования данными с помощью базы данных и web-браузера в качестве клиента пользователя. Основные преимущества языка программирования Java. Осуществление редактирования, добавления информации и поиска по архивам данных.

    дипломная работа [2,1 M], добавлен 30.09.2016

  • Анализ входной информации и процессов, уровня автоматизации на предприятии. Выявление объекта и задачи автоматизации. Разработка концепции построения информационной модели информационной системы. Разработка структуры базы данных и клиентского приложения.

    дипломная работа [2,0 M], добавлен 22.11.2015

  • Использование информационной системы отдела кадров предприятия для уменьшения времени выполнения функций, автоматического создания документации, проставления дат и табельных номеров, простоты поиска. Интерфейс программы и структура базы данных приложения.

    курсовая работа [254,7 K], добавлен 25.03.2011

  • Разработка приложений баз данных Delphi. Построение концептуальной модели, атрибуты сущностей и связей. Проектирование приложения для ведения базы данных телефонных номеров с возможностью поиска по всем имеющимся полям. Тестирование программного средства.

    курсовая работа [641,7 K], добавлен 17.08.2013

  • Методы хеширования данных и реализация хеш-таблиц. Разработка на языке программирования высокого уровня программы с функциями создания хеш-таблицы, добавления в нее элементов, их просмотра, поиска и удаления. Экспериментальный анализ хеш-функции.

    лабораторная работа [231,9 K], добавлен 18.06.2011

  • Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.

    курсовая работа [3,3 M], добавлен 15.09.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.