Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.6.2024

Тема 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;

              Spec -> Post ();

              Spec -> Active = False;

              Spec -> Active = True;

         }

    }

    }

}

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

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

{

    if (Key == 13)

    {

       Plans -> ActiveControl = Edit_Spec;

    }

}

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

void __fastcall TPlans::Chg_SpecClick(TObject *Sender)

{

    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) && (Spec -> FieldByName ("Название") -> Value == Edit_Spec -> Text)) MessageBox (NULL, "Специальности не могут иметь одинаковые номера", NULL, MB_OK);

    else

    {

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

              else

              {

              Spec -> Edit ();

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

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

              Spec -> Post ();

              }

    }

}

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

void __fastcall TPlans::Del_SpecClick(TObject *Sender)

{

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

    {

         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 ();

                   }

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

              }

              Stud -> Delete ();

              Stud -> Next ();

         }

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

    }

    Spec -> Delete ();

 Plan -> Active = False;

 Plan -> Active = True;

}

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

void __fastcall TPlans::Grid_KafCellClick(TColumn *Column)

{

     Plan -> Active = False;

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

     int value = Semestr -> ItemIndex;

     value++;

     Plan -> ParamByName ("Sem_Num") -> Value = value;

     Plan -> Active = True;

     if (Kaf -> FieldByName ("Код кафедры")!=0) Edit_Kaf -> Text = Kaf -> FieldByName ("Название") -> Value;

}

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

void __fastcall TPlans::SemestrChange(TObject *Sender)

{

      Plan -> Active = False;

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

      int value = Semestr -> ItemIndex;

      value++;

      Plan -> ParamByName ("Sem_Num") -> Value = value;

      Plan -> Active = True;

}

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

void __fastcall TPlans::GridSpecCellClick(TColumn *Column)

{

      Plan -> Active = False;

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

      int value = Semestr -> ItemIndex;

      value++;

      Plan -> ParamByName ("Sem_Num") -> Value = value;

      Plan -> Active = True;

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

      {

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

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

      }

}

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

void __fastcall TPlans::Add_PredmClick(TObject *Sender)

{

     if (Semestr -> ItemIndex == -1)  MessageBox (NULL, "Необходимо выбрать семестр", NULL, MB_OK);

     else

     {

     if (ComboPredm -> Text == "")  MessageBox (NULL, "Необходимо выбрать предмет", NULL, MB_OK);

     else

     {

     int value;

     FindPlan -> Active = False;

     FindPlan -> ParamByName ("NamePredm") -> Value = ComboPredm-> Text;

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

     FindPlan -> ParamByName ("SemNum") -> Value = Semestr -> Text;

     FindPlan -> Active = True;

     FindPredm -> Active = False;

     FindPredm -> ParamByName ("NamePredm") -> Value = ComboPredm-> Text;

     FindPredm -> Active = True;

     if (FindPlan -> FieldByName ("NUMBER") -> Value !=0)

     {

         Plan_All -> Edit ();

         Plan_All -> FieldByName ("Наличие экзамена") -> Value = Examen -> ItemIndex;

         Plan_All -> FieldByName ("Наличие курсовика") -> Value = Kursovik -> ItemIndex;

         Plan_All -> FieldByName ("Лабораторных часов")-> Value = EditLab -> Text;

         Plan_All -> FieldByName ("Лекционных часов") -> Value= EditLekt -> Text;

         Plan_All -> FieldByName ("Практических часов") ->Value = EditPrakt -> Text;

     }

     else

     {

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

         else value = Plan_All -> FieldByName ("Код") -> Value;

         value++;

         Plan_All -> Append ();

         Plan_All -> FieldByName ("Код") -> Value = value;

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

         Plan_All -> FieldByName ("Код предмета") -> Value = FindPredm -> FieldByName ("Код предмета") -> Value;

         Plan_All -> FieldByName ("№ семестра") -> Value = Semestr-> Text;

         Plan_All -> FieldByName ("Наличие экзамена") -> Value = Examen -> ItemIndex;

         Plan_All -> FieldByName ("Наличие курсовика") -> Value = Kursovik -> ItemIndex;

         Plan_All -> FieldByName ("Лабораторных часов")-> Value = EditLab -> Text;

         Plan_All -> FieldByName ("Лекционных часов") -> Value= EditLekt -> Text;

         Plan_All -> FieldByName ("Практических часов") ->Value = EditPrakt -> Text;

    }

    Plan_All -> Post ();

    Plan -> Active = False;

    Plan -> Active = True;

    }

    }

}

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

void __fastcall TPlans::Del_PredmClick(TObject *Sender)

{

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

 while (!Plan_All-> Eof)

 {

    if (Plan_All -> FieldByName ("Код") -> Value == Plan  -> FieldByName ("Код") -> Value) Plan_All -> Delete();

    Plan_All -> Next();

 }

 Plan -> Active = False;

 Plan -> Active = True;

}

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

//---------------Форма "Учебные карточки"------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TStudents *Students;

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

__fastcall TStudents::TStudents(TComponent* Owner)

    : TForm(Owner)

{

}

void __fastcall TStudents::SemestrChange(TObject *Sender)

{

      Otm -> Active = False;

      int value = Semestr -> ItemIndex;

      value++;

      Otm -> ParamByName ("SemNum") -> Value = value;

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

      Otm -> Active = True;

      Predm -> Active = False;

      Predm -> ParamByName ("SemNum") -> Value = value;

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

      Predm -> Active = True;

}

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

void __fastcall TStudents::DBGrid1CellClick(TColumn *Column)

{

      Otm -> Active = False;

      int value = Semestr -> ItemIndex;

      value++;

      Otm -> ParamByName ("SemNum") -> Value = value;

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

      Otm -> Active = True;

}

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

void __fastcall TStudents::DBGrid2CellClick(TColumn *Column)

{

      Otm -> Active = False;

      int value = Semestr -> ItemIndex;

      value++;

      Otm -> ParamByName ("SemNum") -> Value = value;

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

      Otm -> Active = True;

}

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

void __fastcall TStudents::Add_StudClick(TObject *Sender)

{

        Edit_Stud -> Visible = True;

        Edit_Stud -> Text = "";

        LStud -> Visible = True;

        BStud_OK -> Visible = True;

        Students -> ActiveControl = Edit_Stud;

}

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

void __fastcall TStudents::Edit_StudKeyPress(TObject *Sender, char &Key)

{

    Stud -> Active = False;

    int value;

    if (Key == 13)

    {

         if (Edit_Stud -> Text=="") MessageBox (NULL, "Необходимо ввести ФИО", NULL, MB_OK);

         else

         {

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

                else value = Stud_All -> FieldByName ("Код студента") -> Value;

                   value++;

                   Stud_All -> Append ();

                   Stud_All -> FieldByName ("Код студента") -> Value = value;

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

                   Stud_All -> FieldByName ("ФИО") -> Value = Edit_Stud -> Text;

                   Stud_All -> Post ();

         }

    }

   Stud -> Active = True;

}

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

void __fastcall TStudents::BStud_OKClick(TObject *Sender)

{

   Stud -> Active = False;

   int value;

    if (Edit_Stud->Text=="") MessageBox (NULL, "Необходимо ввести ФИО", NULL, MB_OK);

         else

         {

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

                else value = Stud_All -> FieldByName ("Код студента") -> Value;

                   value++;

                   Stud_All -> Append ();

                   Stud_All -> FieldByName ("Код студента") -> Value = value;

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

                   Stud_All -> FieldByName ("ФИО") -> Value = Edit_Stud -> Text;

                   Stud_All -> Post ();

          }

    Stud -> Active = True;

}

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

void __fastcall TStudents::Add_OtmClick(TObject *Sender)

{

    if (Semestr ->ItemIndex == -1)  MessageBox (NULL, "Необходимо выбрать семестр", NULL, MB_OK);

    else

    {

         Predm -> Active = False;

         int value = Semestr -> ItemIndex;

         value++;

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

         Predm -> ParamByName ("StudNum") -> Value = Stud-> FieldByName ("Код студента")->Value;

         Predm -> ParamByName ("SemNum") -> Value = value;

         Predm -> Active = True;

         ComboPredm -> Visible = True;

         ComboEx -> Visible = True;

         ComboKurs -> Visible = True;

         LPredm -> Visible = True;

         LEx -> Visible = True;

         LKurs -> Visible = True;

         BPredm_OK -> Visible = True;

         Students -> ActiveControl = ComboPredm;

    }

}

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

void __fastcall TStudents::BPredm_OKClick(TObject *Sender)

{

    if (ComboPredm -> Text == "")  MessageBox (NULL, "Необходимо выбрать предмет", NULL, MB_OK);

    else

    {

                   int value;

                   FindOtm -> Active = False;

                   FindOtm -> ParamByName ("SemNum") -> Value = Semestr -> Text;

                   FindOtm -> ParamByName ("PredmNum") -> Value = Predm -> FieldByName ("Код предмета") -> Value;

                   FindOtm -> ParamByName ("StudNum") -> Value = Stud-> FieldByName ("Код студента")->Value;

                   FindOtm -> Active = True;

                   Otm -> Active = False;

                   if (FindOtm -> FindLast() == True)

                   {

                        Otm_All -> Edit ();

                        if (ComboEx -> Text == "") Otm_All -> FieldByName ("Оценка за экзамен") -> Value = 0;

                        else Otm_All -> FieldByName ("Оценка за экзамен") -> Value = ComboEx -> Text;

                        if (ComboKurs -> Text == "") Otm_All -> FieldByName ("Оценка за курсовик") -> Value = 0;

                        else Otm_All -> FieldByName ("Оценка за курсовик") -> Value = ComboKurs -> Text;

                   }

                   else

                   {

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

                        else value = Otm_All -> FieldByName ("Код") -> Value;

                        value++;

                        Otm_All -> Append ();

                        Otm_All -> FieldByName ("Код") -> Value = value;

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

                        Otm_All -> FieldByName ("Код предмета") -> Value = Predm -> FieldByName ("Код предмета") -> Value;

                        if (ComboEx -> Text == "") Otm_All -> FieldByName ("Оценка за экзамен") -> Value = 0;

                        else Otm_All -> FieldByName ("Оценка за экзамен") -> Value = ComboEx -> Text;

                        if (ComboKurs -> Text == "") Otm_All -> FieldByName ("Оценка за курсовик") -> Value = 0;

                        else Otm_All -> FieldByName ("Оценка за курсовик") -> Value = ComboKurs -> Text;

                        Otm_All -> FieldByName ("№ семестра") -> Value = Semestr -> Text;

                   }

                   Otm_All -> Post ();

                   Otm -> Active = True;

    }

}

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

//--------------------Форма "Предметы"------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TSubjects *Subjects;

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

__fastcall TSubjects::TSubjects(TComponent* Owner)

    : TForm(Owner)

{

}

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




1. ВВЕДЕНИЕ Двадцатый век вошел в историю как век небывалого технического прогресса бурного развития науки
2. Волинської держави
3. лекция перед ГЭ ~ доцент Остапчук Н
4. . Уильям Дж. Оучи.
5. Рокклуба до клуба TMtm 1991~1993 Вчера опять искали свободу Чуть не превысили дозу Я Начинаю
6. Тема 12- Ефективність державного управління 12
7. сознание обычно понимается двояко- как совокупность всех переживаний и как направленное на переживание вни
8. ТЕМА КОНСТРУИРОВАНИЯ ФОРМАЛЬНЫХ ЯЗЫКОВ
9. Международное частное право
10. Основные особенности робототехнических систем
11. Грипп вирус и заболевание
12. Организация перевозки железнодорожным транспортом в войсках ПВО СВ
13. Ленин123Читать Пушкин140Читать Подступы к своему театру168Читать Петербург175Читать Война226
14. Статья- Рукавишниковский приют
15. . Информация содержится в человеческой речи текстах книг журналов и газет сообщениях радио и телевидения п
16.  Акціонерне товариство
17. Контрольная работа по информатике для студентов 1 курса направления ИВТ и КТМП Контрольная работа в
18. РЕФЕРАТ з основ права
19. Ie items tht could be sold by the business in exchnge for money
20. Лекция - Система тактического планирования производственно-хозяйственной, финансовой деятельности организации