Информационная система ДЕКАНАТ для автоматизации работы деканата факультета вуза

Автор работы: Пользователь скрыл имя, 16 Октября 2011 в 12:52, курсовая работа

Описание

Пусть максимальное число кафедр на факультете равно 10, кафедры готовят студентов по 12 специальностям.

Работа состоит из  1 файл

Пояснительная записка.doc

— 194.50 Кб (Скачать документ)
Министерство  образования и  науки
Российской  Федерации

Санкт-Петербургский  государственный электротехнический университет «ЛЭТИ»

Факультет компьютерных технологий и информатики
Кафедра автоматики и процессов управления
 
 
 
 
 

Пояснительная записка к курсовому проекту

по дисциплине

²Теория и технология программирования² 
 
 
 
 

                                          Выполнили: Иванова  Е. В.

                                               Васюков А. В.

                                                  Проверил: Литвинов В. Л. 
 
 
 
 
 

Санкт-Петербург

2005 

Тема 5. Информационная система  ДЕКАНАТ для автоматизации  работы деканата факультета вуза

      Пусть максимальное число кафедр на факультете равно 10, кафедры готовят студентов  по 12 специальностям.

      По  каждой специальности имеется учебный  план, который содержит список всех предметов, изучаемых на этой специальности, с указанием общего количества лекционных, практических, лабораторных часов, раскладку предметов и курсовых работ по семестрам с указанием количества часов, форму сдачи предмета (зачет/экзамен).

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

      Система должна обеспечивать ввод и обработку  учебных планов специальностей,  учебных карточек студентов.

      Разработать:

  1. меню системы;
  2. модули ввода, изменения и просмотра данных.

 

Схема данных приведена на рис. 1

Разработанные формы приведены на рис. 2-5.

Обработчики данных представлена на стр. 6-18 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

         

Рис. 1. Главная  форма 

 

Рис. 2. Форма "Учебные планы" 

 

Рис. 3. Форма "Учебные карточки"

 

Рис. 4. Форма "Предметы"

 

//----------------------------------Главная форма-------------------- 

#include <vcl.h>

#pragma hdrstop 

#include "main.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TMain_Form *Main_Form;

//---------------------------------------------------------------------------

__fastcall TMain_Form::TMain_Form(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TMain_Form::BPlansClick(TObject *Sender)

{

     Plans->ShowModal();

}

//--------------------------------------------------------------------------- 

void __fastcall TMain_Form::BCardsClick(TObject *Sender)

{

     Students -> ShowModal ();    

}

//--------------------------------------------------------------------------- 

void __fastcall TMain_Form::PredmClick(TObject *Sender)

{

     Subjects -> ShowModal ();    

}

//--------------------------------------------------------------------------- 

void __fastcall TMain_Form::BExitClick(TObject *Sender)

{

     Main_Form -> Close ();    

}

//--------------------------------------------------------------------------- 
 
 

//-------------------Форма "Учебные планы"------------------------ 

#include <vcl.h>

#pragma hdrstop 

#include "Unit1.h"

#include "main.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TPlans *Plans;

//---------------------------------------------------------------------------

__fastcall TPlans::TPlans(TComponent* Owner)

        : TForm(Owner)

{

}

//--------------------------------------------------------------------------- 

void __fastcall TPlans::Edit_KafKeyPress(TObject *Sender, char &Key)

{

     int value;

     if (Key == 13)

     {

         TPlans::Add_KafClick(Sender);

     }

} 

//--------------------------------------------------------------------------- 

void __fastcall TPlans::Add_KafClick(TObject *Sender)

{

      int value;

      FindKaf -> Active = False;

      FindKaf -> ParamByName ("KafName") -> Value = Edit_Kaf -> Text;

      FindKaf -> Active = True;

      if (FindKaf -> FieldByName ("NUMBER") -> Value !=0) MessageBox (NULL, "Кафедры не могут иметь одинаковые названия", NULL, MB_OK);

      else

      {

           if (Edit_Kaf->Text=="") MessageBox (NULL, "Необходимо ввести название кафедры", NULL, MB_OK);

           else

           {

                if (Kaf -> FindLast () == False) value = 0; else value = Kaf -> FieldByName ("Код кафедры") -> Value;

                value++;

                Kaf -> Append ();

                Kaf -> FieldByName ("Код кафедры") -> Value = value;

                Kaf -> FieldByName ("Название") -> Value = Edit_Kaf -> Text;

                Kaf -> Post ();

          }

      }

}

//--------------------------------------------------------------------------- 

void __fastcall TPlans::Chg_KafClick(TObject *Sender)

{

        FindKaf -> Active = False;

        FindKaf -> ParamByName ("KafName") -> Value = Edit_Kaf -> Text;

        FindKaf -> Active = True;

        if (FindKaf -> FieldByName ("NUMBER") -> Value !=0) MessageBox (NULL, "Кафедры не могут иметь одинаковые названия", NULL, MB_OK);

        else

        {

        Kaf -> Edit ();

        Kaf -> FieldByName ("Название") -> Value = Edit_Kaf -> Text;

        Kaf -> Post ();

        }

} 

//--------------------------------------------------------------------------- 

void __fastcall TPlans::Del_KafClick(TObject *Sender)

{

       if (MessageBox (NULL, "Удалить кафедру.  Вы уверены?", "Удаление", MB_OKCANCEL) == 1)

       {

          Spec -> First();

          while (!Spec->Eof)

          {

               if (Spec -> FieldByName ("Код кафедры") -> Value  == Kaf -> FieldByName ("Код кафедры") -> Value)

               {

                    Stud -> First();

                    while (!Stud->Eof)

                    {

                        if (Stud -> FieldByName ("Код специальности") -> Value  == Spec -> FieldByName ("Код специальности") -> Value)

                         {

                              Otm -> First ();

                              while (!Otm -> Eof)

                              {

                                   if (Stud -> FieldByName ("Код студента") -> Value  == Otm-> FieldByName ("Код студента") -> Value) Otm -> Delete ();

                                   Otm -> Next ();

                              }

                         Stud -> Delete();

                         }

                    Stud -> Next ();

                    }

                    Plan_All->First();

                    while (!Plan_All->Eof)

                    {

                         if (Plan_All -> FieldByName ("Код специальности") -> Value  == Spec -> FieldByName ("Код специальности") -> Value) Plan_All ->Delete();

                         Plan_All -> Next ();

                    }

                    Spec -> Delete ();

               }

               Spec -> Next ();

           }

       Kaf -> Delete ();

       Plan -> Active = False;

       Plan -> Active = True;

      }

}

//--------------------------------------------------------------------------- 

void __fastcall TPlans::Add_SpecClick(TObject *Sender)

{

     int value;

     if (Edit_SpecNum -> Text == "") MessageBox (NULL, "Необходимо ввести № специальности", NULL, MB_OK);

     else

     {

     if (Edit_Spec -> Text == "") MessageBox (NULL, "Необходимо ввести название специальности", NULL, MB_OK);

     else

     {

          FindSpec -> Active = False;

          FindSpec -> ParamByName ("SpecNum") -> Value = Edit_SpecNum -> Text;

          FindSpec -> Active = True;

          if ((FindSpec -> FieldByName ("NUMBER") -> Value !=0)&&(Spec -> FieldByName ("№ специальности") -> Value == Edit_SpecNum -> Text)) MessageBox (NULL, "Специальности не могут иметь одинаковые номера", NULL, MB_OK);

          else

          {

              if (Spec_All -> FindLast() == False) value = 0;

              else value = Spec_All -> FieldByName ("Код специальности") -> Value;

               value++;

               Spec -> Append ();

               Spec -> FieldByName ("Код специальности") -> Value = value;

               Spec -> FieldByName ("Название") -> Value = Edit_Spec -> Text;

               Spec -> FieldByName ("№ специальности") -> Value = Edit_SpecNum -> Text;

               Spec -> FieldByName ("Код кафедры") -> Value = Kaf -> FieldByName ("Код кафедры") -> Value;

Информация о работе Информационная система ДЕКАНАТ для автоматизации работы деканата факультета вуза