Написание программы с использованием команд void prepod_see(int n), void admin_see(), void students_see(), void not_see2(bool t)

Страницы работы

Содержание работы


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

#include <vcl.h>

#include <stdio.h>

#include <conio.h>

#include <ctype.h>

#include <stdlib.h>

#include <io.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

AnsiString GetDir();

void give_road(AnsiString t);

int enter=1;

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{ Form1->Edit1->Text="";

  AnsiString t,p;

  p=GetDir();

  p=p+"БД\\pas.txt";

  if(access(p.c_str(),0)==-1){ShowMessage("БД (pas.txt)не найден.Обратитесь к СисАдмину.");enter=0;}

  else  Form1->Memo1->Lines->LoadFromFile(p);

}

void prepod_see(int n)

{AnsiString t,t2;

 AnsiString s='\0',p;

 int i;

 s=Form1->Memo1->Lines->Strings[n].c_str();

 for( i=1;s[i]!='/';i++);

 for( i=i+1;s[i]!='/';i++)

     {p=p+s[i];}

   p=p+' ';

 for( i=i+1;s[i]!='/';i++)

      {p=p+s[i];}

   p=p+' ';

 for( i=i+1;s[i]!='/';i++)

      {p=p+s[i];}

 Form5->Memo1->Lines->Strings[2]=p;

 p="";

 for( i=i+1;s[i]!='#';i++)

      {p=p+s[i];}

 t2=t=GetDir();t=t+"БД\\"+p+".txt";

 t2=t2+"БД\\s_"+p+".txt";

 Form5->Show();

 Form5->Button2->Visible=false;

 Form5->Button7->Visible=false;

 Form5->Button8->Visible=false;

 Form5->Memo2->Visible=false;

 Form5->Memo3->Visible=false;

 Form1->Button1->Visible=false;

 if(access(t.c_str(),0)==-1||access(t2.c_str(),0)==-1){ShowMessage("БД не найден.Обратитесь к СисАдмину.");

                                 Form5->Button3->Visible=false;

                                  Form5->Button4->Visible=false;

                                   Form5->Button5->Visible=false;

                                    Form5->Button6->Visible=false;}

 else {give_road(t);Form3->Memo1->Lines->LoadFromFile(t);

                    Form3->Memo2->Lines->LoadFromFile(t2);}

}

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

void admin_see()

{Form5->Show();Form5->Button5->Visible=false;

  Form5->Button4->Visible=false;

  Form5->Button3->Visible=false;

  Form5->Button6->Visible=false;

  Form5->Button7->Visible=false;

  Form5->Memo1->Visible=false;

  Form5->Memo3->Visible=false;

  Form1->Button1->Visible=false;

}

void students_see()

{Form5->Show();

 Form5->Button5->Visible=false;

 Form5->Button4->Visible=false;

 Form5->Button3->Visible=false;

 Form5->Button6->Visible=false;

 Form5->Button2->Visible=false;

 Form5->Button8->Visible=false;

 Form1->Button1->Visible=false;

 Form5->Memo1->Visible=false;

 Form5->Memo2->Visible=false;

}

AnsiString GetDir()//Возвращеет путь где был вызван послетний файл.

{AnsiString dir;

int s;

s=ParamStr(0).LastDelimiter("\\");

dir=ParamStr(0).SetLength(s);

return (dir);

}

int pasvord()//возвращает 0 если пароль не верный, иначе номер страки (в pas) где есть верный.

{AnsiString s='\0',p,pas;

 s=Form1->Memo1->Lines->Strings[2].c_str();

 pas=Form1->Edit1->Text.c_str();

 for(int i=2;s[1]!='@';i++)

     {p="";

      for(int j=1;s[j]!='/';j++)

          {p=p+s[j];}

      if(p==pas)return i;

      s=Form1->Memo1->Lines->Strings[i+1].c_str();

     }

return (0);

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{int str=-1;

AnsiString p;

if(enter==1){

   if(Form1->Edit1->Text=="")ShowMessage("Введите пароль");

   else{if(Form1->Memo1->Lines->Strings[1]==Form1->Edit1->Text.c_str()){admin_see();}

        else{str=pasvord();if(str!=0){prepod_see(str);}

             else{if(Form1->Memo1->Lines->Strings[0]==Form1->Edit1->Text.c_str())

                       {students_see();}

                  else ShowMessage("Пароль не верный. Обратитесь к администратору.");

                 }

            }       

       }

} else {ShowMessage("БД не найден.Обратитесь к СисАдмину.");}

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{Form1->Close();

}

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


Form2

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

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit5.h"

#include "Unit1.h"

#include "Unit3.h"

AnsiString GetDir();

void  see_predmet();

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

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

__fastcall TForm2::TForm2(TComponent* Owner)

        : TForm(Owner)

{ }

void not_see2(bool t)

{Form2->Label6->Visible=t;

 Form2->Label7->Visible=t;

 Form2->Label9->Visible=t;

 Form2->Button1->Visible=t;

 Form2->Button2->Visible=t;

 Form2->Button3->Visible=t;

 Form2->Button4->Visible=t;

 Form2->Edit6->Visible=t;

 Form2->Edit7->Visible=t;

 Form2->ListBox1->Enabled=t;

 Form2->Edit1->Text="";

 Form2->Edit2->Text="";

 Form2->Edit3->Text="";

 Form2->Edit4->Text="";

 Form2->Edit4->Enabled=t-1;

 Form2->Edit5->Text="";

}

void see_data_admin()//показывет данные о преподах, и всех паролях

{Form2->Edit6->Text=Form1->Memo1->Lines->Strings[0];

 Form2->Edit7->Text=Form1->Memo1->Lines->Strings[1];

 see_predmet();

}

void  see_predmet()//Выводит на  Form2->ListBox1 названия всех предметов(тестах)

{int i,j,k,z;

 AnsiString s,p;

 Form2->ListBox1->Items->Add("");

 Form2->ListBox1->Items->Add("");

 s=Form1->Memo1->Lines->Strings[2].c_str();

 for(i=2;s[1]!='@';i++)

    { for(j=1;s[j]!='#';j++);

      j--;p="";

      for(k=j;s[k]!='/';k--);

      for(z=k+1;s[z]!='#';z++)

          {p=p+s[z];}

      Form2->ListBox1->Items->Add("");

      Form2->ListBox1->Items->Strings[i]=p;

      s=Form1->Memo1->Lines->Strings[i+1].c_str();

    }

}

void Show_data_for_prepod(int n)

{int i1,i2,i3,i4,i5;

 AnsiString s,p="";

 s=Form1->Memo1->Lines->Strings[n].c_str();

      for(i1=1;s[i1]!='/';i1++)

          {p=p+s[i1];}

      Form2->Edit5->Text=p;p="";

      for(i2=i1+1;s[i2]!='/';i2++)

          {p=p+s[i2];}

Похожие материалы

Информация о работе