Разработка базы данных "Система ДГТУ"
Исследование процесса разработки базы данных, позволяющей определять состояние кафедр и факультетов Дагестанского государственного технического университета. Характеристика иерархической, сетевой, реляционной, даталогической и физической моделей данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.02.2012 |
Размер файла | 156,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОУ ВПО «ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ В ЭКОНОМИКЕ
КУРСОВАЯ РАБОТА
по дисциплине: «База данных»
на тему: «Разработка базы данных “Система ДГТУ” »
Выполнила: студентка Гулеватая Е.В.
Руководитель: Ярахмедова Н.Я.
Махачкала 2007 г.
Содержание
Аннотация
Постановка задачи
Введение
1. Анализ предметной области
1.1 Общие сведения о ДГТУ
1.2 ДГТУ Факультеты
2. Среда разработки Borland С++ Builder
3. Базы данных
4. Модели данных
4.1 Описание моделей данных
4.2 Иерархическая модель
4.3 Сетевая модель
4.4 Реляционная модель
4.5 Инфологическая модель
4.6 Даталогическая модель
4.7 Физическая модель
5. Проектирование базы данных
5.1 Инфологическая модель
5.2 Даталогическая модель
5.3 Описание команд
6. Программа
7. Модули программы
8. Вычислительная техника
Заключение
Список литературы
Аннотация
Данная курсовая работа посвящена разработке базы данных, позволяющей определять состояние кафедр и факультетов Дагестанского государственного технического университета. База данных проектировалась для использования в системе управления ДГТУ.
Учет состояния кафедр и факультетов позволяет выявить произведенные изменения в системе ДГТУ. Другими словами помогает получить сведения о существующих кафедрах и факультетах, и о недавно сформированных.
Для создания данной базы данных был выбран язык программирования С++ Builder, так как является наиболее подходящим для данного проекта, и реализует разработанный алгоритм. Полученная программа работает с базой данных, которая позволяет редактировать, добавлять и удалять существующие поля, а так же осуществлять фильтрацию, поиск данных и просмотр отчетов с последующей распечаткой.
база иерархический реляционный сетевой
Постановка задачи
Разработать базу данных «Система ДГТУ» на базе кафедр и факультетов технического университета. Описать алгоритмы и процедуры обработки данных. Осуществить добавление, изменение, удаление, фильтрацию и поиск данных, вывод данных на печать и просмотр отчетов.
Введение
В современном мире значительно увеличилась роль информации в самом широком смысле этого слова и связанных с ней информационных технологий. Очень часто приходится иметь дело с большим объемом данных, которые необходимо обрабатывать, дополнять, изменять и осуществлять по ним поиск. Для того чтобы эти процессы протекали быстро и не требовали больших затрат времени, необходимо структурировать данные.
Широкая потребность в автоматизированной обработке массовой информации на ЭВМ выдвинула потребность и в специализированных языках обработки данных. Данные специализированные средства включаются в состав систем управления базами данных (СУБД).
В СУБД содержаться сформированные пакеты, которые дают возможность пользователям осуществлять непосредственное управление данными, а программистам быстро разрабатывать более совершенные программные средства их обработки - приложения. В различных базах данных отражается информация о конкретной предметной области, которая является частью реального мира и представляет интерес для данного исследования. Программы для баз данных пишутся на основе специальных современных языков программирования, которые содержат в себе встроенные возможности для быстрого и удобного создания СУБД.
В данной курсовой работе создана специализированная база данных для учёта кафедр и факультетов ДГТУ, а также рассмотрены основные понятия и принципы, лежащие в основе систем управления базами данных. Согласно заданию была разработана объектно-ориентированная графическая процедура. Была произведена разработка алгоритмов. На основе интегрированной среды программирования Borland С++ Builder, была создана программа, которая работает с базой данных, и позволяет редактировать, удалять и добавлять поля.
1. Анализ предметной области
1.1 Общие сведения о ДГТУ
Дагестанский государственный технический университет сегодня - это учебно-научный университетский комплекс технического профиля, размещенный на площади более 60 тыс. кв. метров, в составе которого функционируют 13 факультетов, в том числе факультет повышения квалификации, 60 кафедр, включая кафедру экологии ЮНЕСКО, отделение довузовской и послевузовской подготовки, филиалы в городах Кизляре, Дербенте и Каспийске. Научные лаборатории ДГТУ оснащены современным оборудованием, имеется библиотека, Интернет-центр и другие подразделения, где обучаются более 10 тыс. студентов.
Ежегодный выпуск специалистов составляет более1000 человек для различных отраслей народного хозяйства, которые вносят значительный вклад в развитие экономики Дагестана и Росси.
В университете работают более 500 преподавателей, в том числе 72 докторов наук, профессоров и 250 кандидатов наук, доцентов, а также 14 академиков и членов-корреспондентов различных академий.
По 29 специальностям открыта аспирантура, а также докторантура по 4 специальностям, функционируют диссертационные советы.
Качество высшего профессионального образования во многом определяется уровнем научного потенциала вуза. В связи с этим основной задачей ДГТУ в научно-исследовательской деятельности является приоритетное развитие научных школ и ведущих научных коллективов на важнейших направлениях развития науки и техники. Сегодня технический университет участвует в следующих российских и международных научно-исследовательских программах: «Конкурс на соискание грантов РФФИ и Минобразования и науки РФ по фундаментальным исследованиям в области естественных наук», «Научные исследования высшей школы по приоритетным направлениям науки и техники», «Инновационная деятельность высшей школы», «Российский фонд фундаментальных исследований», «Интеграция науки и высшего образования России на 2002-2006 гг.», «Федерально-региональная политика в науке и образовании».
На заводах, в НИИ и на предприятиях Республики Дагестан открыты филиалы кафедр университета: ОАО «НИИ «Сапфир» -- кафедра радиотехники; НИИ информатики при правительстве РД -- кафедра вычислительной техники; АО «Дагэнерго» -- кафедра теоретической и общей электротехники; Махачкалинский машиностроительный завод сепараторов -- кафедра экономики и управления на предприятии: проектный институт «Дагагропромпроект»-- кафедра промышленного и гражданского строительства; ОАО «Завод «Дагдизель» -- кафедра технологии машиностроения: Министерство мелиорации и сельскохозяйственного водоснабжения РД -- кафедра мелиорации, рекультивации и охраны земель; Дагестанская таможня -- кафедра таможенного дела; ИСЭИ ДНЦ РАН -- кафедра эконометрики и информационных технологий в налоговом деле. Это позволяет организовать учебный процесс студентов при непосредственном их участии в производстве.
Успешно расширяется спектр специальностей внутри направлений факультетов с учетом спроса и специфики республики. За последние два года открыты новые специальности: математические методы в экономике, налоги и налогообложение, прикладная информатика в юриспруденции, защита в чрезвычайных ситуациях, конструирование швейных изделий, связи с общественностью, экономика и управление на предприятии (строительства), маркетинг, документоведение и документационное обеспечение управления, инноватика (бакалавриат) и др.
В 2000 г. коллектив технического университета успешно прошел аттестацию, лицензирование, аккредитацию и продолжает развивать научно-педагогический потенциал для решения задач по подготовке высококвалифицированных инженеров широкого профиля.
Организационным комитетом Международной академии качества и маркетинга при поддержке Правительства РФ, Государственной думы РФ, Совета Федерации, Российского Союза ректоров вузов России наш университет признан лауреатом конкурса «Золотая медаль "Европейское качество"» в номинации «100 лучших вузов России», а ректору университета Исмаилову Т. А. присвоено почетное звание «Ректор 2004 года».
Золотая медаль «Европейское качество» подтверждается именным сертификатом и является свидетельством признания достижений университета в области науки и образования.
1.2 ДГТУ Факультеты
1. Информатика и управление
2.Строительный
3.Инженерно-экономический
4.Информационные системы
5.Радиотехнический
6.Технологический
7.Гидротехнический
8. Государственное и муниципальное управление
9.Право и таможенное дело
10.Транспортный
11.Социально-гуманитарный
12.ФПКиП
13.Финансы и аудит
2. Среда разработки Borland С++ Builder
Для создания автономного рабочего места можно выбрать программные средства языка « С++ Builder» , которое является одной из наиболее известных СУБД. На рынке программных продуктовестьмного средств для автоматизации программирования. Но по мощности и удобству использования со средой Builder может соперничать лишь Borland Delphi и Microsoft Visual Basic.
« С++ Builder» является мощной системой визуального объектно-ориентированного программирования, которая позволяет работать как с простыми локальными удаленными БД, так и с многозвенными распределенными БД. Она сама и поставляемые с ней программные продукты позволяют решать следующий круг задач:
1. Быстро создавать профессионально выглядящие оконные интерфейсы для приложений даже начинающих программистов.
2. Создавать приложения любой сложности и любого назначения, будь то офисные, бухгалтерские, инженерные, информационно поисковые приложения.
3. Создавать удобный интерфейс любым ранее созданным программам.
4. Создавать собственные библиотеки DLL- компонентов, которые потом можно использовать в других языках программирования.
5. Создавать системы работы с локальными и удаленными БД любых типов.
6. Создавать БД различных типов с помощью инструментария С++ Builder (DataBaseDesktop).
7. Форматировать и печатать из приложения сложные отчеты, включающие в себя таблицы, графики, самого разного обозначения.
8. Связываться со своего приложения с такими продуктами Microsoft как Word, Excel и др.
9. Создавать систему помощи, как для своих приложений, так и для других.
Borland C++Builder 6 - это программа, созданная для управления данными - каталогизации, поддержки, обработки информации и многое другое. Хотя Вы можете производить многие операции базы данных через систему меню и интерфейс, овладение обширными возможностями Borland C++Builder 6 требует некоторого знания лежащего в основе языка программирования.
Приложения в среде Borland С++ Builder 6 строятся в виде специальных конструкций - проектов, которые выглядят для пользователя как совокупность нескольких файлов. Ни одна программа не может существовать вне структуры-проекта. Действия по управлению проектами осуществляет специальный программный комплекс - Менеджер проектов.
3. Базы данных
Базы Данных.
Проектирование баз данных представляет собой длительный, трудоемкий и слабо формализованный процесс, от которого зависит жизнеспособность и эффективность проектируемой базы данных, ее способность к развитию. Важную роль при проектировании базы данных играет методология построения концептуальных моделей предметной области, включающая методы и средства, позволяющие спроектировать базу данных, удовлетворяющую заданным целям и требованиям пользователей и прикладных программистов.
База данных - это набор записей и файлов, организованных специальным образом. В компьютере, например, можно хранить фамилии и адреса друзей или клиентов. Один из типов баз данных - это документы, набранные с помощью текстовых редакторов и сгруппированные по темам. Другой тип - файлы электронных таблиц, объединяемые в группы по характеру их использования.
Современные СУБД являются объектно-ориентированными и реляционными. Основной единицей является объект, имеющий свойства, и связи между объектами. СУБД используют несколько моделей данных: иерархическую и сетевую (с 60-х годов) и реляционную (с 70-х). Основное различие данных моделей в представлении взаимосвязей между объектами.
4. Модели данных
4.1 Описание моделей данных
Современные базы данных основываются на использовании моделей данных, позволяющих описывать объекты предметной области и взаимосвязи между ними.
Существуют 3 основных модели, на которых основываются базы данных: реляционная модель, сетевая и иерархическая.
4.2 Иерархическая модель данных
Строится по принципу иерархии объектов, то есть один тип объекта является главным, все нижележащие - подчиненными. Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные - порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.
4.3 Сетевая модель данных
Строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).
4.4 Реляционная модель данных
Объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных. Описание, выполненное с использованием естественного языка, математических формул, таблиц, графиков и других средств, понятных всем людям, работающих над проектированием базы данных, называют инфологической моделью данных.
Трехуровневая архитектура (инфологический, даталогический и физический уровни) позволяет обеспечить независимость хранимых данных от использующих программ.
4.5 Инфологическая модель
Под инфологической моделью понимают описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от используемых в дальнейшем программных средств.
Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Объект (Сущность) - элемент какой-либо системы, информация о котором сохраняется. Объект может быть как реальным (например, человек), так и абстрактным (например, событие - поступление человека в стационар).
Атрибут - информационное отображение свойств объекта. Каждый объект характеризуется набором атрибутов.
Таблица - упорядоченная структура, состоящая из конечного набора однотипных записей.
Ключ - минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь - ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой.
Первичный ключ - атрибут (или группа атрибутов), позволяющий однозначным образом определить каждую строку в таблице.
Напротив, альтернативный ключ - атрибут (или группа атрибутов), не совпадающий с позволяющим первичным ключом и однозначным образом определяющий каждую строку в таблице.
4.6 Даталогическая модель
Даталогическая модель является моделью логического уровня и представляет собой отображение логических связей между элементами данных без рассмотрения их содержания и среды хранения.
4.7 Физическая модель
Последним этапом проектирования является проектирование физической модели. С появлением персональных компьютеров на базе IBM этот этап фактически перестал существовать, так как операционная система, СУБД автоматически проектирует физическую среду хранения информации. Так СУБД dBASE, FoxPro,Visual FoxPro создают файлы с расширением dbf, Paradox с расширением db
5. Проектирование базы данных
Процесс проектирования БД включает в себя несколько этапов. Для того, чтобы спроектировать структуру БД необходима исходная информация о предметной области.
Инфологическая модель строится первая, затем на её основе строится Даталогическая модель. Физическая и внешняя модель после этого могут строится в любой последовательности.
5.1 Инфологическая модель
Для данной курсовой работы инфологическая модель будет выглядеть следующим образом:
Инфологическая модель
5.2 Даталогическая модель
Таблица 1.
Кафедры |
|||||
№ |
Наименование |
Назначение |
Тип |
Размер |
|
1 |
Poln_naim |
Название кафедры |
A |
55 |
|
2 |
Sokr_naim |
Сокращенное название |
A |
15 |
|
3 |
Status |
Статус кафедры |
A |
30 |
|
4 |
Vip_spec |
Выпускаемая специальность |
A |
70 |
|
5 |
FIO_zav_kaf |
ФИО зав. кафедрой |
A |
40 |
|
6 |
Step_zaved |
Ученая степень заведующего |
A |
30 |
|
7 |
Zvanie_zaved |
Ученое звание заведующего |
A |
15 |
|
8 |
Kod_fac |
Код факультета |
I |
Таблица 2.
Факультеты |
|||||
№ |
Наименование |
Назначение |
Тип |
Размер |
|
1 |
Kod_fac |
Код факультета |
I |
||
2 |
Naim_poln |
Название факультета |
A |
55 |
|
3 |
Naim_sokr |
Сокращенное название |
A |
8 |
|
4 |
FIO_dekana |
ФИО декана |
A |
40 |
|
5 |
Uch_step_dek |
Ученая степень декана |
A |
30 |
|
6 |
Uch_zvanie_dek |
Ученое звание декана |
A |
15 |
|
7 |
Kol_students |
Количество студентов |
I |
||
8 |
Ochniki |
Количество очников |
I |
||
9 |
Zaochniki |
Количество заочников |
I |
||
10 |
God_osnovan |
Год основания факультета |
I |
Распечатки с Database Desktop.
1) По кафедрам.
2) По факультетам.
5.3 Описание команд
В данной курсовой были реализованы следующие команды:
1. Ввод, запись и удаление данных. Данная команда позволяет нам ввести в базу данных сведения о кафедрах и факультетах и сохранить их, либо удалить. Для реализации данных команд используем компоненту Button и в ее событие OnClick запишем в редакторе кода код программы.
2. Фильтрация и поиск. Данная команда позволяет осуществлять фильтрацию и поиск в базе данных по каким-то конкретным данным. В данном случае фильтрация осуществляется по следующим полям: по Статусу кафедры, по Коду факультета, по Году основания факультета и по Количеству студентов.
Поиск осуществляется по Коду факультета и по Сокращенному названию кафедры. Для реализации данных команд используем компоненту RadioGroup и в ее свойстве Items пишем названия полей, по которым будем проводить фильтрацию. Для фильтрации по ученому званию заведующего кафедрой, сокращенному название кафедры и ученой степени декана используем компоненты ComboBox и в свойсве Items компоненты ComboBox пишем ученые звания заведующих, сокращенные названия кафедр и ученые степени деканов. Чтобы провести фильтрацию по количеству студентов используем две компоненты CSpinEdit. В ее свойстве Value первой компоненте CSpinEdit указываем минимальное количество студентов, а во второй компоненте максимальное количество. А также в свойствах MaxValue и MinValue указываем максимальное и минимальное количество студентов. Поиск по полю Код факультета. Для этого используем компоненту Edit.
3. Вывод. Для вывода используем компоненту QuikRep и связываем ее с таблицей с помощью свойства DataSet. Вывод сведений по кафедрам и факультетам осуществляем на отдельных отчетах. Для вывода данных на компаненте ставим компоненту QRSubDetail. На ней ставим компоненту QRDBText. В ее свойстве DataSet указываем нашу таблицу и в свойстве DataField указываем выводимое поле.
6. Программа
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1KetyaKursovaya.h"
#include "Unit2.h"
#include "Unit3.h"
#include "ShellAPI.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
EPoln_naim->Text=Table1Poln_naim->AsString;
EStatus->Text=Table1Status->AsString;
ESokr_naim->Text=Table1Sokr_naim->AsString;
EVip_spec->Text=Table1Vip_spec->AsString;
EFIO_zav_kaf->Text=Table1FIO_zav_kaf->AsString;
EStep_zaved->Text=Table1Step_zaved->AsString;
EKod_fac->Text=IntToStr(Table1Kod_fac->AsInteger);
ENaim_poln->Text=Table2Naim_poln->AsString;
EGod_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);
EKol_students->Text=IntToStr(Table2Kol_students->AsInteger);
EFIO_dekana->Text=Table2FIO_dekana->AsString;
EUch_step_dek->Text=Table2Uch_step_dek->AsString;
EOchniki->Text=IntToStr(Table2Ochniki->AsInteger);
EZaochniki->Text=IntToStr(Table2Zaochniki->AsInteger);
ENaim_sokr->Text=Table2Naim_sokr->AsString;
CZvanie_zaved->ItemIndex=CZvanie_zaved->Items->IndexOf(Table1Zvanie_zaved->AsString);
CUch_zvanie_dek->ItemIndex=CUch_zvanie_dek->Items->IndexOf(Table2Uch_zvanie_dek->AsString);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Table1AfterScroll(TDataSet *DataSet)
{
EPoln_naim->Text=Table1Poln_naim->AsString;
EStatus->Text=Table1Status->AsString;
ESokr_naim->Text=Table1Sokr_naim->AsString;
EVip_spec->Text=Table1Vip_spec->AsString;
EFIO_zav_kaf->Text=Table1FIO_zav_kaf->AsString;
EStep_zaved->Text=Table1Step_zaved->AsString;
EKod_fac->Text=IntToStr(Table1Kod_fac->AsInteger);
ENaim_poln->Text=Table2Naim_poln->AsString;
EGod_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);
EKol_students->Text=IntToStr(Table2Kol_students->AsInteger);
EFIO_dekana->Text=Table2FIO_dekana->AsString;
EUch_step_dek->Text=Table2Uch_step_dek->AsString;
EOchniki->Text=IntToStr(Table2Ochniki->AsInteger);
EZaochniki->Text=IntToStr(Table2Zaochniki->AsInteger);
ENaim_sokr->Text=Table2Naim_sokr->AsString;
CZvanie_zaved->ItemIndex=CZvanie_zaved->Items->IndexOf(Table1Zvanie_zaved->AsString);
CUch_zvanie_dek->ItemIndex=CUch_zvanie_dek->Items->IndexOf(Table2Uch_zvanie_dek->AsString);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Table2AfterScroll(TDataSet *DataSet)
{
EPoln_naim->Text=Table1Poln_naim->AsString;
EStatus->Text=Table1Status->AsString;
ESokr_naim->Text=Table1Sokr_naim->AsString;
EVip_spec->Text=Table1Vip_spec->AsString;
EFIO_zav_kaf->Text=Table1FIO_zav_kaf->AsString;
EStep_zaved->Text=Table1Step_zaved->AsString;
EKod_fac->Text=IntToStr(Table1Kod_fac->AsInteger);
ENaim_poln->Text=Table2Naim_poln->AsString;
EGod_osnovan->Text=IntToStr(Table2God_osnovan->AsInteger);
EKol_students->Text=IntToStr(Table2Kol_students->AsInteger);
EFIO_dekana->Text=Table2FIO_dekana->AsString;
EUch_step_dek->Text=Table2Uch_step_dek->AsString;
EOchniki->Text=IntToStr(Table2Ochniki->AsInteger);
EZaochniki->Text=IntToStr(Table2Zaochniki->AsInteger);
ENaim_sokr->Text=Table2Naim_sokr->AsString;
CZvanie_zaved->ItemIndex=CZvanie_zaved->Items->IndexOf(Table1Zvanie_zaved->AsString);
CUch_zvanie_dek->ItemIndex=CUch_zvanie_dek->Items->IndexOf(Table2Uch_zvanie_dek->AsString);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->Insert();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Table2->Insert();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString s;
const AnsiString s1=",";
s=" ";
if(Table1Poln_naim->AsString!=EPoln_naim->Text)
s="Название кафедры";
if(Table1Status->AsString!=EStatus->Text)
{
if(s!=" ")s+=s1;
s="Статус";
}
if(Table1Sokr_naim->AsString!=ESokr_naim->Text)
{
if(s!=" ")s+=s1;
s="Сокращенное название";
}
if(Table1Vip_spec->AsString!=EVip_spec->Text)
{
if(s!=" ")s+=s1;
s="Выпускаемая специальность";
}
if(Table1FIO_zav_kaf->AsString!=EFIO_zav_kaf->Text)
{
if(s!=" ")s+=s1;
s="ФИО заведующего кафедрой";
}
if(Table1Step_zaved->AsString!=EStep_zaved->Text)
{
if(s!=" ")s+=s1;
s="Степень заведующего кафедрой";
}
if(IntToStr(Table1Kod_fac->AsInteger)!=EKod_fac->Text)
{
if(s!=" ")s+=s1;
s="Код факультета";
}
if(Table1Zvanie_zaved->AsString!=CZvanie_zaved->Text)
{
if(s!=" ")s+=s1;
s="Звание заведующего кафедрой";
}
if(s!=" ")
{
if(Application->MessageBox(
("Действительно хотите изменить запись?"+s+"?").c_str(),
"Подтвердите изменение",
MB_YESNO+MB_ICONQUESTION)==IDYES)
{
Table1->Edit();
Table1Poln_naim->AsString=EPoln_naim->Text;
Table1Status->AsString=EStatus->Text;
Table1Sokr_naim->AsString=ESokr_naim->Text;
Table1Vip_spec->AsString=EVip_spec->Text;
Table1FIO_zav_kaf->AsString=EFIO_zav_kaf->Text;
Table1Step_zaved->AsString=EStep_zaved->Text;
Table1Kod_fac->AsInteger=StrToInt(EKod_fac->Text);
Table1Zvanie_zaved->AsString=CZvanie_zaved->Text;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(Application->MessageBox(
"Действительно хотите удалить запись?",
"Подтвердите решение",
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
Table1->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString s;
const AnsiString s1=",";
s=" ";
if(Table2Naim_poln->AsString!=ENaim_poln->Text)
s="Название факультета";
if(IntToStr(Table2God_osnovan->AsInteger)!=EGod_osnovan->Text)
{
if(s!=" ")s+=s1;
s="Год основания";
}
if(IntToStr(Table2Kol_students->AsInteger)!=EKol_students->Text)
{
if(s!=" ")s+=s1;
s="Количество студентов";
}
if(Table2FIO_dekana->AsString!=EFIO_dekana->Text)
{
if(s!=" ")s+=s1;
s="ФИО декана";
}
if(Table2Uch_step_dek->AsString!=EUch_step_dek->Text)
{
if(s!=" ")s+=s1;
s="Ученое степень декана";
}
if(IntToStr(Table2Ochniki->AsInteger)!=EOchniki->Text)
{
if(s!=" ")s+=s1;
s="Очники";
}
if(IntToStr(Table2Zaochniki->AsInteger)!=EZaochniki->Text)
{
if(s!=" ")s+=s1;
s="Заочники";
}
if(Table2Naim_sokr->AsString!=ENaim_sokr->Text)
{
if(s!=" ")s+=s1;
s="Название сокрощенное";
}
if(Table2Uch_zvanie_dek->AsString!=CUch_zvanie_dek->Text)
{
if(s!=" ")s+=s1;
s="Ученое звание декана";
}
if(s!=" ")
{
if(Application->MessageBox(
("Действительно хотите изменить запись?"+s+"?").c_str(),
"Подтвердите изменение",
MB_YESNO+MB_ICONQUESTION)==IDYES)
{
Table2->Edit();
Table2Naim_poln->AsString=ENaim_poln->Text;
Table2God_osnovan->AsInteger=StrToInt(EGod_osnovan->Text);
Table2Kol_students->AsInteger=StrToInt(EKol_students->Text);
Table2FIO_dekana->AsString=EFIO_dekana->Text;
Table2Ochniki->AsInteger=StrToInt(EOchniki->Text);
Table2Zaochniki->AsInteger=StrToInt(EZaochniki->Text);
Table2Naim_sokr->AsString=ENaim_sokr->Text;
Table2Uch_step_dek->AsString=EUch_step_dek->Text;
Table2Uch_zvanie_dek->AsString=CUch_zvanie_dek->Text;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if(Application->MessageBox(
"Действительно хотите удалить запись?",
"Подтвердите решение",
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
Table2->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RGF1Click(TObject *Sender)
{
if(RGF1->ItemIndex==0)
Table1->Filtered=false;
else
{
if(RGF1->ItemIndex==1)
Table1->Filter="Status='"+CBStatus->Text+"'";
else
{
if(RGF1->ItemIndex==2)
Table1->Filter="(Kod_fac<="+
IntToStr(SEmax1->Value)+")and(Kod_fac>="+
IntToStr(SEmin1->Value)+")";
else
Table1->Filter="Sokr_naim='"+CBSokr_naim->Text+"'";
Table1->Filtered=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CBStatusChange(TObject *Sender)
{
if(RGF1->ItemIndex==0)
Table1->Filtered=false;
else
{
if(RGF1->ItemIndex==1)
Table1->Filter="Status='"+CBStatus->Text+"'";
else
{
if(RGF1->ItemIndex==2)
Table1->Filter="(Kod_fac<="+
IntToStr(SEmax1->Value)+")and(Kod_fac>="+
IntToStr(SEmin1->Value)+")";
else
Table1->Filter="Sokr_naim='"+CBSokr_naim->Text+"'";
Table1->Filtered=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CBSokr_naimChange(TObject *Sender)
{
if(RGF1->ItemIndex==0)
Table1->Filtered=false;
else
{
if(RGF1->ItemIndex==1)
Table1->Filter="Status='"+CBStatus->Text+"'";
else
{
if(RGF1->ItemIndex==2)
Table1->Filter="(Kod_fac<="+
IntToStr(SEmax1->Value)+")and(Kod_fac>="+
IntToStr(SEmin1->Value)+")";
else
Table1->Filter="Sokr_naim='"+CBSokr_naim->Text+"'";
Table1->Filtered=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmin1Change(TObject *Sender)
{
if(RGF1->ItemIndex==0)
Table1->Filtered=false;
else
{
if(RGF1->ItemIndex==1)
Table1->Filter="Status='"+CBStatus->Text+"'";
else
{
if(RGF1->ItemIndex==2)
Table1->Filter="(Kod_fac<="+
IntToStr(SEmax1->Value)+")and(Kod_fac>="+
IntToStr(SEmin1->Value)+")";
else
Table1->Filter="Sokr_naim='"+CBSokr_naim->Text+"'";
Table1->Filtered=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmax1Change(TObject *Sender)
{
if(RGF1->ItemIndex==0)
Table1->Filtered=false;
else
{
if(RGF1->ItemIndex==1)
Table1->Filter="Status='"+CBStatus->Text+"'";
else
{
if(RGF1->ItemIndex==2)
Table1->Filter="(Kod_fac<="+
IntToStr(SEmax1->Value)+")and(Kod_fac>="+
IntToStr(SEmin1->Value)+")";
else
Table1->Filter="Sokr_naim='"+CBSokr_naim->Text+"'";
Table1->Filtered=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RGF2Click(TObject *Sender)
{
if(RGF2->ItemIndex==0)
Table2->Filtered=false;
else
{
if(RGF2->ItemIndex==1)
Table2->Filter="(God_osnovan<="+
IntToStr(SEmax2->Value)+")and(God_osnovan>="+
IntToStr(SEmin2->Value)+")";
else
Table2->Filter="(Kol_students<="+
IntToStr(SEmax3->Value)+")and(Kol_students>="+
IntToStr(SEmin3->Value)+")";
Table2->Filtered=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmin2Change(TObject *Sender)
{
if(RGF2->ItemIndex==0)
Table2->Filtered=false;
else
{
if(RGF2->ItemIndex==1)
Table2->Filter="(God_osnovan<="+
IntToStr(SEmax2->Value)+")and(God_osnovan>="+
IntToStr(SEmin2->Value)+")";
else
Table2->Filter="(Kol_students<="+
IntToStr(SEmax3->Value)+")and(Kol_students>="+
IntToStr(SEmin3->Value)+")";
Table2->Filtered=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmax2Change(TObject *Sender)
{
if(RGF2->ItemIndex==0)
Table2->Filtered=false;
else
{
if(RGF2->ItemIndex==1)
Table2->Filter="(God_osnovan<="+
IntToStr(SEmax2->Value)+")and(God_osnovan>="+
IntToStr(SEmin2->Value)+")";
else
Table2->Filter="(Kol_students<="+
IntToStr(SEmax3->Value)+")and(Kol_students>="+
IntToStr(SEmin3->Value)+")";
Table2->Filtered=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmin3Change(TObject *Sender)
{
if(RGF2->ItemIndex==0)
Table2->Filtered=false;
else
{
if(RGF2->ItemIndex==1)
Table2->Filter="(God_osnovan<="+
IntToStr(SEmax2->Value)+")and(God_osnovan>="+
IntToStr(SEmin2->Value)+")";
else
Table2->Filter="(Kol_students<="+
IntToStr(SEmax3->Value)+")and(Kol_students>="+
IntToStr(SEmin3->Value)+")";
Table2->Filtered=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SEmax3Change(TObject *Sender)
{
if(RGF2->ItemIndex==0)
Table2->Filtered=false;
else
{
if(RGF2->ItemIndex==1)
Table2->Filter="(God_osnovan<="+
IntToStr(SEmax2->Value)+")and(God_osnovan>="+
IntToStr(SEmin2->Value)+")";
else
Table2->Filter="(Kol_students<="+
IntToStr(SEmax3->Value)+")and(Kol_students>="+
IntToStr(SEmin3->Value)+")";
Table2->Filtered=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
RGF2->ItemIndex=0;
Table2->FindNearest(&TVarRec(Edit1->Text),0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N7Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Form2->QuickRep1->Preview();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Form2->QuickRep1->Print();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
Form3->QuickRep1->Preview();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
Form3->QuickRep1->Print();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N10Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N12Click(TObject *Sender)
{
PageControl1->ActivePage=TabSheet6;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N13Click(TObject *Sender)
{
ShellExecute(Handle,"Open","Справка.doc",NULL,NULL,SW_RESTORE);
}
//---------------------------------------------------------------------------
7. Модули программы
Данное приложение содержит одну главную форму Form1. Она запускает ряд процедур, которые являются модулями программ.
Список процедур:
Table1AfterScroll- обеспечивает отображение данных Таблицы1 (“Kaf.db”) в окне редактирования при перемещении по таблице.
Table2AfterScroll- обеспечивает отображение данных Таблицы2 (“Fak.db”) в окне редактирования при перемещении по таблице.
DBNavigator1Click- обеспечивает отображение данных таблиц в окне редактирования при перемещении по таблице с помощью компоненты навигации по базе данных.
Button1Click- осуществляет вставку новой кафедры Таблицы 1 (“Kaf. db ”).
Button2Click- осуществляет запись новой кафедры Таблицы 1 (“Kaf. db ”).
Button3Click- удаляет запись по кафедре в Таблице 1 (“Kaf. db ”).
Button4Click- осуществляет вставку нового факультета Таблицы 2 (“Fak. db ”).
Button5Click- производит запись нового факультета Таблицы 2 (“Fak. db ”).
Button6Click- удаляет запись из Таблицы 2 (“Fak. db ”).
Button7Click- выводит отчет QuickRep1 по кафедрам на экран.
Button8Click- выводит отчет QuickRep1 по кафедрам на печать.
Button9Click- выводит отчет QuickRep1 по факультетам на экран.
Button10Click- выводит отчет QuickRep1 по факультетам на печать.
RGF1Click- осуществляет фильтрацию Таблицы 1 (“Kaf. db ”).
RGF2 Click - осуществляет фильтрацию Таблицы 2 (“Fak. db ”).
Edit1Change- осуществляет фильтрацию Таблицы2 (“Fak. db ”) по полю Код факультета.
CBStatus Change- осуществляет фильтрацию Таблицы1 (“Kaf. db ”) по полю Статус кафедры.
CBSokr_naim Change - осуществляет поиск в Таблице1 (“Kaf. db ”) по полю Сокращенное название кафедры.
SEmin1 Change - осуществляет фильтрацию Таблицы1(“Kaf. db ”) по полю Код факультета (начиная с минимального значения).
SEmax1 Change- осуществляет фильтрацию Таблицы1(“Kaf. db ”) по полю Код факультета (начиная с максимального значения).
SEmin2 Change - осуществляет фильтрацию Таблицы2 (“Fak. db ”) по полю Год основания факультета (начиная с минимального значения).
SEmax2 Change- осуществляет фильтрацию Таблицы2 (“Fak. db ”) по полю Год основания факультета (начиная с максимального значения).
SEmin3 Change - осуществляет фильтрацию Таблицы2 (“Fak. db ”) по полю Количество студентов (начиная с минимального значения).
SEmax3 Change- осуществляет фильтрацию Таблицы2 (“Fak. db ”) по полю Количество студентов (начиная с максимального значения).
Также использовалась компонента MainMenu, для создания меню с выпадающим списком. В последующем по которому производится перемещения по страницам проекта. Страницы, с которыми произведена связка в MainMenu, именуются, как TabSheet.
8. Вычислительная техника
Вычислительная техника является неотъемлемой частью при разработке любого приложения , с использованием программы C++ Builder. Поэтому правильный выбор компьютера для разработки проекта играет решающую роль, влияющей на качество и время исполнения проекта. Для установки и работы Builder требуется, чтобы компьютер имел следующую минимальную конфигурацию:
Таблица 3.
Наименование |
Характеристики |
|
Процессор (CPU) |
Pentium 2 300 mhz |
|
Озу (DIMM) |
64 Mb |
|
Видеокарта (SVGA) |
16 Mb |
|
Блок питания (ATX) |
250W |
|
Материнская плата (MB) |
Любая |
|
Монитор |
Любой |
|
Клавиатура |
Genius |
|
Манипулятор Мышь |
Genius 250 dpi |
|
Принтер |
Lexmark E232 600/1200/2400 dpi 22 стр/мин |
|
Dvd-rom |
Не обязательно |
|
Floppy |
Nec |
|
Операционная система |
Windows 95 и выше |
Для выполнения данного курсового проекта был использован компьютер со следующими параметрами:
Таблица 4.
Наименование |
Характеристики |
|
Процессор (CPU) |
Pentium 4 3000 mhz |
|
Озу (DIMM) |
512 Mb Kingston |
|
Видеокарта (SVGA) |
256 Mb Palit FX5600 |
|
Блок питания (ATX) |
350W |
|
Материнская плата (MB) |
Asus P4P800 |
|
Монитор |
Samsung TFT LCD 1280*1024 17 дюймов |
|
Клавиатура |
Genius |
|
Манипулятор Мышь |
Genius 250 dpi |
|
Принтер |
Canon LASER SHOT LBP 3000 |
|
Dvd-rom |
LG 16/32/48 |
|
Floppy |
Nec |
|
Операционная система |
Windows XP service pack 2 (build 2006) |
Заключение
В процессе выполнения данной курсовой работы была разработана базы данных, позволяющей определять состояние кафедр и факультетов Дагестанского государственного технического университета. Разработанная база данных послужила основанием построения автоматизированной системы, именуемой «Система ДГТУ».
Построенная автоматизированная система является очень удобной и простой в обращении. Она дает возможность персоналу ДГТУ осуществлять контроль за изменениями, проводимыми в системе университета и самим организовывать эти изменения. Другими словами она позволяет осуществлять добавление, изменение, удаление данных о кафедрах и факультетах, проводить фильтрацию и поиск данных по ним, выводить данные на печать и просматривать отчеты.
Для реализации разработанного алгоритма и создания данной базы данных был выбран язык программирования С++ Builder, так как является наиболее подходящим языком программирования, включающим в себя различные универсальные компоненты.
Список литературы
1. А.Я. Архангельский «Программирование в C++Builder 6» 2-изд.-М.: ООО «Бином-Пресс», 2005г.
2. Курс лекций по дисциплине “Базы данных”.
Размещено на Allbest.ru
Подобные документы
Построение инфологической, физической и концептуальной моделей данных, создание процедурных ограничений целостности и типичных запросов к базе. Описания занесения данных в таблицы об иерархии кафедр и факультетов, информации о расписании и лекторах.
курсовая работа [2,8 M], добавлен 30.11.2011Этапы создания и разработки базы данных. Построение модели предметной области. Разработка даталогической и физической моделей данных, способы обработки данных о сотрудниках организации. Проектирование приложений пользователя. Создание кнопочной формы.
курсовая работа [2,1 M], добавлен 14.02.2011Разработка базы данных, позволяющей определять месторасположение на полке и код товаров в магазинных складах, количество и качество товаров. Концепция баз данных. Модели данных, описание данных проектирования. Разработка программного приложения.
курсовая работа [1,1 M], добавлен 13.06.2014Понятие базы данных, её структура. Общие принципы хранения информации. Краткая характеристика особенностей иерархической, сетевой и реляционной модели организации данных. Structured Query Language: понятие, состав. Составление таблиц в Microsoft Access.
лекция [202,8 K], добавлен 25.06.2013Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.
курсовая работа [981,4 K], добавлен 05.11.2011Система управления базой данных - программный инструмент создания БД и приложений пользователя. Проект СУБД "ИС Продажа видео и аудио продукции". Разработка иерархической, сетевой и реляционной моделей, таблиц и схемы базы данных, форм, отчетов, запросов.
курсовая работа [1,6 M], добавлен 17.06.2013Система управления базой данных (СУБД), централизованное обеспечение безопасности и целостности данных, защита от несанкционированного доступа. Построение концептуальной и реляционной моделей. Процесс нормализации. Проектирование базы данных в ACCESS.
курсовая работа [1,8 M], добавлен 29.10.2008Анализ предметной области с использованием моделей методологии ARIS и разработка ER-диаграммы. Описание входной и выходной информации для проектирования реляционной базы данных. Разработка управляющих запросов и связей между ними с помощью языка SQL.
курсовая работа [975,2 K], добавлен 30.01.2014Проектирование автоматизированной информационной системы, позволяющей оформлять заказы на продажу керамической плитки. Разработка реляционной модели данных. Структура и содержание таблиц базы данных, формирование запросов к ней и назначение ее форм.
курсовая работа [4,9 M], добавлен 26.07.2013Характеристика реляционной, иерархической и сетевой моделей баз данных. Анализ методов проектирования (декомпозиция, синтез, объектная связь), организации, обновления, восстановления, ограничений, поддержания целостности данных на примере СУБД Ms Access.
дипломная работа [347,4 K], добавлен 13.02.2010