Разработка автоматизированной информационной системы "Журнал преподавателей"
Объектно-ориентированное программирование как новый подход к созданию приложений. Разработка 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