Материал: ПЗ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

for i:=0 to Length(marks_arr)-1 do // Сортировка по Фамилии

for j:=0 to Length(marks_arr)-2 do

if marks_arr[j,0]>marks_arr[j+1,0] then

begin

f:= marks_arr[j,0];

d:= marks_arr[j,1];

m:= marks_arr[j,2];

mr:= marks_arr[j,3];

marks_arr[j,0]:= marks_arr[j+1,0];

marks_arr[j,1]:= marks_arr[j+1,1];

marks_arr[j,2]:= marks_arr[j+1,2];

marks_arr[j,3]:= marks_arr[j+1,3];

marks_arr[j+1,0]:=f;

marks_arr[j+1,1]:=d;

marks_arr[j+1,2]:=m;

marks_arr[j+1,3]:=mr;

end;

for i:=0 to Length(marks_arr)-1 do // Сортировка по дате МЕСЯЦ

for j:=0 to Length(marks_arr)-2 do

if marks_arr[j,0]=marks_arr[j+1,0] then

if marks_arr[j,1]>marks_arr[j+1,1] then

begin

f:= marks_arr[j,0];

d:= marks_arr[j,1];

m:= marks_arr[j,2];

mr:= marks_arr[j,3];

marks_arr[j,0]:= marks_arr[j+1,0];

marks_arr[j,1]:= marks_arr[j+1,1];

marks_arr[j,2]:= marks_arr[j+1,2];

marks_arr[j,3]:= marks_arr[j+1,3];

marks_arr[j+1,0]:=f;

marks_arr[j+1,1]:=d;

marks_arr[j+1,2]:=m;

marks_arr[j+1,3]:=mr;

end;

for i:=0 to Length(marks_arr)-1 do // Сортировка по дате День

for j:=0 to Length(marks_arr)-2 do

if marks_arr[j,0]=marks_arr[j+1,0] then

if marks_arr[j,1]=marks_arr[j+1,1] then

if marks_arr[j,2]>marks_arr[j+1,2] then

begin

f:= marks_arr[j,0];

d:= marks_arr[j,1];

m:= marks_arr[j,2];

mr:= marks_arr[j,3];

marks_arr[j,0]:= marks_arr[j+1,0];

marks_arr[j,1]:= marks_arr[j+1,1];

marks_arr[j,2]:= marks_arr[j+1,2];

marks_arr[j,3]:= marks_arr[j+1,3];

marks_arr[j+1,0]:=f;

marks_arr[j+1,1]:=d;

marks_arr[j+1,2]:=m;

marks_arr[j+1,3]:=mr;

end;

Form_jurnal.Updategrid_marks (Sender);

Form_jurnal.ComboBox7_update (Sender);

end;

procedure TForm_jurnal.Button3Click(Sender: TObject); // Проверка при удалении даты!!!! КНОПКА

var

i,k:integer;

begin

if ComboBox6.ItemIndex<0 then

begin

ShowMessage ('Нет даты для удаления!');

Exit;

end;

k:=ComboBox6.ItemIndex;

for i:=0 to Length(marks_arr)-1 do // Проверка есть ли на этой дате оценки

if marks_arr[i,1] = date_arr[k,0] then

if marks_arr[i,2] = date_arr[k,1] then //ShowMessage ('!');

begin

Form_del_data.show;

exit;

end;

Form_jurnal.Button3Click_1(Sender);

end;

procedure TForm_jurnal.Button3Click_2(Sender: TObject); // Удаление Оценок и даты !!!

var

i,j,k,n,n1:integer;

begin

k:= ComboBox6.ItemIndex;

n:=0;

n1:=0;

for i:=0 to Length(marks_arr)-1 do // Проверка есть ли на этой дате оценки

if marks_arr[i,1] = date_arr[k,0] then

if marks_arr[i,2] = date_arr[k,1] then inc(n); // считаем количество повторений

repeat

inc(n1);

for j:=0 to Length(marks_arr)-1 do // Находим дату

if marks_arr[j,1] = date_arr[k,0] then

if marks_arr[j,2] = date_arr[k,1] then

for i:=j+1 to Length(marks_arr)-1 do

begin

marks_arr[i-1,0] := marks_arr[i,0];

marks_arr[i-1,1] := marks_arr[i,1];

marks_arr[i-1,2] := marks_arr[i,2];

marks_arr[i-1,3] := marks_arr[i,3];

end;

SetLength(marks_arr, Length(marks_arr)-1, 4);

Form_jurnal.ComboBox7_update (Sender);

until n1=n;

for i:=k+1 to Length(date_arr)-1 do // удаление Даты

begin

date_arr[i-1,0] := date_arr[i,0];

date_arr[i-1,1] := date_arr[i,1];

end;

SetLength(date_arr, Length(date_arr)-1, 2);

Form_jurnal.ComboBox6_update (Sender);

Form_jurnal.ComboBox2_update (Sender);

Form_jurnal.Updategrid_2 (Sender);

Form_jurnal.Updategrid_marks (Sender);

end;

procedure TForm_jurnal.Button3Click_1(Sender: TObject); // Удаление даты БЕЗ ОЦЕНОК!!!

var

i,k:integer;

begin

k:=ComboBox6.ItemIndex;

for i:=k+1 to Length(date_arr)-1 do // удаление Даты

begin

date_arr[i-1,0] := date_arr[i,0];

date_arr[i-1,1] := date_arr[i,1];

end;

SetLength(date_arr, Length(date_arr)-1, 2);

Form_jurnal.ComboBox6_update (Sender);

Form_jurnal.ComboBox2_update (Sender);

Form_jurnal.Updategrid_2 (Sender);

Form_jurnal.Updategrid_marks (Sender);

end;

procedure TForm_jurnal.Button4Click(Sender: TObject); // Кнопка удалить ОЦЕНКУ!!!

var

i,k:integer;

begin

if ComboBox7.ItemIndex<0 then

begin

ShowMessage ('Нет оценки для удаления!');

Exit;

end;

k:=ComboBox7.ItemIndex;

for i:=k+1 to Length(marks_arr)-1 do

begin

marks_arr[i-1,0] := marks_arr[i,0];

marks_arr[i-1,1] := marks_arr[i,1];

marks_arr[i-1,2] := marks_arr[i,2];

marks_arr[i-1,3] := marks_arr[i,3];

end;

SetLength(marks_arr, Length(marks_arr)-1, 4);

Form_jurnal.Updategrid_marks (Sender);

Form_jurnal.ComboBox7_update (Sender);

end;

procedure TForm_jurnal.Button5Click(Sender: TObject); // Сохранить данные Кнопка

var

f:Text;

i,j:integer;

begin

if (ComboBox2.ItemIndex<0) then begin

ShowMessage ('Нет данных для сохранения таблицы!') ;

Exit;

end;

assignfile(f,'db\jurnal\' + teacher_j + '_' + predmet_j + '_' +

klass_j + '_' + quarter_j +'.db');

Rewrite(f);

for i:=0 to Length(date_arr)-1 do

Write (f,inttostr(date_arr[i,0]) + ' ' + inttostr(date_arr[i,1]) + ' '); // заносим все даты в одну строчку!

WriteLn(f, ''); //Пропуск

WriteLn(f, '');

for j:=0 to Length(marks_arr)-1 do // Заносим все оценки

begin

WriteLn (f,persons_arr[marks_arr[j,0]+1]); // ФИО

WriteLn (f,inttostr(marks_arr[j,1])); // месяц

WriteLn (f,inttostr(marks_arr[j,2])); // день

WriteLn (f,inttostr(marks_arr[j,3])); // оценка

WriteLn(f, '');

end;

CloseFile(f);

memo1.Lines.SaveToFile('db\jurnal\' + teacher_j + '_' + predmet_j + '_' + // Сохраняем темы!!!

klass_j + '_' + quarter_j +'_tems.db');

end;

procedure TForm_jurnal.Button6Click(Sender: TObject);

begin

end;

procedure TForm_jurnal.FormClose(Sender: TObject);

begin

if prnts = 1 then begin // чекаем откуда пришли

ComboBox4.Enabled:=True;

ComboBox5.Enabled:=True;

ComboBox6.Enabled:=True;

ComboBox1.Enabled:=True;

ComboBox2.Enabled:=True;

ComboBox3.Enabled:=True;

ComboBox7.Enabled:=True;

Button1.Enabled:=True;

Button2.Enabled:=True;

Button3.Enabled:=True;

Button4.Enabled:=True;

Button5.Enabled:=True;

Memo1.ReadOnly:=False;

end;

combobox1.Clear;

combobox2.Clear;

combobox3.ItemIndex:=(-1);

combobox4.ItemIndex:=(-1);

combobox5.ItemIndex:=(-1);

combobox6.Clear;

combobox7.Clear;

memo1.Clear;

arrcount:=0;

persons_arr:=nil;

date_arr:=nil;

marks_arr:=nil;

StringGrid1.ColCount:=2;

prnts:=0;

end;

procedure TForm_jurnal.update_tems(Sender: TObject);

begin

if FileExists('db\jurnal\' + teacher_j + '_' + predmet_j + '_' +

klass_j + '_' + quarter_j +'_tems.db') then

memo1.Lines.LoadFromFile('db\jurnal\' + teacher_j + '_' + predmet_j + '_' +

klass_j + '_' + quarter_j +'_tems.db');

end;

end.

unit unit_del_data;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_del_data }

TForm_del_data = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

public

end;

var

Form_del_data: TForm_del_data;

implementation

uses

unit_jurnal;

{$R *.lfm}

{ TForm_del_data }

procedure TForm_del_data.Button2Click(Sender: TObject); // нет

begin

close;

end;

procedure TForm_del_data.Button1Click(Sender: TObject); //да

begin

Form_jurnal.Button3Click_2(Sender);

close;

end;

end.

unit unit_about;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons;

type

{ TForm_about }

TForm_about = class(TForm)

Label1: TLabel;

Label10: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

private

public

end;

var

Form_about: TForm_about;

implementation

{$R *.lfm}

{ TForm_about }

end.

unit unit_tz;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_TZ }

TForm_TZ = class(TForm)

Label1: TLabel;

private

public

end;

var

Form_TZ: TForm_TZ;

implementation

{$R *.lfm}

end.

unit unit_danger;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_danger }

TForm_danger = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

public

end;

var

Form_danger: TForm_danger;

implementation

uses

unit_zavych, unit_teacher_pr, unit_person_kl;

{$R *.lfm}

{ TForm_danger }

procedure TForm_danger.Button2Click(Sender: TObject); //НЕТ

begin

close;

end;

procedure TForm_danger.Button1Click(Sender: TObject); //ДА

begin

if Form_Zavych.danger=1 then begin

Form_Zavych.Button7Click_1 (Sender);

close;

end;

if Form_Zavych.danger=2 then begin

Form_Zavych.Button5Click_1 (Sender);

close;

end;

if Form_Zavych.danger=3 then begin

Form_Zavych.Button8Click_1 (Sender);

close;

end;

if Form_Zavych.danger=4 then begin

Form_Zavych.Button6Click_1 (Sender);

close;

end;

if Form_Zavych.danger=5 then begin

Form_teacher_pr.Button3Click_1 (Sender);

close;

end;

if Form_Zavych.danger=6 then begin

Form_person_kl.Button3Click_1 (Sender);

close;

end;

end;

end.

unit unit_add_teacher;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_add_teacher }

TForm_add_teacher = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject);

private

public

end;

var

Form_add_teacher: TForm_add_teacher;

implementation

uses

unit_zavych;

{$R *.lfm}

{ TForm_add_teacher }

procedure TForm_add_teacher.Button1Click(Sender: TObject); //Добавить учителя

var

f:textfile;

s:string;

begin

// Создать файл с именем из Edit

s:=edit1.Text;

if s='' then ShowMessage ('Нельзя ввести пустое поле!') else

if FileExists('db\teach_pr\' + s + '.db') then ShowMessage ('Такой учитель уже есть!') else

begin

assignfile(f,'db\teach_pr\' + s +'.db');

rewrite(f);

closefile(f);

end;

close;

Form_Zavych.ListBox_teacher(Sender);

Form_Zavych.ComboBox_teacher(Sender);

end;

procedure TForm_add_teacher.FormClose(Sender: TObject);

begin

edit1.Clear;

end;

end. unit unit_add_teacher;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_add_teacher }

TForm_add_teacher = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject);

private

public

end;

var

Form_add_teacher: TForm_add_teacher;

implementation

uses

unit_zavych;

{$R *.lfm}

{ TForm_add_teacher }

procedure TForm_add_teacher.Button1Click(Sender: TObject); //Добавить учителя

var

f:textfile;

s:string;

begin

// Создать файл с именем из Edit

s:=edit1.Text;

if s='' then ShowMessage ('Нельзя ввести пустое поле!') else

if FileExists('db\teach_pr\' + s + '.db') then ShowMessage ('Такой учитель уже есть!') else

begin

assignfile(f,'db\teach_pr\' + s +'.db');

rewrite(f);

closefile(f);

end;

close;

Form_Zavych.ListBox_teacher(Sender);

Form_Zavych.ComboBox_teacher(Sender);

end;

procedure TForm_add_teacher.FormClose(Sender: TObject);

begin

edit1.Clear;

end;

end.

unit unit_teacher_pr;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_teacher_pr }

TForm_teacher_pr = class(TForm)

Button1: TButton;

Button3: TButton;

Button4: TButton;

ComboBox1: TComboBox;

Edit1: TEdit;

Label2: TLabel;

Label3: TLabel;

ListBox1: TListBox;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button3Click_1(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

private

public

end;

var

Form_teacher_pr: TForm_teacher_pr;

implementation

uses

unit_zavych, unit_danger;

{$R *.lfm}

{ TForm_teacher_pr }

procedure TForm_teacher_pr.FormShow(Sender: TObject);

begin

ListBox1.Items.LoadFromFile ('db\teach_pr\' + Form_zavych.edit_tchr + '.db');

Edit1.Text:=ComboBox1.text;

end;

procedure TForm_teacher_pr.ListBox1Click(Sender: TObject);

begin

if ListBox1.ItemIndex >= 0 then

Edit1.Text:=ListBox1.Items[ListBox1.ItemIndex];

end;

procedure TForm_teacher_pr.Button1Click(Sender: TObject); //добавить

var

i,j:integer;

begin

j:=0;

if Edit1.Text='' then

begin

ShowMessage ('Нельзя ввести пустое поле!');

j:=1;

end

else

for i:=0 to ListBox1.Items.Count-1 do

begin

if ListBox1.Items[i] = Edit1.Text then

begin

ShowMessage ('Такой предмет уже есть!');

j:=1;

end

end;

if j<>1 then

ListBox1.Items.addText(Edit1.Text);

end;

procedure TForm_teacher_pr.Button3Click_1(Sender: TObject); // удалить

begin

if ListBox1.ItemIndex >= 0 then

ListBox1.Items.Delete(ListBox1.ItemIndex);

end;

procedure TForm_teacher_pr.Button3Click(Sender: TObject); // удалить

begin

begin

Form_danger.show ;

Form_Zavych.danger:=5;

end;

end;

procedure TForm_teacher_pr.Button4Click(Sender: TObject); //Сохранить

begin

ListBox1.Items.SaveToFile('db\teach_pr\' + Form_zavych.edit_tchr + '.db');

Form_Zavych.ComboBox_teacher(Sender);

end;

procedure TForm_teacher_pr.ComboBox1Change(Sender: TObject);

begin

Edit1.Text:=ComboBox1.text;

end;

procedure TForm_teacher_pr.ComboBox1Click(Sender: TObject);

begin

Edit1.Text:=ComboBox1.text;

end;

end.

unit unit_edit_teacher;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_edit_teacher }

TForm_edit_teacher = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

public

end;

var

Form_edit_teacher: TForm_edit_teacher;

implementation

uses

unit_zavych;

{$R *.lfm}

{ TForm_edit_teacher }

procedure TForm_edit_teacher.FormShow(Sender: TObject);

begin

Edit1.text:=Form_zavych.edit_tchr;

end;

procedure TForm_edit_teacher.Button1Click(Sender: TObject); // Кнопка сохранить

var

//f:textfile;

s:string;

begin

s:=edit1.Text;

if s='' then

ShowMessage ('Нельзя ввести пустое поле!')

else

if FileExists('db\teach_pr\' + s + '.db') then

ShowMessage ('Такой учитель уже есть!')

else

begin

{DeleteFile('db\teach_pr\' + Form_zavych.edit_tchr + '.db');

assignfile(f,'db\teach_pr\' + s +'.db');

rewrite(f);

closefile(f);}

RenameFile('db\teach_pr\' + Form_zavych.edit_tchr + '.db', 'db\teach_pr\' + s +'.db' );

Form_Zavych.ListBox_teacher(Sender);

Form_Zavych.ComboBox_teacher(Sender);

close;

end;

end;

end.

unit unit_add_kl;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm_add_kl }

TForm_add_kl = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

public

end;

var

Form_add_kl: TForm_add_kl;

implementation

uses

unit_zavych;

{$R *.lfm}

{ TForm_add_kl }

procedure TForm_add_kl.Button1Click(Sender: TObject); // Добавить новый класс

var

f:textfile;

s:string;

Источник: https://studfile.net/preview/16486423/